from which an installed package can be re-installed. This can be used
to build up a list of host specific packages, which is useful, for
example, in re-building all packages on a machine for a.out to ELF
transition.
In the USE_JAVA case, make PATH include ${JAVA_HOME}/bin, and set CLASSPATH in
CONFIGURE_ENV and SCRIPTS_ENV as well (no pkgs use this yet, but they could...)
This should make java packages build happily in bulk pkg builds where CLASSPATH
is not set or JAVA_HOME/bin is not in PATH on the system as a whole :-)
pkgsrc/lang/jdk/pkg/MESSAGE advises people to set CLASSPATH, they
may not have by the time they build a dependent package, especially if
jdk was pulled in as a prerequisite...
DEPENDS_TARGET to builds for dependencies.
This results in "make package" creating packages for all missing
dependencies as well, instead of merely installing them on the system.
This is a more consistent and intuitive behaviour.
Running "make install" will install the dependencies just like before
(no binary packages will be built).
installed, instead of just saying that the version installed is older.
Useful e.g. for the -current packages which don't have -current in their
name (gimp, mutt, cvs et al.)
The installed package tools were last updated on 1999/01/01. <====
Please make and install the pkgsrc/pkgtools/pkg_install package.
Print out the second date from the right variable.
setting M4, and by adding M4 and YACC to CONFIGURE_ENV (YACC is already set,
for NetBSD, in "sys.mk"). If it turns out that a package really needs "gm4"
for "m4", or "bison -y" for "yacc", the corresponding variable will have to
be set in the package's Makefile (and the explicit dependency added, too).
them now, in mk.conf.example, and add a small comment explaining what they
do.
When SMART_MESSAGES is defined, when compiling packages, the make(1)
target is displayed, and also the current stack of packages being built.
(implements $PACKAGE_DEPENDS_QUICK)
--
Thomas Klausner hinted me at some interresting problem WRT the
print-depends package. If something depends on suse_linus-6.*, that
package will register whatever suse_linux there is right now on the system
(in his case V6.1). What print-depends then does is also dig out any pkgs
required for suse_linux, based on what's in pkgsrc, which is of course
_wrong_, as this most likely doesn't match the installed version.[*] The
right thing instead is to print whatever the (currently installed)
suse_linux package depends on, which can be read from "pkg_info -qf"
output, looking at the @pkgdep lines.
Of course this only works if the pkg is actually installed, so it cannot
be used for README.html generation etc., but that's bad luck.
One positive aspect of using the @pkgdep list instead of going down
recursively is that this saves some time and processes. On my P133 it's
going down from ~11s to 0.5s for the pkgsrc/x11/kde package. During a
"make package" of kde itself (not counting the depending pkgs) this will
cut down like 20s (once for the fake-pkg target, and another one for the
pkg_create args - maybe a 3rd time for pkg_create in fake-pkg, but I don't
want to check that right now).
Anyways, a general solution would be to use the "pkg_info -qf | grep
@pkgdep" in print-depends instead of recursion (only!) in the places that
we know that the depends are installed. Which is the PKG_ARGS assignment
(for pkg_create) and the fake-pkg target.
[*] Plus it may be questioned that we should not go down recursively
for pkg depends anyways, but this is used in too many subtle ways
throughout the system to change.
target won't delete BUILD_DEPENDS packages. No one should be setting
DEINSTALLDEPENDS to ALL in /etc/mk.conf--it's done unconditionally by
the update target. Setting DEINSTALLDEPENDS to anything but NO or ALL
will still cause the BUILD_DEPENDS to be pkg_deleted.
installed pkg and this won't be caught by "pkg_delete -r".
There are still situations where pkgs can be left behind if they were
pulled in as BUILD_DEPENDS of any depends installed via the "depends"
target. Maybe Makefile-level recursion should be used instead of
"pkg_delete -r" to implement this...