PACKAGES=${PKGSRCDIR}/packages/${OS_VERSION}/${MACHINE_ARCH} _without_
having to ensure each ${OS_VERSION}/${MACHINE_ARCH} is manually created
beforehand.
do this dynamically. This means that we no longer have to have a
separate pkgsrc copy of bsd.own.mk, which was a maintenance nightmare,
and usually out of date, and quite costly too (with a calculation of
whether NetBSD-current was being run every time the file was read).
Also, on a.out, add ldconfig lines to the generated PLIST only if they're
not already there, rather than if they were previously there, and ignore
the return value from ldconfig, which cannot be trusted. The ldconfig
calls have largely been made obsolete by the use of -rpath, but keep it
for just now for backwards compatibility.
In the vast majority of cases, nothing has changed (i.e. .tgz, .tar.gz,
and .tar.bz2).
EXTRACT_USING_PAX can be set as before.
For custom extractions, instead of using EXTRACT_BEFORE_ARGS,
EXTRACT_AFTER_ARGS and EXTRACT_CMD, simply set EXTRACT_CMD to be the
command needed to decompress and extract the lements from the archive.
${DOWNLOADED_DISTFILE} can be used to reference the distfile(s).
e.g. for compressed shars, where previously there was:
EXTRACT_CMD= ${GZCAT}
EXTRACT_BEFORE_ARGS=
EXTRACT_AFTER_ARGS= |sh
now use:
EXTRACT_CMD= ${GZCAT} ${DOWNLOADED_DISTFILE} | ${SH}
invoked, a subsequent "type make" will give "make is a tracked alias
for /usr/bin/make". Using awk(1) to find the third part of that can
lose. type is also a sh(1) builtin on Solaris, which prints "make is
hashed (/usr/bin/make)". However, there is a separate /usr/bin/type,
which prints the pathname at the end.
Minor reformat in same target - replace spaces by tabs where possible.
This makes it possible to do the next step. There were so many .if
make(install) checks that this arguably should be done anyway.
+ In interactive installs, if the effective uid is not zero when "make
install" is attempted, then ${SU_CMD} is invoked (defaults to "su -
root -c", but sudo or priv could be used). This allows running as
non-root for much more time, which is a significant benefit. This also
allows installation of pre-requisite (DEPENDS) packages while building
a package as non-root user.
+ A hook has been added to run ${PRE_ROOT_CMD} before becoming root, so
that root can be given write access to ${WRKDIR} directories, for
example, on -noroot mounted NFS filesystems.
to extract archives when building, rather than GNU tar. This is needed
on platforms where GNU tar is not the standard version of tar, and by
people who prefer to use pax(1) in general.
using "${MAKE} show-pkgtools-version", rather than every time
bsd.pkg.mk is read.
Introduce a definition to indicate the versions of package tools which use
the pkgdb cache, rather than using a magic 19990302 value.
In the process, it was found that the Solaris ln(1) doesn't work quite
the way its manual page claims it does. In particular, "ln -fs a b" will
fail if b already exists, rather than deleting the link. Work around this
by using an explicit rm(1) prior to calling "ln -s".
make clean CLEANDEPENDS=YES
make deinstall DEINSTALLDEPENDS=YES
Both CLEANDEPENDS and DEINSTALLDEPENDS default to NO, so this isn't
different from the current behaviour.
from /var/db/pkg, but also from the pkgdb (in case someone does a
"make reinstall" with FORCE_PKG_REGISTER set). Pointed out by Greg Woods.
XXX This change is only effective if one has a pkg_* tools as of 19990302
or later, but I will not bump the PKGTOOLS_REQD version up, as I do
not expect many people to run into this (and if, it's not a problem).
One should just remove the check with ${_PKGTOOLS_VER} >= 19990302
if the version's bumped beyond 19990302.