ports which makes possible the direct translation of Cabal package
descriptions to FreeBSD ports. It promises both easier addition and
maintenance for Cabal-based ports.
===========
Add a --packages-local option for those who wish to use only local
packages, and never attempt to fetch from a remote site.
Bug Fix
=======
Fix a braino for --index-first and --index-only:
The cross-checking of the command line options needs to happen before
the environment variables are set.
Cleanups And Optimizations
==========================
1. LOCALBASE_COMPAT is only ever used in combination with /pkg at the
end, so fold that into the variable to start with.
2. Indicate to the user that -p is deprecated
3. Allow setting of DISTDIR directly in .portmasterrc like the other
widely used vars. This entails the following:
a. Capitalize distdir every place that it's used.
b. Add to the list of --options to check which mean we don't even
have to try to set it. This saves us a call to make(1).
c. Don't set it to / if DISTDIR is empty, which makes error checking
later on easier.
d. Mark DISTDIR (and related vars) global in a few more functions
to make it consistent.
4. Move the test for version > 6.4 first in the list, no point in
processing a bunch of stuff only to bail out later.
5. Unset the test_command_line function when we're done using it
6. Be smarter about whether or not to use $PM_SU_CMD to fetch the
INDEX.bz2
7. Improve cross-option error checking for the --packages* options
release can be found at http://library.gnome.org/misc/release-notes/2.30/ .
This release brings initial PackageKit support, Upower (replaces power
management part of hal), cuse4bsd integration with HAL and cheese, and a
faster Evolution.
Sadly GNOME 2.30.x will be the last release with FreeBSD 6.X support. This
will also be the last of the 2.x releases. The next release will be the
highly-anticipated GNOME 3.0 which will bring with it a new UI experience.
Currently, there are a few bugs with GNOME 2.30 that may be of note for our
users. Be sure to consult the UPGRADING note or the 2.30 upgrade FAQ at
http://www.freebsd.org/gnome/docs/faq230.html for specific upgrading
instructions, and the up-to-date list of known issues.
This release features commits by avl, ahze, bland, marcus, mezz, and myself.
The FreeBSD GNOME Team would like to thank Anders F Bjorklund for doing the
initual packagekit porting.
And the following contributors & testers for there help with this release:
Eric L. Chen
Vladimir Grebenschikov
Sergio de Almeida Lenzi
DomiX
walder
crsd
Kevin Oberman
Michal Varga
Pavel Plesov
Bapt
kevin
and ITetcu for two exp-run
PR: ports/143852
ports/145347
ports/144980
ports/145830
ports/145511
============
Add a --no-index-fetch option for people who want to use the
--index* options but do not want portmaster to do the fetching.
Cleanup and Fixes
=================
1. Remove no longer necessary local variable in version()
2. Rework how some initial variables are set. Deriving the values via
make works, but is very slow. So try to be more intelligent about
recognizing the standard values for the ones we always need to have.
* For PORTSDIR and PKG_DBDIR if those variables are not in the
environment and the standard directories exist, use them.
* Move the setting of pd (PORTSDIR) up to before the INDEX-related
items so that we can use ${INDEXDIR:-$pd}
* The derivation of the INDEX-related stuff wasn't working (since
we didn't know $pd) and no one has complained, so just use the
default values from bsd.port.mk unless the user specifies others.
* If /var/db/ports exists, use it for port_dbdir
3. Indicate that the -[lL] options are not compatible with -FRaefnors,
updates, or installs
4. In the test to see if we downloaded a new INDEX.bz2 file supply a
default value for index_time so that if the file did not exist
previously the test will not fail.
================================
1. Adjust whitespace at the end of the run
2. In a couple places where default value setting is overly complex
(including a couple of the places related to the recent ro_upg_port
changes) simplify the code.
3. When checking stat(1) for the INDEX updates we really want to check
the time when the file was last modified for pedantic value, although
in this scenario the practical effect was the same.
4. In --check-port-dbdir we now need to check if the values in the loop
are directories, since origin_from_pdb() now emits an error if it can't
find ORIGIN.
============
Expand on an idea provided by mandree@ to use 'pkg_version -I' to quickly
check what ports are out of date, and incorporate that check into the
--index option. Feedback from users seems to indicate that this is what
they expected the option to do anyway, so the minor change to the feature
does not seem to be a POLA violation, especially since INDEX support is
still relatively new. Add the --index-first option to do what --index used
to do in case anyone cares.
Bug Fixes
=========
1. Add more error checking for incompatible command line options.
Add a new cross_idx() to handle checking the 3 --index* options, and
consolidate some of the old tests that were all relative to -G.
2. We want to test the .bz2 version of INDEX to see if it's newer, and
unzip it if it is.
3. For -o mode:
Going back a long ways upg_port was (ab)used to indicate the currently
installed version of the old port for -o. Originally this was safe since
it's very rare to have the new port installed already, and it saved a
little bit of code complexity. However, as more and more features were
added that utilized the value of upg_port it became increasingly
unsafe. Particularly, at this time there are 2 related bugs manifest.
First the wrong information appears in the confirm list (upgrade of
the old port vs. install of the new) and parsing the old port
directory. The latter was (mostly) harmless, although in the case of
an old port directory being DEPRECATED this resulted in a fatal error
when trying to upgrade.
So, make the following changes:
a. Make upg_port an installed version of the new port, if it exists.
b. Introduce ro_upg_port for the existing version of the old port.
c. Factor out some code that was related to how to handle lack of an
installed version of the old port (since now that's done higher up).
d. In the stage after the build of the new port and before pkg_delete
of the old port test for upg_port OR ro_upg_port and run the various
features (lib backup for -w, pkg_delete, etc.) as needed for both.
e. In install_failed() notify the user about the backup port for the old
version.
f. I discovered in regression testing that invoking -o for MOVED
ports that we get to as dependencies was working, but the code to
automatically invoke -o for a parent port was broken. The problem is
that we can't just exec a new version if we're the parent, we have to
cleanly shut down background fetches and other processes, delete temp
files, etc. So split the parts of safe_exit() that relate to these
elements into their own function, parent_exit(), and call it both
from safe_exit() and when exec'ing a new version for -o in this case.
4. Add error checking to pm_mktemp, and the stray mktemp call. According
to a private report from a user it can actually fail.
5. Add error-checking to parse_index() so that if we don't find a line for
the port we return an error code; check for the error in the callers.
6. Improve the handling of various situations where there is no ORIGIN
recorded in the +CONTENTS file. This is almost always an error in the
package building process, and therefore usually needs to be flagged and
handled as an error. There are (at least) 2 situations where it may not
be an error; bsdpan ports, and when the user has added an +IGNOREME file
(usually for 3rd party packages).
a. Add code to origin_from_pdb() that tests to see that grep returned
something, echos the result as before, then also returns successfully
* If the port is a bsdpan port, return with an error code but let the
caller handle the reporting as appropriate.
* If there is no ORIGIN but there is an +IGNOREME file don't report
the error unless we're using -v, then also report that the
+IGNOREME file is there. Either way, return with an error code.
* If there is no ORIGIN, and no +IGNOREME file, report the error and
return with an error code.
b. In several places this allows several lines of code where the
function is called to be collapsed into:
origin=`origin_from_pdb $iport` || continue
c. In the main body where we parse the command line for what to work on
convert the code that was individually testing the various conditions
that are now handled in origin_from_pdb() to simply parse the return
codes with a case statement.
In the common case (there is an ORIGIN in +CONTENTS) this is almost
certainly a minor optimization since the error handling code in
origin_from_pdb() is never reached, and several places where things
like "is it a bsdpan port?" and other error handling have been removed.
7. In check_for move some local variables down into the block where they
are used.
old way. So only add spaces to the list if we're generating it from the
INDEX, and let the case statement match with or without spaces.
Reported by: avilla
Improve markup slightly for --packages options
Document --index and --index-only
Reflect that -e now takes a glob
Add a note about the nature of glob patterns
============
1. Introducing the new options --index and --index-only. The first
will use the INDEX file to check if a port is up to date. The
second allows the use of portmaster with no /usr/ports directory.
2. The second argument to -o and the port name for -e can now be globs
3. For the -d|-D and -b|-B options allow the command line to override
any values that might be set in .portmasterrc
Internals
=========
1. Add a pm_sv() function to handle verbose messages for PM_SU_CMD
2. Add a find_glob_dirs() function, and use it instead of custom
versions each place this is needed.
3. For -o, add -DDISABLE_CONFLICTS
Bug Fixes
=========
1. If running as root, unset PM_SU_VERBOSE
2. Minor tweaks to improve usage()
* Only make checks for PORTVERSION/DISTVERSION, MAINTAINER, COMMENT, and
CATEGORIES fatal if they are not set elsewhere. Instead, print a warning
for non-slave ports. [1]
* Make the check for an Apache dependency case-sensitive to fix an issue
with false positives. [2]
* Add support for checking for the need for USE_DOS2UNIX, and for ports which
may need MASTER_SITE*CPAN. [3]
* Add a new -m flag which enables checks for MOVED, UIDs, and GIDs. This flag
is disabled by default, but can be enabled with -c, -C, or -A. [4]
PR: 142381 [2]
Submitted by: wen [2]
hrs [4]
Requested by: chukharev@mail.ru [1] [3]
===========
Add a --delete-packages option so that after a package is installed
it will be deleted.
User-Visible Change
===================
Warn the user if they have an /etc/portmaster.rc file. This location
is deprecated in favor of PREFIX/etc.
Minor Updates
=============
1. Add -m1 to grep lines that can only have one match
2. Additional debugging help and error checking
3. Introduce init_packages_var() to initialize the PACKAGES variable,
and use it in some places where init_packages() was being overloaded.
4. Improve the logic of when, and when not to initialize the
packages directories.
5. Bring in some internal changes from the latest svn version for
diff reduction.
6. Add $PM_SU_CMD to a few places where it's needed
Bug Fixes
=========
1. In pm_cd_pd() the error message should reference $1, not $origin
2. The -r option should take a glob as input
The build system does the update of the ports tree,
moving old packages out of the way, fetch and rebuild
the packages you need. Its ports tree with packages
is served to the production systems and desktops.
On a system you can update installed ports with
the clean build packages from the build system.
WWW: http://people.freebsd.org/~dinoex/batch/README
============
1. Add a --no-term-title option to avoid updating the xterm title bar
Bug Fixes
=========
1. Add code to prevent duplicate entries in the list of things to be
done for the user to confirm after config is done.
2. Add code so that if a user has an +IGNOREME file for a port that
is a dependency and chooses not to update it we will not falsely claim
that it will be udpated in post_config().
3. If we are running on a cons25 terminal let term_printf() return
instead of trying to printf the escapes which won't work and will
annoy users.
4. Fix 2 places where sudo privileges might be needed but the non-sudo
version of the command was called. [1]
5. If a user chose -G don't print the (${dep_of_deps}/${num_of_deps})
in the xterm title since the latter will not be incremented. This has
the pleasant side effect of allowing better indenting of the code.
Submitted by: N.J. Mann <njm@njm.me.uk> [1] (for pkg_delete)
While here, turn on the conditional inclusion of bsd.perl.mk. I have
had this in my own tree for some time, and sometimes check it in and
sometimes don't. This settles it.