============
1. -e mode to expunge a port via pkg_delete, and optionally
remove its distfiles
2. -s and -e modes now respect -b (backup) and -d|D options
regarding always deleting (or not deleting) distfiles
General
=======
1. Re-factor more code out into functions, and move them earlier in the
script so that they are available to the new features.
2. Clean up the code in a few places to make it slightly more efficient,
and a lot more readable.
Bug Fixes
=========
1. Fix exit status of various code paths to be more in keeping
with Unix tradition [1]
2. Be a lot more thorough about killing off errant children when
the user hits ^C [1]
3. If the directory referred to by PKGREPOSITORY exists, use it
to store packages built for -b and -g instead of HOME [2]
My thanks to both Darren and James for their patience and testing
of several development versions to nail down bugs 2 and 3.
Brought to my attention by: Darren Pilgrim <darren.pilgrim@bitfreak.org> [1]
Brought to my attention by: James O'Gorman <james@netinertia.co.uk> [2]
============
1. -L mode to list all installed ports, and search for updates.
2. Trap SIGINT, and use the opportunity to reap all the child processes
we can find.
3. Warn the user during config mode if a port sets IS_INTERACTIVE
4. Support +IGNOREME files in /var/db/pkg/<portname>, ala portupgrade
5. Store the results of the user's choices for -i during config, so they
don't have to enter it again during build
6. When deleting stale distfiles, recurse through successively shorter
versions of file-name-* till we find something to delete, or run out
of dashes. This means a lot fewer false positives, although the
algorithm is still aggressive.
Performance Optimizations
=========================
1. Skip dependency check prior to build if the 'make config' recursion
does not find any ports that need updating.
2. Cache the dependency list for the parent port.
3. -s mode is now recursive, so if a removed port has dependencies,
they are checked too. Remember what ports the user does not want to
delete so they don't have to keep saying "no."
4. Much better support for failed downloads in the background, and the
'make checksum' process is only run once for each port.
5. Switch to using variables and case rather then grep to maintain state
for current dependencies, answers for -i, etc.
6. Re-order some tests to micro-optimize do_update, etc.
7. Handle regular files in /var/db/pkg more efficiently
8. Track the pid of the parent process, and use that to manage state
more efficiently. Also makes for more readable code.
9. Don't clean dependencies, since we don't recurse through them using
the ports tree, we'll let each portmaster process handle it.
10. Cache information about dependencies that are already up to date
to avoid having to do this check when not necessary. This dramatically
improves performance for building/updating large ports (especially
meta-ports like gnome or kde) with a lot of dependencies.
Bug Fixes
=========
1. Add -f to pkg_delete in -s case
2. Reverse the "is required by" statements to make more sense for -r
3. Add PATCHFILES to the list of distfiles to delete when looking for
stale distfiles
4. Minor cleanups, and better code consistency
5. usage() already exits, so clean up h) getopt
6. Add a catchall getopt so user will get usage() for an invalid option
7. Update some messages to make them more meaningful and simplify code
8. Fix specifying second option to -o in <category/portname> format
9. Properly handle the case where the second argument to -o is a port
that is already installed
10. Don't mention the 'make config' step if -G
Security Enhancement
====================
1. Be more careful to only delete temp files if they haven't already been
deleted or moved
* Add a check for direct use of sysctl(8). [1]
* Add a check for use of the deprecated macro INSTALLS_SHLIB, and point people
to USE_LDCONFIG instead. [2]
* Add a check for plists with less than 6 items, and point people to
PLIST_FILES instead. [3]
PR: 100472 [1]
91933 [2]
100190 [3]
Submitted by: Babak Farrokhi <babak@farrokhi.net> [1]
This commit should largele be a NOOP as it only adds support
for DESTDIR undefined. This does allow us to start testing
ports with DESTDIR set, but this is as of yet not supported.
Although this has been extensively tested on pointyhat, this
is a very intrusive change and some cases may have been
overlooked. Please contact Gabor and me if you find any.
PR: 100555
Submitted by: gabor
Sponsored by: Google Summer of Code 2006
- from Changes
- Following some useful e-mail discussions with Mark Linimon
and Dan Langille, switch to using the MASTER_PORT variable
to detect master/slave relationships between ports.
MASTER_PORT will be set in every slave port whereas
MASTERDIR doesn't have to be. Here a slave port is one
defined as using port metadata from some other port, and
doesn't have to go as far as requiring both master and slave
to use the same Makefile and other ports infrastructure.
- Keep track of the version of the software used to create the
cache, and prompt for a cache rebuild if the software has
been upgraded since. A cache rebuild is definitely required
for the 1.6 -> 1.7 update.
- Don't quit on errors parsing make variables at the cache-init
or cache-update stage. Print copious error messages, but carry
on processing. Entries for ports that fail at this stage will
not be created in the cache.
- Don't quit on errors parsing make variables at the cache-init
or cache-update stage. Print copious error messages, but carry
on processing. Entries for ports that fail at this stage will
not be created in the cache.
PR: 100759
Submitted by: maintainer (Matthew Seaman)
- move pkg-message to files/pkg-message.in and use SUB_FILES
- move post-extract to post-patch and use REINPLACE_CMD
- replace ${PREFIX} in man-page with %%PREFIX%% and then REINPLACE_CMD
over it.
- Make replacement in former post-extract actually work due to
changed layout of the file.
PR: ports/100584
Submitted by: Edwin Groothuis <edwin@mavetju.org>
Approved by: cperciva@#bsdports
OpenBsd-Ports, PkgSrc and maybe others.
You can browse and search through your Portstree and perform actions
like Upgrades, Installs, Uninstall a.s.o. More advanced features like
setting Options and Vulnerability checking are also available. For a
complete list, check the Homepage or the Changelog.
Functionality is KPorts' main goal, not simplification by reducing
options; however KPorts should be rather easy to use.
WWW: http://kports.sf.net
PR: ports/99653
Submitted by: Hannes Hauswedell <hannes.hauswedell@gmail.com>
(MFD - Merge From Developing)
* Fix a bug with a time delta. When build took over 24 hour.
* Allow origins in ALT_PKGDEP.
* Add -e (--emit-summaries) option to show summary messages.
* Fix portupgrade working when stdin is closed. [1]
- Get back sf.net to MASTER_SITES
- Add CONFLICTS with portupgrade-devel
PR: ports/99179 [1]
Submitted by: Hannes Hauswedell <hannes.hauswedell_at_gmail.com>
It's exactly like 2.1.3 but without summary messages and
fixed bug when BDB4 was defined but tried only bdb1 driver and
fall back to dbd driver.
- Add an option WITH_BDB1. Both BDB1 and BDB4 options can be off.
Ruby dbd driver will use in the case.
- 97406 (ghostscript refactoring) was removed from the -exp run due to errors
- 95841 (remove legacy code) was backed out after commit, due to its still
being needed for kdelibs3 among others
This is a bug fix and general improvement release. From the change log:
- Incorporate local ports/categories into the INDEX by scanning Makefile.local
for additions to $SUBDIR. Mentioned on freebsd-ports@freebsd.org by
Rong-En Fan <rafan (at) infor.org>
- Clean up error messages, and factor out common progress counter code.
- Add a new Category object type, and cope better with changes to categories
(ie. ports being hooked up / unhooked from the tree). Problem pointed out by
Colin Percival <cperciva (at) freebsd.org>
- Instead of calling perl to compile exactly the same bit of perl code from
/usr/ports/Mk/bsd.ports.mk about 15,000 times (ie once per port) as a
consequence of actually running 'make describe', just call perl once, use make
to print out the basic variables from the port and replicate the processing
done ourselves.
PR: 99454
Submitted by: author/maintianer
=============
1. Add -b option to make a backup package of the installed port
2. Add -g option to make a package of the new port
3. Add -o option to replace an installed port with a new port from a
different location (e.g., portmaster -o emulators/linux_base-fc4 linux_base)
The second argument can also be specified as the name of the installed port
(e.g., linux_base-8-8.0_15)
4. Add -s option to detect no-longer-needed dependencies, and offer the user
a choice to delete them.
General improvements:
=====================
1. Update usage() to reflect reality, and organize it better
2. Switch to using DEPORIGIN to detect missing dependency tracking, which
provides dramatically fewer false positives, and more useful tools to fix
actual problems
3. Factor out more common code into functions
4. Only pay attention to +REQUIRED_BY files for dependency tracking if they
are > 0 bytes
5. Simplify option parsing
6. Make whitespace more consistent in -a message
7. Only grep for dependencies if we're upgrading an installed port
8. If using -o, or a port moved, try to find the names of the old distfiles,
and offer the user the choice to remove all of the, or prune the stale ones.
Bug fixes:
==========
1. Fix the PATH if a user is using ccache
2. Handle the case where there is no ORIGIN in a +CONTENTS file
3. Ignore errors in the tail of fetchlog, since if the file is gone we'll
exit the loop anyway