2002-04-05 21:08 knu
* lib/pkginfo.rb: Show the full pkgname as exception message when
the version part is invalid.
2002-04-05 21:06 knu
* bin/portupgrade: Fix a flaw where dependent ports' build/install
error was not properly detected when -s is specified.
Reported by: Stijn Hoop <stijn@win.tue.nl>
20020327 or later.
portsclean(1):
- Run mv(1) with -f unless -i is given.
This fixes:
PR: ports/36407
Submitted by: Albert Kinderman <albert.kinderman@csun.edu>
If you see portupgrade(1) stop at 'Cleaning out obsolete shared
libraries', hit Ctrl-C (just once) to abort portsclean(1).
portupgrade(1):
- Fix portsclean -L invocation.
- Fix some messages.
- Update the manpage.
o Add another example for -B that runs 'cvs update' for the master
port(s) of a slave port, using 'ports_glob -M'.
Question by: Ollivier Robert <roberto@FreeBSD.org>
o Mention that portupgrade(1) now runs `portsclean -L' at the end of
each upgrade.
o Fix wording and update the descriptions about portsclean -L.
portsclean(1):
- Fix wording and update the descriptions about -L.
portsclean(1):
- Improve -L/--libclean. Ability to delete duplicate libraries is
added.
portupgrade(1):
- Call portsclean -L at the end of each upgrade.
pkg_deinstall(1):
- Show the results more precisely.
- -P: Only preserve real FreeBSD shared libraries, determined by
file(1).
- -P: Move preserved shared libraries to $LOCALBASE/lib/compat/pkg.
portupgrade(1):
- If an error is returned from getcwd(), show a better message and
abort.
FreeBSD PR: ports/35893
Submitted by: Ernst de Haan <znerd@FreeBSD.org>
- -N: If multiple ports match a given pattern, list them.
Suggested by: Will Andrews <will@FreeBSD.org>
portsdb(1):
- On exception, handle it and exit normally.
- Check the file/directory permissions on the INDEX file before
generating a new INDEX.
Suggested by: parv <parv_@yahoo.com>
- Make automatic portsdb directory selection in the case of "portsdb
-fu" too.
ports_glob(1):
- -M: Unbreak.
portsdb(3):
- Fix the EXTRA_CATEGORIES support that was broken in recent updates.
PR: ports/35319
Submitted by: Ryan Davis <ryand-bsd@zenspider.com>
pkgtools.conf(5):
- Add a note that a user must run portsdb -Ufu to reflect values of
EXTRA_CATEGORIES and IGNORE_CATEGORIES.
For the victims of the above bug, please run "portsdb -qu" and then
"portupgrade -q portupgrade".
20020225.
- Clarify that portupgrade -O is disregarded if -r or -R is given.
- Reflect the fact that INDEX.rbo no longer exists.
- Document portsdb(1) better regarding PORTS_DBDIR.
- Merge INDEX.rbo into INDEX.db, and remove INDEX.rbo on portsdb
rebuild if it exists.
- Reduce the size of INDEX.db by half. :)
- Introduce PORTS_DBDRIVER and allow specifying a db driver for the
portsdb (INDEX.db), and switch the default portsdb driver from
db1.85 hash to db1.85 btree.
- Fix a bug where it referenced the obsoleted PortsDB::PORTS_DIR.
- Depend on ruby-bdb1 and make bdb1_btree (db 1.85 btree) the default
pkgdb driver/format. This probably fixes the problem where pkgdb is
unexpectedly broken and rebuilt from scratch.
- Support pkgdb driver fallback. (bdb -> bdb1 -> dbm)
- Show the pkgdb driver (format) on updating/rebuilding.
- Reflect environment variables defined in pkgtools.conf properly.
(Now ENV['PORTS_DBDIR'] is reflected properly)
Reported by: Mori Kouji <mori@tri.asanuma.co.jp>
pkg_sort(1), portupgrade(1):
- Sort packages by build-time dependencies in addition to run-time
dependencies. This slightly slows sorting down but offers faultless
upgrading.
Inspired by: ade
portcvsweb(1):
- Accept a pkgname_glob, a portorigin_glob, and a cvs module alias.
portcvsweb bash-1\*
portcvsweb portupgrade
portcvsweb \*/fd
protcvsweb sys/i386/conf
etc. etc...
- Suppress ident(1)'s error message.
- Add -h, -q and -v.
in the last version. For the victims please manually reinstall the
portupgrade port, as always. ;)
Reported by: many users (Sorry!)
Use some logic and keep pkg_add/pkg_delete from complaining about the
@exec/@unexec return codes.
Submitted by: olgeni
pkgdb(1):
- Set the default answer to no when a score is under 80%.
pkgdb(1), portupgrade(1):
- Add a BUGS entry to each of the two man pages to note that a user
must run pkgdb -fu to rebuild a corrupt pkgdb.
pkgdb(3):
- Add a silly workaround against a possible bug of the dbm module to
keep a pkgdb from getting insane and rebuilt.
- [exp.] Add a knob environment variable PKG_DBDRIVER to specify an
alternative binary database format for pkgdb. The available options
are:
"bdb_btree":
DB 3.x/4.x B+tree; requires databases/ruby-bdb.
"bdb_hash" or just "bdb":
DB 3.x/4.x hash; requires databases/ruby-bdb.
"bdb1_btree" or just "btree":
DB 1.85 B+tree; requires databases/ruby-bdb1.
"bdb1_hash", or just "bdb1" or "hash":
DB 1.85 hash; requires databases/ruby-bdb1. This should be
equivalent to the default except some tuning parameters, but
it is quite possible that ruby-bdb1 is stabler than the
standard dbm module included in ruby.
default:
DB 1.85 hash; uses ruby's standard dbm module.
In principle, a B+tree database is faster to store data, a little
bit slower to extract data, and takes more space than a hash
database.
This is still an experimental/undocumented feature only for those
interested, although I don't believe it brings any unstability.
Note that you can always run pkgdb -fu to rebuild a database.
portcvsweb(1):
- Invoke browsers with system() instead of exec() so that it will
properly try every browser in turn - exec('/bin/sh', '-c', '..') may
cause an error within /bin/sh but it never returns.
Reported by: Jimmy Olgeni <olgeni@FreeBSD.org>
portsclean(1):
- Make portsclean -D remove empty directories (recursively) as well.
pkg_deinstall(1), portupgrade(1):
- Properly print the legend.
pkg_glob(1), portsdb(1):
- Do not print an empty line when the result list is empty.
pkgdb(1):
- Greatly improve the origin fixing procedure. Do the origin
duplicateness check before checking dependencies and avoid redoing
the origin check.
- Show the user CVS history on the spot via the CVSweb.
portcvsweb(1):
- Allow specifying a no longer existent port file/directory.
"portcvsweb net/ruby-uri" now works.
- Change the default BROWSER value from 'lynx' to
'w3m:lynx:links:mozilla:netscape'.
portupgrade(1):
- Fix a bug where portupgrade tried to use a package with a different
origin when the package name is identical to that of what it wants
except for the version part.
pkgdb(3):
- Abolish the [You have no permission to update the pkgdb -- using a
slow method] message. Instead, run 'pkgdb -u' via sudo(8) when
under portupgrade -s, or stop the process immediately with a
message that the user must run the command as root.
pkgtools.conf(5):
- Allow specifying unofficial ports' origin globs in HOLD_PKGS as
well as package globs.
overall/miscellaneous:
- Change --no-config to --noconfig in order to get the -q option
really working. Since --no-config was regarded a negative form of
--config, it didn't work as expected.
- Fix some bugs in the zsh compdefs and add missing descriptions for
some options.
o Use bzip2 instead of gzip for the distribution tarball to save 20KB.
As the portupgrade user base is growing significantly, I'll get more
serious about the download size issue from now on. The next few
releases will be distributed in patches against this version.
pkg_which database. (The first stage was 'portsclean -L'.)
Hopefully these tools will support divided/obsoleted/renamed ports
some way in the not-too-distant future..
pkgdb(1):
- Make pkgdb(1) -F provide a user an option to unregister stale
packages, in addition to deinstalling them.
- Reword: 'remove a package record' -> 'unregister a package', etc. .
pkg_deinstall(1):
- Add a new option:
-c, --collate
Check if any of the installed files of each package have been
overwritten by other packages, and do not deinstall if any.
pkg_which(1):
- Make pkg_which(1) capable of showing multiple file owner packages.
- Add a new option:
-c/--collate PKGNAME
Show files installed by the given packge that have been
overwritten by other packages.
- Strip -c/-o's argument of PKG_DBDIR and a trailing slash.
- Be less verbose unless -v is given.
pkgdb(3):
- Record and handle files that are installed by multiple packages.
- Bump the DB version.
- Squeeze series of slashes seen in the output of 'pkg_info -L'.
- Show the reason for rebuilding a package database.
pkgdb(1):
- When pkgdb(1) finds a package with a non-existent or missing origin
which is not required by any other package, ask the user if the
package should be deinstalled. This will help users delete
obsoleted packages.
pkg_fetch(1):
- Fix the pkg_fetch(1) man page: PKG_PATH should read PKG_SITES...
After upgrading ruby and portupgrade, try running pkgdb -F to see if
it suggests deinstalling ruby-uri (which has been obsoleted).
included in the standard distribution of ruby. (both 1.6 and 1.7)
Bump PORTREVISIONs of dependent ports for those who don't use
portupgrade/pkgdb which can handle stale package dependencies.
Fix a silly bug in the last version where portupgrade doesn't upgrade
packages which requisite packages don't need upgrading. Probably you
need to reinstall this port manually.
PR: ports/33946
Submitted by: Vivek Khera <khera@kciLink.com>
- Distinguish "ignored" from "skipped", and only report ignored
packages when -v/--verbose is specified. (This reduces loads of "No
need to upgrade ..." messages that you see when you run portupgrade
-a, etc.)
Point taken from: Quincey Koziol <koziol@ncsa.uiuc.edu>
- Embrace the bsd.*.mk changes in CURRENT and stop files from getting
installed into /.
Problem noted by: Brooks Davis <brooks@FreeBSD.org>,
Anders Andersson <anders@hack.org>
For recent CURRENT users, please manually remove /_* and /*.rb files
that should have been accidentally installed by bsd.prog.mk.
last release.
portsclean(1):
- -C/--workclean: Support the case where the ports directory is a
symlink.
portupgrade(1):
- Alter the "skip" message for originless packages.
pkgdb(3):
- When a dependency sanity check fails, suggest specifying -O as the
alternative to running pkgdb -F.
overall:
- Make more grammar/wording fixes.
- Fix a couple of undefined method errors introduced in the last
version.
Reported by: roberto, jan grant <jan.grant@bristol.ac.uk>
PR: ports/33478
portsclean(1), portupgrade(1), portversion(1):
- Apply English grammar fixes.
Submitted by: David Bogen <db@bogen.org> (Thanks a lot!)
pkgtools.conf(5):
- Introduce new configuration variables: BEFOREBUILD and
AFTERINSTALL.
Requested by: Gabriel Ambuehl <gabriel_ambuehl@buz.ch>
- New utility functions localbase() and x11base() are now available.
pkgdb(1):
- Add some progress messages.
pkg_deinstall(1):
- Do not try to backup a nonexistent file.
portupgrade(1):
- Always run afterinstall commands as root.
- Show beforebuild/afterinstall commands to run.
- Do not try to restore a +REQUIRED_BY file that's empty.
overall:
- Do not call stty(1) if stdin is not a terminal.
- Fix a bug where portupgrade(1) and pkgdb(1) fail to do a
substitution over a large file.
Reported by: asmodai
portupgrade:
- Do not invoke sudo if a command is already run as root.
Suggested by: Will Andrews <will@csociety.org>
- Fix a bug where the port that's built first is built with wrong make
arguments.
Reported by: Ollivier Robert <roberto@eurocontrol.fr>
- Add a note that ^Z doesn't work to the BUGS section of the man page.
pkgdb & portupgrade:
- Ignore any empty lines in +REQUIRED_BY.
- Speed up dealing with a big file.
- Chase a recent Ruby 1.7.x change so they don't produce superfluous
empty lines.
pkg_fetch & portupgrade:
- Make these commands more verbose even if -v/--verbose is not given,
so that one can see what is going on.
Requested by: Alfred Perlstein <bright@mu.org>
pkg_sort:
- Make this command actually work.
pkgtools.conf:
- Fix a typo in comment.
Submitted by: Gregory Neil Shapiro <gshapiro@gshapiro.net>
pkgtools.conf(5):
- Turn HOLD_PORTS into HOLD_PKGS.
- List `bsdpan-*' in HOLD_PKGS by default.
Requested by: Anton Berezin <tobez@tobez.org>
pkgdb(1):
- Support HOLD_PKGS and make -f/--force overrite the setting.
pkg_fetch(1):
- Dig the temporary directory and the packages directory before
fetching.
Requested by: Chris Dillon <cdillon@wolves.k12.mo.us>
- Properly quote the fetch command line arguments.
portupgrade(1):
- Fix a bug that -Pf did not properly work.
Reported by: The Anarcat <anarcat@anarcat.dyndns.org>
- Make -p/--package build packages for the ports that are installed as
dependency as well.
Suggested by: Vivek Khera <khera@kcilink.com>
- Make -p/--package build packages for those which requisite packages
are upgraded as well, when they are given from the command line or
-r is specified.
Suggested by: Vivek Khera <khera@kcilink.com>,
Lev Serebryakov <lev@serebryakov.spb.ru>
- Do not regard a packaging error as an installation error.
- Make -Nf override HOLD_PKGS.
- Suggest specifying -f when skipping a package.
- Detect a checksum mismatch error properly from a build log.
portinstall(1): (portupgrade -N)
- Only upgrade required packages of a newly installed port when -R is
specified.
portversion(1):
- Support HOLD_PKGS.
overall/miscellaneous:
- Introduce lazy initialization for config variables and make
the initialization process a little bit quicker.
- Fix some typos in the manpages.
Submitted by: Dan Langille <dan@langille.org>,
kuriyama@FreeBSD.org
- Add shell completion definitions for pkg_tarup(1).
- Provide a replacement of the weekly status-pkg report script
(/etc/periodic/weekly/400.status-pkg), which is installed as
$PREFIX/etc/pkgtools.status-pkg.sh.
port:
- Add a missing entry of pkg_which to pkg_plist.
- Do not remove the zsh site-functions directory on deinstallation
when zsh is installed.
overall:
- Perform better checks on pkgname and origin.
- Deprecate the use of PKGREPOSITORY and PKGREPOSITORYSUBDIR. Use
PACKAGES for PKGREPOSITORY and hardcode 'All'.
pkg_deinstall:
- -P/--preserve: Only preserve shared libraries with version numbers.
Keeping *.so files may be harmful because it allows ld to pick them
up and produce new binaries linked with the libraries of removed
packages. It is enough to only preserve *.so.* files to retain
compatibility.
portsclean:
- -P/--pkgclean: Clean dead symlinks as well.
- Fix the manpage: supply missing words.
portupgrade:
- Detect NO_LATEST_LINK and LATEST_LINK and use them to determine the
name of the latest package to fetch.
pkgdb:
- Improve the score computer. Try not to suggest a stupid guess. ;)
pkg_fetch, pkg_glob, pkg_sort, pkgdb, portsdb, portversion:
- Do not show help twice when -h/--help is given.
Reported by: Masami Kobayashi <masami@tncc.jp>
pkgtools.conf:
- Explain how to use EXTRA_CATEGORIES.
- Get to properly work on Ruby 1.7.
Reported by: Ollivier Robert <roberto@eurocontrol.fr>
- pkgdb: Fix a regexp problem when it meets a pkgname that ends with a `+'.
Reported by: Albert Kinderman <albert.kinderman@csun.edu>
pkgdb:
- Make the dependency guesser rather more intelligent and show a score
when suggesting a candidate to the user.
- Check for the pkgdb directory ownership before starting to fix it.
pkg_deinstall:
- Emit a warning if none matches given patterns.
pkg_glob:
- Do not sort package names in dependency order but in alphabetical
order. (see pkg_sort(1) below)
pkg_sort:
- This is a new command to sort given lines of package names in
dependency order.
portversion:
- Fix the portversion -c output again.
misc.:
- Fix typos in the zsh compdef's: PKGDBDIR -> PKG_DBDIR.
recently mingled.
- Fix a bug where portupgrade fails in error if -f is given and it
tries to reinstall the same version of a package.
Reported by: Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp>
FreeBSD PR: 31730
- Fix a bug where portversion reports results all reversed. ;(
Reported by: Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp>
FreeBSD PR: 31731
- Fix a problem where it fails to parse uname(1)'s output when it has
a release suffix; e.g. `4.4-STABLE-20011103-JPSNAP i386'.
Reported by: Mark Russell <mark@mark.net.au>
- Add a minimal manual page for pkgtools.conf(5).
- portversion: Fix a typo: errir -> error.
Found by: TOGAWA Satoshi <toga@puyo.org>
Fix a recently caused problem where portupgrade might raise an error
during detecting obsoleted dependencies.
Reported by: Fritz Heinrichmeyer <jfh@jfh00.fernuni-hagen.de>
portupgrade:
Properly remove obsoleted dependencies in an upgrade. This reduces
pkgdb(1)'s turn.
portversion:
Inspect the origin port to get the latest version if a package's
origin is not found in the ports database.
Distinguish between `origin is not recorded' and `origin port is not
found'. Now the flag `#' represents the former and the flag `?'
represents the latter.
- Resurrect the flag `!', which means `port Makefile broken'.
- Yes, the meanings of `#' and `!' have been reversed. Because we
would hardly see ports missing origins any longer, I decided to
assign `!' to the one we see more often.
portsdb:
Call make_describe_pass[12] with the full paths. This fixes a
problem where `portsdb -U' cannot run them if ${PREFIX}/sbin is not
in the PATH.
miscellaneous:
Improve the build process.
- Move shebang line adjustment and ${PREFIX} substitution from the
port Makefile to the source Makefiles.
- Add Makefile.compat in order to support old systems which
doesn't have the SCRIPTS framework. (4.3 or prior)
portupgrade:
- Fix quotes.
[Submitted by: Jimmy Olgeni <olgeni@uli.it>]
- Do not ask whether to install a port twice. (portinstall/-N)
- Complete missing words in the manpage.
pkgdb:
- Comment out deleted pkgdeps properly.
misc.:
- Convert the install script to Makefiles.
- Change the examples/docs subdirectory name from `portupgrade' to
`pkgtools'.
reached the one step higher level. It's *really* powerful. Enjoy! :)
portupgrade:
- Greatly improve the procedure of binary upgrading (-P/-PP):
When a fetched package is not of the latest version:
1) If -PP is given and the package is at least newer than the
current installation, put up with it and do an upgrade.
2) If -PP is given and the package is now newer than the current
installation, give up.
3) Else, fall back to the port.
This way you can now do binary upgrades just as you'd expect.
- Improve the new installation procedure as well.
- Allow using ports glob patterns in the configutation variables
MAKE_ARGS and HOLD_PORTS.
- If a port/package matches multiple entries of MAKE_ARGS, join all
the arguments using the space as separator.
pkg_fetch:
- Introduce a new {environment,configuration} variable PKG_SITES.
You can now specify multiple URI's to fetch packages from.
- When a URI is given, check for the last path component and if it is
not "Latest" or "All", fetch the dependent ports from the same
directory. (-R)
- Do not repeat same error messages.
- Properly reflect the environment variables defined in pkgtools.conf.
pkg_deinstall:
- Add a timestamp hack as well as portupgrade to let the pkgdb engine
properly detect an update of PKG_DBDIR.
pkgdb:
- When the user chooses to delete a dependency, comment the line out
instead of deleting it.
pkgtools.conf:
- Provide some useful predefined constants and functions.