* Change a legacy part of code for gathering dependecies. It fixes
situation when some depends ports could be updated even when it
was up-to-date. As a result I added another check for -R option.
* Fix a wrong condition in portsclean. Now -L option works again.
* Change a semantic for -q option. Now it means 'quiet'. Don't
show a message when -N specified and there is an already installed
package. (Made for DesktopBSD).
Reported by: pav, Peter Hofer (DesktopBSD)
- Just ignore a package if there is no port directory exists. A correct way
for users is to place the ports in HOLD_PKGS in pkgtools,conf, but
they did not. So it makes my life a little easy.
* Many bugs fixed (thanks to all reporters).
* Semantic for -c and -C has changed. -c runs 'make config-conditional'
and -C 'make config' (forced config).
* All ports now runs under portupgrade/portinstall control.
a. If you specify a glob pattern in /var/db/pkg, there will always
be a prompt, even with the -u flag.
b. Try to discourage people from using -u, it doesn't seem to do what
people expect it to do.
c. You cannot upgrade sudo with PM_SU_CMD if sudo is your PM_SU_CMD
2. s/Dq/Qq/
3. Add .Ev tags to environment variables
- When in task list is a port with IGNORE, portupgrade fails. Just ignore it now.
Reported by: Gerard <gerard@seibercom.net>,
Matthew Seaman <m.seaman@infracaninophile.co.uk>
* many bug fixes
* now all dependencies run under portupgrade control
* run 'make config-conditional' and 'make config' with -c and -C options
PR: ports/116830, ports/115249
Reported by: clemens fischer <ino-news@spotteswoode.dnsalias.org>,
KOMATSU Shinichiro <koma2@lovepeers.org>,
and other
ports knobs and options by listing them together with their
status (either enabled or not). It uses portconf for knobs.
PR: ports/116127
Submitted by: Gabriel Linder <linder.gabriel at gmail.com>
in several cases totally rewritten. I am also glad to say that
all of the advertised features now work as advertised. :)
The most exciting new feature is the completely new dependency
updater. I finally took the time to write the line-oriented version
of update_contents() that I wanted to write in the first place, so
no more sed, and no more warnings sent to $PAGER. This version relies
entirely on exact matches to DEPORIGIN to do its work, so it's 100%
reliable.
So what else is new? A lot of micro-optimizations have been done to
eliminate duplicated work, avoid using external commands when not
necessary, etc. There are also some not-so-micro optimizations, which
means that this version is noticably faster.
Totally new features:
1. --check-depends, which as described above calls the new functions
to parse existing +CONTENTS files for dependency data, uses that data
to update +REQUIRED_BY, and updates the +CONTENTS files. These same
routines are also used for updating ports.
2. A "fetch only" feature (-F) that will go get distfiles for new
versions of installed ports by default, and can also be used to get
the files for all of your installed ports, or certain branches by
using the -aft options.
3. An option to hide the build and install process by saving it to a
log (-H). These logs are deleted on successful install, and saved if
the update process aborts.
4. We now keep track of all the ports that get updated or installed in
a given invocation, and print the list at the very end of the process.
5. There is now a little "map" to show you where you are in the
process of the form "parent >> child >> grandchild >> etc."
6. Support for running as an unprivileged user (via sudo) has been
added. See the man page for details on how to configure this.
Improved features:
1. When showing the pkg-message/+DISPLAY files at the end of the
process, all files are grouped together and spit out to $PAGER (or
just cat if -u). If there is an error, there is a pause first
(unless -u).
2. There is now much more sanity checking on user input so that we can
bail out early if there is a problem.
3. The error messages have been completely re-done to be more
informative, and many of them include helpful suggestions on how to
fix the problems.
4. In the expunge (-e) feature, if there is dependency data for the
port you want to delete we now offer you the chance to delete that
instead of just aborting. (Use at your own risk!)
5. The "save old shared libs" feature (-w) is now a lot more
efficient, only runs ldconfig when it has to, and uses
/etc/rc.d/ldconfig.
6. The /var/db/pkg/*/+IGNOREME file now has more functions associated
with it. See the man page for details.
7. When using the -L feature, there is a warning printed if the port
has been set to FORBIDDEN, DEPRECATED, BROKEN, or IGNORE.
8. If you have a real /usr/X11R6 directory (not a symlink) this is
added to the PATH. Otherwise it's assumed that LOCALBASE == X11BASE.
9. Backup packages of existing ports are now saved to
/usr/ports/packages/portmaster-backup, and left there if -b is used.
This way you can create backup packages of a port without disturbing
existing packages with the same version.
There are numerous other things that are not user-visible which have
been cleaned, polished, made more efficient, etc.
with system ones. portsclean -Li ask to remove them. No removes by
default, but we don't want an user remove system libraries just press 'y'
in portscleanup -Li.
PR: ports/116830
Reported by: clemens fischer <ino-news at spotteswoode.dnsalias.org>
package and lets you decide for each one if you want to keep it or delete it.
It also allows viewing the pacakge comment and description.
This program is essentially a clone of pkg_rmleaves except that it shows
the comment and description of packages and does not support GUI dialog(1)
implementations.
PR: ports/117782
Submitted by: Stephen Hurd <shurd@sasktel.net>
* Add support for FreeBSD 8.X.
* Fix a database query bug.
* Ensure the .env files are properly read and export when building the Makefile and database entries.
* Use the C locale when calculating build times.
* Do not die if a Build's log directory is missing when running tbcleanup.
This release comes with a rawenv change, so make sure you copy rawenv.dist to rawenv to get the latest variables.
PR: 118854
Submitted by: miwi
Approved by: itetcu (maintainer timeout)
- Remove support for FreeBSD older than 4.11 and 5.3.
- Remove conditional dependency on bzip2 which I can't really see how
could be activated automatically.
Reported by: "J. Martin Petersen" <jmp@alvorlig.dk> [1]
PR: ports/117845 [1]
With hat: maintainer / secteam
* Allow the @stopdaemon plist directive. [1]
* Fix a typo when checking for proper use of DOCSDIR. [2]
* USE_JAVA is okay to use after including bsd.port.pre.mk. [3]
* Properly check for extra items in the PATCH_SITES section. [4]
* Replace all instances of "IFF" with "If and only if" to be clearer for
non-English speaking, non-math geeks. [5]
PR: 116907 [3]
116698 [4]
116218 [5]
Reported by: rafan [1]
Submitted by: lwhsu [2]
many ports installed that it is difficult to know which sections are relevant.
It reads /usr/ports/UPDATING, attempting for each block to determine whether
the affected ports are installed. It omits blocks that do not apply.
It handles wildcards and other special cases, however it cannot handle
all variants of phrases used on the APPLIES: line.
In uncertain cases, it errs on the side of reporting.
PR: ports/117991
Submitted by: Alex Stangl <alex at stangl.us>
===========+
1. If an +IGNOREME file is present for a package that has a new
version, let the user know.
2. Use printf to display BROKEN/FORBIDDEN/IGNORE messages so that
multi-line messages with embedded newlines will display properly.
Typo Fix
========
Fix two typos in the "it's interactive" message
... on the same line
... in two consecutive words. A new personal record.
I did run through the rest of the script with aspell and didn't
notice anything else, but who knows?
===============
1. In delete_all_distfiles(), $distdir already contains a trailing slash
2. Only print the "no new versions" message for -L, not -l
Big bug fix
===========
1. cd back to the port directory before trying to run 'make install'
pointy_hat_supply++
Approved by: portmgr (marcus)
to bottom read through prompted by a user reporting bug #1 below.
Fortunately I only found that one additional instance of forgetting
to virtualize a value we derive from bsd.port.mk, but I did find and
fix a few more things as well.
Bug Fixes
=========
1. Virtualize an occurrence of $distdir instead of using $pd/distfiles
2. Make all variables in read_distinfos() local
3. When specifying multiple ports on the command line, the test for
PARENT_PID to start read_distinfos() would always fail, so start it
in the initial PARENT_PID block instead. This also implies pulling the
DI_FILES creation up into that same block.
Non-Functional Changes
======================
1. Adjust whitespace in the code, and the script output in a few places
2. Use a shell expansion instead of sed to trim multiple results
3. Remove one redundant error check
4. Replace the name find_contents_distfiles() with find_dl_distfiles()
since the info is not in +CONTENTS anymore
5. Add/update comments to the existing code
Small changes to actual behavior
================================
1. When dealing with unrecorded dependencies pipe the results to
'less -F'
2. Minor optimization: In read_distinfos(), check to see if we're
upgrading an existing port, and if so do that port first so we're
sure the right distfiles will be in DI_FILES even if the function
doesn't complete before the port is done building/installling
3. Add a message to -L to indicate when there are no new versions
4. Move the checks for run-depends after installation of the parent
port so that if a run-depends port has a build-depends on the parent,
it will work. This is a supported, but apparently not recommended
configuration. To make this work do the install with -DNO_DEPENDS so
that we can take charge of the run-depends installs.