Overall:
- Fix commands and libraries to run on a statically linked ruby.
- If a command fails to load dynamic modules with dynamically linked ruby,
restart itself with statically linked ruby.
This is to cope with the 4.3 -> 4.4 upgrade, since ruby's dynamic modules
are under a directory with a name including a FreeBSD version. Now
portupgrade can upgrade itself and ruby even after a major FreeBSD upgrade.
portupgrade:
- Fix a bug where portupgrade -sS 'su root -c %s' did not properly work.
[Submitted by: KOMATSU Shinichiro <koma2@jiro.c.u-tokyo.ac.jp>]
portcvsweb:
- Accept a port path as well.
portsdb:
- Adopt better error handling and a better PORTS_DBDIR selection algorithm.
- Check database errors a bit harder.
Overall:
* Fix a bug where when -R is set the specified package in the first
place is not included somehow.
[Reported by: Jose M. Alcaide <jose@we.lc.ehu.es>]
* Improve the path regularization routines.
portsdb:
* Update the INDEX first, and then the database even if the options
are specified in reversed order. (-uU)
portupgrade:
* Fix a misfeature where "skip" was regarded as failure, when checking
for dependent ports' build/install failure.
[Pointed out by: Jimmy Olgeni <olgeni@uli.it>, Jose M. Alcaide
<jose@we.lc.ehu.es>]
* Do not move a backup package under PKG_DBDIR, but just keep it under
TMPDIR. It should not require a large amount of free space in
PKG_DBDIR.
[Pointed out by: John Merryweather Cooper <jmcoopr@webmail.bmi.net>]
Overall:
- Disregard -r and -R when -a is also specified; there is no
need to recurse when you do with everything.
- Fix a bug in -r and -R routines where it might fail in error
if dependencies of a package were all wrong.
[Caught by: Mamoru Iwaki <iwaki@bsp.bc.niigata-u.ac.jp>]
- Fix the support for the case where PORTSDIR is a symlink.
- Squeeze //'s.
- Run `stty sane' before building each port, on interrupt, and
before exit.
- Accept portorigin_glob and pkgname_glob with paths, except
for -x/--exclude.
portupgrade:
- Fix `portupgrade -Ni' (portinstall -i).
- Skip ports and packages that once failed, and do not try to
upgrade multiple packages of an origin.
- If a port or a package failed to build or install, skip its
dependents. This behavior can be overridden by the new
option, -g/--go-on.
pkgdepfix:
- Backup +CONTENTS files before removing duplicates.
portsclean:
- Start implementing -L/--libclean.
misc/tcsh/complete.sample:
- Add a simple example of tcsh completion definitions.
[Contributed by: kuwa@flab.fujitsu.co.jp]
portupgrade:
Fix -A and -B which were broken when I introduced -L.
[Submitted by: Ollivier Robert <roberto@keltia.freenix.fr>]
portsdb:
Implement -M/--master-recursive, -R/--upward-recursive and
-x/--exclude, and sort the result in dependency order.
portsdb:
Do not clobber the INDEX file until the new one is ready,
so you don't have a zero-sized INDEX while updating it.
pkgdepfix:
Implement an origin duplicates fixer (only invoked when -o is
specified), and when it fixes one, redo the whole session.
Make the cyclic dependencies fixer a bit more intelligent.
portcvsweb:
Conform to the Secure BROWSER (SB) Specification proposed by
David A. Wheeler.
cf. http://www.dwheeler.com/browse/secure_browser.htmlhttp://www.tuxedo.org/~esr/BROWSER/
- Introduce a new environment variable "PORTS_INDEX", to specify an
alternate ports INDEX file location. You can set this to something
like `/usr/ports/INDEX.txt" not to overwrite the one under the
control of CVSup/CVS/CTM.
- Fix portinstall (portupgrade -N) which I broke recently by mistake.
- Change the report format. It shouldn't be too verbose unless you
specify -v.
pkg_deinstall/pkg_glob, portupgrade:
- Fix the glob expander to exclude not installed packages recorded
in +CONTENTS and +REQUIRED_BY files.
pkg_deinstall/pkg_glob, portupgrade, portversion:
- Properly handle regular expression errors.
pkg_glob:
- Properly define a signal handler.
- Show a better report.
portsdb: (overall)
- Try doing make INDEX when no INDEX file is present, and if it
fails raise an exception.
portupgrade:
- Add a new option: -L/--log-prefix, with which a user can save a
build & installation log file for each port/package.
- Show a concise and helpful message for each upgrading error. It
now autoatically guesses the reason of each failure using the same
algorithm that Ports Wraith's processlogs script uses.
- Fix a bug where 'portupgrade -aE' raised an error.
portversion:
- Support -r/-R/-x as other tools do.
- Fix a bug where `portversion -E' raises an error.
Fix a trivial but annoying behavior. Print progress messages during
(automatically) updating the ports database to stderr instead of
stdout, so the output of `portversion -c > script' won't contain any
unexpected progress messages.
(No bugs have been found in the previous version)
portupgrade, portversion, pkg_deinstall, pkg_glob, portsdb:
- Add a new option -E/--regex, which allows you to use the extended
regular expression instead of the shell glob pattern to specify
packages or ports.
portupgrade:
- [IMPORTANT] Turn -c/--clean and -C/--cleanup on by default.
[Suggested by: Ian Dowse <iedowse@maths.tcd.ie>}
- Now that -c/--clean is on by default, -Fc no longer means
"fetch-only + do distclean before each fetch". Instead, a new
option -D/--distclean is added which can be used with or without
-F/--fetch.
- Add new options -w/--noclean and -W/--nocleanup.
- Always do `make clean-depends' before building dependent ports.
- Add a new option -E/--regex, which allows you to use the extended
regular expression to specify packages.
- Add a long option --use-packages-only for -PP.
- Rewrite the WARNING section of the manpage and mention
pkgdepfix(1) in it.
[Suggested by: Ian Dowse <iedowse@maths.tcd.ie>]
pkg_glob, pkg_deinstall:
- Add back long options.
dependencies.
- Fix a bug in the cyclic dependencies handler where it couldn't
always cope with a cycle properly.
[Problem found by: Fritz Heinrichmeyer <jfh@jfh00.fernuni-hagen.de>]
- Don't emit a confusing error message "Cannot update the ports DB!"
on a recoverable error.
- Implement a cyclic dependencies fixer in pkgdepfix(1).
(Cyclic dependencies could never be generated if ports are made
properly..)
portsclean:
- Rewrite in Ruby and implement the distfiles cleaner. [new]
portsdb:
- Show a progress message while updating INDEX.*.
- Record version information into INDEX.rdo.
- Record category information into INDEX.rdo and enhance the API
accordingly.
- Introduce the automatic PORTS_DBDIR selector. Now it will use
whichever writable directory in the following ones: $PORTS_DBDIR,
$PORTS_DIR, /usr/ports, $PKG_DBDIR, /var/db/pkg, $TMPDIR, /var/tmp,
/tmp (checked in the order named)
portcvsweb:
- New tool: a tool to open CVSweb to view a CVS log. [new]
pkg_deinstall:
- Bring in most of the options of pkg_delete(1).
- Add a new option `-P', which preserves shared libraries.
- List failed packages if any.
- Obsolete GNU style long options, which take space and would
only rarely be used.
portupgrade:
- Make portupgrade use pkg_deinstall instead of pkg_delete, to
utilize its -P option.
- Now portupgrade always uninstalls old packages, but
preserves shared libraries by default. The -u option has
been changed to mean "Do not preserve old shared libraries".
Note, however, that its behavior is the same as before, it
is just the default behavior that has been changed.
With this change, portupgrade no longer leaves extra garbage
even if you don't specify -u, but only old versions of
shared libraries for safety. :)
- Utilize $tmpdir properly for pkg_tarup. (previously
PKGREPOSITORY was used prior to PKG_TMPDIR or TMPDIR)
- Add a notice regarding the disk space for backup files.
Since it's my birthday today, I just wish this update doesn't contain
terrible bugs.. ;)
overall:
- Fix commands not to quit when user answers ^D to a yes/no question.
- Call pkg_* commands in fullpaths.
portupgrade:
- When -s is specified, run sudo to build & install dependent ports
when some are missing, too.
portsclean:
- This is a new command which cleans ports' working directories.
portupgrade:
- Make portupgrade a little bit more fail-safe by restoring modified
dependency info on installation failure.
portversion:
- Make portversion refer to the ports database and run several times
faster. (!)
portsdb:
- Do not immediately fail in error when it finds an error in the INDEX
file, but skip the line and continue.
have been made to the existing utilities)
pkg_deinstall: This is a package deinstaller with wildcards and
dependency recursion support.
pkg_glob: This is a package glob expander with wildcards and
dependency recursion support.
2001-07-14 17:05 knu
* misc/zsh/: _pkgdepfix, _portupgrade, _portversion: Improve zsh
compdefs.
2001-07-14 16:40 knu
* portupgrade.1: Fix manpage.
[Submitted by: Sean Chittenden <sean@chittenden.org>]
2001-07-03 14:26 knu
* pkgdepfix.1, portsdb, portsdb.1, portsdb.rb, portupgrade.1:
Introduce a new environment variable PORTS_DBDIR, which specifies
an alternative ports database directory. This is useful when
/usr/ports is on a readonly filesystem.
[Requested by: Makoto MATSUSHITA <matusita@jp.freebsd.org>]
Warn and abort the update if PORTS_DBDIR is not writable,
instead of just failing in error.
-B CMD
--beforebuild CMD Run the sapecified command before each build. If the
command exits in failure, the port/package will be
skipped. Here is some typical uses:
portupgrade -B 'cvs update' 'gnome*'
portupgrade -aB 'test ! `make -V IS_INTERACTIVE`'
-x GLOB
--exclude GLOB Exclude packages matching the specified glob pattern.
Exclusion is performed after recursing dependency in
response to -r and/or -R, which means, for example,
the following command will upgrade all the packages
depending on XFree86 but leave XFree86 as it is:
portupgrade -rx XFree86 XFree86
portupgrade:
Add a new option: -N/--new. If it is specified, portupgrade
installs a new one when a specified package is not installed.
portinstall:
New command equivalent to `portupgrade -N'. You can specify a port
origin to name the one you want to install, too:
e.g. `portinstall shells/zsh'
This is a maintenance release.
- Manpages provided.
- Ports DB got faster.
- Wording fixed.
- New feature added to portsdb(1): you can use it to expand
port/pkgname globs. (archivers/p5-*, zsh, gnome*, etc.)
Beware of bugs, just in case. ;)
portupgrade:
- Sort packages by default and remove -s/--sort.
- Rename -y/--yield/-Y/--yield-command to -s/--sudo/-S/--sudo-command.
- Implement -a/--all.
- Implement -x/--exclude=GLOB.
- Exit on OptionParser::ParseError immediately.
- Do not call "make fetch-recursive" but just "make fetch", now that
portupgrade does recursion itself.
- In fetch mode, specify -DPACKAGE_BUILDING for ports that define
IS_INTERACTIVE. [Submitted by: Jimmy Olgeni <olgeni@uli.it>]]
portversion:
- Exit on OptionParser::ParseError immediately.
portsdb:
- New tool: which updates INDEX and INDEX.db in the ports directory.
pkgdepfix:
- Implement origin fixer with intelligent guessing, finally!
(-o/--fix-origin)
- Make pkgdep guessing more intelligent.
portupgrade:
- Change the meaning of -P/--use-packages. If specified once, it
uses packages whenever available or uses ports. If specified
twice, it never try to use ports but only uses packages.
- The package directory is now specified via the environment
variable, by PKGREPOSITORY and PKGREPOSITORYSUBDIR.
Print the usages to stdout instead of stderr.
portupgrade:
- Implement -P/--use-packages, which everyone bugged me with. :>
pkgdepfix:
- Add "delete" to the choices as to how to deal with a stale
dependency.
- Alter the prompt message.
- Add zsh compdef.
pkgdepfix:
- Implement automatic guessing.
- Add yes-to-all to the choices of yes/no prompt.
- Do "stty sane" on interrupt.
portupgrade:
- Backing up +REQUIRED_BY must have been done before pkg_delete.
[Submitted by: SASAKI Katuhiro <sahiro@vanilla.freemail.ne.jp>]
Because of the portupgrade bug, portupgrade -u would have broken some
of your +REQUIRED_BY files. Please fix them up with pkgdepfix.
this is version 20010606.
A new tool pkgdepfix is added. It allows you to interactively fix
/var/db/pkg's @pkgdep / +REQUIRED_BY discrepancies. Run this
periodically to let portupgrade properly trace dependencies.
I think I have finally fixed the problem some people have seen that it
deletes a package registry in some cases! At the same time, -m and -p
now works properly again.
Those problems were all due to Shellwords::shellwords' destroying its
given string. Thanks to Tadayuki OKADA <tadayuki@mediaone.net> for
sending me a report that made me realize what the problem was.
* No need to recurse @pkgdep search, really.
* Support the latest pkg_tarup.
* Backup +REQUIRED_BY a bit earlier, just in case.
* If it fails to copy the new +REQUIRED_BY to the package's dbdir,
emit a message and save the file in TMPDIR.