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.
portupgrade:
- Fix a bug that -s/--sort didn't work. D'oh!
- Make -u/--uninstall fail-safe. It backs up old
installations with the help of pkg_tarup and restores on
installation failure.
- Show option errors more gracefully.
- Die on signals more gracefully.
portversion:
- Show option errors more gracefully.
- Die on signals more gracefully.
This is a milestone release for me. Enjoy. :>
portupgrade changes:
- Implement -s/--sort which sorts packages in the dependency order.
- Implement -R/--upward-recursive, and get -r/--recursive working for
upgrading as well. (Finally!)
- Add -DBATCH to the make fetch' commandline to prevent ports from
dumbly waiting for user input.
Greatly inspired by: Jimmy Olgeni <olgeni@uli.it> (Thanks!!)
portversion changes:
- Make command output optimal by using portupgrade's -s option.
- Report possible ports' Makefile breakage.
around a CVS bug. Also add some missing options to usage() and help()
and alphabetize them properly, and show the usage string if no arguments
were specified on the command line.
2001-04-18 03:36 knu
* misc/zsh/_portupgrade: Add -F.
2001-04-18 03:35 knu
* portupgrade: Add -F/--fetch option to make dial-up users happy.
Submitted by: Jimmy Olgeni <olgeni@uli.it>
(He suggested -e, but I prefered -F)
Show what version a package is upgraded to to help a user decide
whether to upgrade or not.
Submitted by: Timothy Smith <tim@mysql.com>
Resurrect portversion for what it's worth as a reference code. The
problems that kept it from working has been addressed and will
hopefully be fixed soon. :)
does handle versions correctly.
By the way, I'll have to find a workaround for the ruby's thread
vs. libc_r (stdio/malloc) problem exposed by portversion... Hmm.
- bsd.port.mk update to use bsd.kde.mk for USE_{QT,KDE}*
- Cleanup corresponding ports for bsd.kde.mk update.
- Fix bsd.kde.mk: use correct kdelibs dependency, put qt at the bottom,
introduce QT_NONSTANDARD variable for nonstandard configure setup.
- Update KDE2 to 2.1.1. Two patches included in x11/kdelibs2 to fix the
proxy authentication that was broken for 2.1.1. Remove old patches.
- Potentially fix kdelibs build for alpha.
- Fix qt-designer 2.3.0 build.
- Ruby stuff left alone since it looks like black magic to me. Should
still work w/ compat shims for older USE_QT[,2] style. Some others
were also left alone for the same reason.
Reviewed by: portmgr, ports (bsd.kde.mk+bsd.port.mk)
Submitted by: David Faure <faure@kde.org> (proxy auth patches)
Alex Zepeda <garbanzo@kde.org> (old patches removal)
2001-03-23 04:08 knu
* portupgrade: Change the timing of the invocation of the
beforebuild command so that "portupgrade -B'cvs update' foo" works.
Reported by: Ollivier Robert <roberto@eurocontrol.fr>
2001-03-23 04:06 knu
* portversion: Fix the implication of a '*'. (portversion -v did
nothing ;)
Reported by: Tadayuki OKADA <tadayuki.okada@windriver.com>
2001-03-23 04:04 knu
* pkgdb.rb: Skip packages with illegal names showing an informative
message rather than dying of an error.
Reported by: Ollivier Robert <roberto@eurocontrol.fr>
the Porter's Handbook compliant version of pkg_version with a little
bit better performance and better usability.
2001-03-22 06:13 knu
* README, portupgrade, misc/zsh/_portupgrade: Add a couple of new
options: -A [command to run after each installation] -B
[command to run before each build]
2001-03-22 05:49 knu
* README, install.rb, portversion, misc/zsh/_portversion: Add
portversion.
2001-03-22 05:43 knu
* portupgrade: Use make(1) arguments specified with -m for "make -V
PKGNAME" too.
Ignore the difference of the name parts when it compares the
package versions.
2001-03-22 05:36 knu
* misc/zsh/_portupgrade: Add a missing closing bracket.
- Use Dir.entries(dir).each instead of Dir.glob(dir) so it does not
hit the just installed packages.
- Add -p option. [make package as well when each port is installed]
(Requested by: Ollivier Robert <roberto@eurocontrol.fr>)
- Sort options in alphabetical order.
the version to 2.3.2.
- Add checks for empty files, empty directories, core files, more
possible backup files, dotfiles, symlinks and CVS directories.
- Do not assume PATCHDIR always includes "/files/". Use the best
method to check whether a file is added to @checker as a patch file.
- Some trivial message style fixes.
It upgrades ports without reinstalling dependent packages by directly
modifying the package info recorded in the files under /var/db/pkg.
e.g.
portupgrade gtk
portupgrade -cC gnome\*
It currently has many design flaws (to me at least) but I am releasing
this because it's functionally stable enough to use. (I believe.. ;)
Use with care, at your own risk.
- Conform to the new port layout, finally.
- Use COMMENT, DESCR, PLIST, PKGINSTALL, PKGDEINSTALL, PKGREQ,
PKGMESSAGE, SCRIPTDIR and PATCHDIR instead of hardcoded file/directory
names. (suggested by will)
- Fix maxchars checker that has been broken.
- Fix "use ldconfig with ||/usr/bin/true" checker. (patch submitted by
sobomax)
- Fix "include the country code in the module alias name" warning.
Besides, "country code" is corrected to "language code".
- Add french and hebrew to the list of lang-specific categories.
- Properly omit the checks against PORTNAME section etc. when the
testee is a slave port.
- Add "INSTALLS_SHLIB may be missing" checker which searches pkg-plist
for `*.so' and `*.so.<nn>'.
- Make it dynamically read bsd.sites.mk so that we no longer need to
keep it always in sync with bsd.sites.mk. It now should recognize
`/%SUBDIR%/' part too.
- Change `split(/\s+/, "blah blah blah")' to `qw(blah blah blah)'.
- Add some dummy comments that prevent Emacs' CPerl mode from
confusing.
- Add a condition "unless this is a master port" to the warnings that
are specific to master ports, because currently we can't know if a
port is a master port.
Reviewed by: mharo (MAINTAINER)
patches/patch-aa -> files/patch-aa
No repo-copy needed, since there was no history for the patch, but I
include the original commit message for it here:
Adding a `-P' option to the CVS checkout lines is needed or else
bsd.port.mk finds the older directories and complains about mismatched
port versions.
Submitted by: my machine going nuts and trying to build this port by mistake
Approved by: asami
ports layout. Apologies to everyone for taking so long to get around
to this. I'm surprised, nay amazed at how many people are still using
PIB after all this time. Thanks!
PR: ports/22016 ports/22022 ports/22130 ports/22281
- 'cvs -Q' is *too* silent, so just use 'cvs -q' when not verbose.
- cache the results of find_master().
- allow for a trailing slash in the second field in a dependency spec.
- add an option to show the packing lists for selected ports.
- fix a bug where porteasy would build a port when it shouldn't.
Always use the -d option when invoking CVS, to work around breakage in CVS
(said breakage has reportedly been fixed in 1.11, but I haven't verified this)
Bump version number.
port actually does not have any DISTFILES variable. This *should* work
with slave/master ports, but I'm not sure.
Now the portlint port passes its own test. ;->
PR: 21380
Submitted by: des
Approved by: mharo
- better rcsid checking
- add DIST_SUBDIR to section 1 of the Makefile
- add check for WWW: in pkg/DESCR when http:// exists
- add new -t flag, which will require a tab after a variable defination instead
of spaces
- cleanup english grammar
- add -M (make variable passing) flag
- change into portdir instead of constantly using $portdir/file
- get variables from make instead of parsing the Makefile
- update usage()
- fix some portname/version bugs
- add EXTRACT_ONLY to section 1
- fix multi comment sections on top bug
I think I'm going to start a rewrite of lots of portlint's code to
*hopefully* make it easier to add new checks in the future. If you
have any requests of things for me to put on portlint's TODO list,
send me an email letting me know what they are.
Fixes:
* fix some portname/version checking bugs
* put EXTRACT_ONLY in section 1 checking
* fix multi comment sections at top of Makefile regex
* make portlint pass perl -w (this found a few bugs)
No new features in this version
isn't 100% ready for prime time, but it works well enough that it should
be fine to use for most things. I'm not sure if I'll have time to fix
the few minor bugs that I know of and give it a good testing today.
Parts of the PORTNAME/PORTVERSION changes were submitted by knu.
Other changes in this version:
* add "-V", version flag
* use getopts instead of parsing @ARGV
- this fixes a bug where you could only specify one flag after the
dash (ie. -c -N would work and -cN wouldn't)
* change some warnings to fatals
* ignore dot directives in Makefile
- this usually reduces the number of warnings displayed when
a Makefile contains .include or .if foo
* don't blame just emacs for leaving around temporary editor files
* don't warn about installing files into /compat
* correct counting of number of chars in pkg/COMMENT
* understand multiple rcsid tags in the comments section
- this allows us to have both $FreeBSD$ and $NetBSD$, for example
without getting funky warning messages
* scope variables with my instead of local so we can use strict to
help us find bugs in portlint
portlint port passing portlint)
New portlint features:
* Allow pkg/COMMENT to start with a digit
* Warn about .la files in pkg/PLIST
* Better support for comments in the Makefile
- fixes the section off by 1 error
(DISTNAME needs to exist, and so on, when it does)
* don't report "FATAL: no MAINTAINER listed in Makefile" when it does exist
* other random minor bug fixes
- enforce pkg/COMMENT style
- better info file checking in pkg/PLIST
- don't warn about @unexec rmdir foo || true - the handbook says this is fine
- allow CATEGORIES+=
- warn about www.freebsd.org/~user needing to be people.freebsd.org
- warn about PKGNAME being set from another variable instead of being a
fatal error
- understand both $(PORTSDIR) and ${PORTSDIR}
[Has anyone figured-out what makes the number 393 so interesting to PW, now?]
I wonder what was going through Jordan's head during his infamous
$Id$-smashing commit.
Before I forget....
Thanks to naddy@mips.rhein-neckar.de (Christian Weisgerber) for prompting
this commit. See msg-id: 7geokh$tje$1@mips.rhein-neckar.de
put the source code for "portlint" into FreeBSD port tree. The
imported revision is 1.65 (in my local RCS file). (pseudo) version
number for the port is now 2.0.
Whoever make changes to bsd.port.mk is advised to update portlint.pl
too :-)
Note that portlint.pl MUST be portable enough to handle (Net|Open|Free)BSD
bsd.port.mk. There are people using portlint.pl on non-FreeBSD
platforms.
Portcheckout(1) checks out a FreeBSD port and all runtime
and buildtime depending ports into the current working
directory. The output is written to stdout as an
executable shell-script.
Compiling a FreeBSD port usually require a full tree of ports
in /usr/port. A cvs checkout or a cvs update command takes
a very long time and need much free space.
With portcheckout, you checkout only the parts of the port
tree which you really need. This is a magnitude faster!