2.4.1. This is a primarily a bug-fix release for 2.4.0, and all users
are encouraged to upgrade. The changes in 2.4.1 are as follows:
* Sync with the latest applicable pointyhat changes. This includes
extraneous UID and GID checking.
* Support for creating per-Jail make.conf and src.conf files is
supported. These files should live in ${tb}/jails/JAIL, and are used
for the Jail builds. You will still need to use Hooks to populate
custom make.conf files in your Builds.
* Sorting now works properly in the www-exp frontend.
* Hooks that contain arguments with spaces can now be properly executed.
* Various other bug fixes have gone in as well.
This release would not have been possible without the contributions by
Dmitriy Kirhlarov and Alexander Logvinov (and, of course, pointyhat and
Kris).
Tested by: miwi@
===========
1. Before calling pkg_create for the installed version of the port,
cd into the PKGREPOSITORY directory. This not only simplifies the code,
it helps handle the problems of ports trees mounted read-only. [1]
2. Factor out initialization of the $pkgrep directory into a function.
Bug fixes
=========
1. Before calling 'find ${pkgrep}/ ... -delete' assert that $pkgrep is
not empty.
2. Make sure that $pkgrep is initialized everywhere it's needed.
Suggested by: Hans Lambermont <hans@lambermont.dyndns.org> [1]
* Consolidate lines that end in a '\' followed by an empty line into one
newline prior to splitting the Makefile into sections. This will more
properly catch section-related errors [1]
* Properly check pkg-config files when they contain an embedded '.' [2]
* Allow pkg-plist directive @cwd by itself which means to change the working
directory back to the original PREFIX [3]
* Beef up the warnings around DOCSDIR, EXAMPLESDIR, and DATADIR so that
users don't just use these macros without knowing if they are safe [3]
* Check for use of --mandir and --infodir [4]
PR: 112332 [1]
115455 [4]
Submitted by: rafan [4]
sat [2]
Requested by: pav [3]
* Now tracks changes to OPTIONS settings, and the effect those
have on port dependencies.
* Cleanup of warning and error messages -- new 'Warnings'
configuration variable to turn them on/off
* New 'Strict' configuration option -- at the moment this just
enforces a check that all ports are referenced from the
category Makefile in the directory above. May be extended to
other items later.
* New 'CrunchWhitespace' configuration option -- emulate the way
that 'make index' collapses multiple whitespace into single in
port description lines.
* Internal changes to data structures, cache file locking
etc. which will be needed to support multithreaded cache
initialization / update (It is coming... eventually). One
consequence is that there is no longer a dependency on
Storable.pm
* Mk/bsd.commands.mk and Mk/bsd.destdir.mk added to the list of
Makefiles where changes are not expected to affect the INDEX.
* Bugfix -- correct programming error when picking out changes to
lists of SUBDIRs in category Makefiles.
Note: You will have to reinitialize the ports cache when updating.
Unfortunately, due to the changes in BerkeleyDB locking / concurrent
access, version 2.0 code cannot even open the version 1.9 data cache.
PR: 115222
Submitted by: Matthew Seaman <m.seaman@infracaninophile.co.uk> (maintainer)
the DESTDIR changes today.
2. Export pd, pdb, and distdir to avoid having to look them up each time
3. Streamline find_moved() by grepping for lines, and then recursing
4. Further streamline by using variable stripping instead of cut
<tom-freebsdorg@hukins.freeserve.co.uk>: host
mail-in.freeserve.com[193.252.22.141] said: 550 Error: Message content
rejected <565a4052e34b8ddc44ec45458da4b976> (in reply to end of DATA
command)
- Add significantly better support in bsd.python.mk for working with
Python Eggs and the easy_install system
Tested by: pointyhat runs
Approved by: pav (portmgr)
Most work by: perky
Thanks to: pav
=========
1. If we are doing --show-work, don't launch background processes
that are only useful for real builds.
2. Fix a rather obscure bug that can only happen:
IFF you are doing an install of a new port, and
IFF you have a dependency "early" in the list with an +IGNOREME file, and
IFF you have one or more dependencies "late" in the list that are not
installed. The bug is a false positive on the +IGNOREME for the uninstalled
ports. The solution is to reset the "port to test for +IGNOREME file"
variable each time through the loop. This will usually be a noop, but it
costs almost nothing in any case.
you have to reinstall portconf to get make.conf right.
As this does not affect most people, PORTREVISION is not bumped.
The patch in the PR does not work: we can not use variable in substitution.
So, the only way to do is to detect the real path of /usr/ports at
installation time.
PR: ports/104838
Submitted by: rafan
Approved by: maintainer timeout (8 months)
- Hooks : A hook is a "callout" which gives Tinderbox the ability to run custom
code at pre-determined times. For example, you can establish a Hook to run just
before a Port is built, after a Build is extracted, before a PortsTree is
updated, etc. Pre-condition hooks can even cause an operation to terminate if
so desired. The new commands to manipulate Hooks are tc listHooks and
tc updateHookCmd.
- OPTIONS processing : If you enable OPTIONS support in Tinderbox, you can have
tc addPort automatically prompt you to configure OPTIONS. Just run tc addPort
with the new -o argument, and you will be prompted with the usual dialog(1)
screen to configure OPTIONS. OPTIONS configuration will happen recursively if
the -r argument is specified, and non-recursively otherwise.
- Failed dependents tracking : If a port fails to build, it will update the
datastore for all of its dependents so that they will be reported as
pseudo-failed. That is, they will have a unique appearance in the www-exp
frontend to indicate that they were not built because a dependency failed.
- Port build duration is tracked and an estimated time to completion is now
shown in the www-exp frontend.
- The /usr/X11R6 symlink is now ignored and not treated as a leftover.
Note: This release comes with a pretty hefty schema change, so one must run
upgrade.sh to add the new schema elements.
* bsd.php.mk can now be included after bsd.port.pre.mk [1]
* Tighten the check on *_DEPENDS so that it only looks at BUILD, FETCH, PATCH,
LIB, and RUN DEPENDS [2]
PR: 110461 [1]
Submitted by: Alexander Logvinov <ports@logvinov.com> [1]
Reported by: Alexander Logvinov <ports@logvinov.com> [2]
============
1. Keep a temporary flag that indicates a port has already been upgraded
during a -r or -f update, and add a -R (retry) option to let the user
skip those ports on subsequent attempts if the first update is interrupted.
2. Change the default behavior to use 'make config-conditional' to
take advantage of the recent enhancements to the OPTIONS functionality.
3. Add a new --force-config flag to use the old behavior of doing
'make config' for every port.
4. Don't delete backup packages until the original (parent) portmaster
process has finished successfully. That way if an update fails, the user
can back out the whole thing.
5. Add -w option to save old shared libraries from an installed port.
6. Add -x option to avoid building ports that match the glob pattern.
7. Split tracking of build and run depends to before and after the
port build respectively.
Enhancements
============
1. If the user interrupts the update, search for errant dialog
processes as well as errant portmaster child processes.
2. Avoid invoking pkg_version in check_for_updates() if the installed
version is already up to date.
3. Call pkg_info for seemingly stale dependencies (-s) so user has
a better idea what he's being asked to delete.
4. Use -DBATCH when calling 'make checksum' in the background so that
ports that have pre-everything dialogs no longer cause runaway dialog
processes.
5. Add BEFOREPORTMK=yes where it can be used to speed things up.
Thanks to Stephen Montgomery-Smith <stephen@math.missouri.edu>
6. Be smarter about not starting read_distinfos in the background if
there is no need to, and be more aggressive in killing it off when
we're done.
7. Make read_distinfos quieter to avoid printing confusing messages
out of synch with the foreground process.
Changes
=======
1. Use the PKGREPOSITORY directory for all packages, create it if it
doesn't already exist.
2. If we fail(), call one of {trap|safe}_exit to do a better job of
cleaning up after ourselves.
3. Make failures of various commands silent when we provide our own
error message.
4. Make killing background processes generally much quieter.
Bug Fixes
=========
1. In check_for_updates(), when FORCE is on, don't skip an up to date
port.
2. Change MAKE_ARGS to PM_MAKE_ARGS to avoid collisions with ports that
use the former already.
3. Fix grammar in a usage() line, add details for --show-work, and
other various improvements.
4. Move the clean target to after (optional) 'make package' to avoid
having to rebuild the port.
5. Only try to update the +CONTENTS file if it exists.