"${PKG_BEST_EXIST} pkgpattern" instead of "${PKG_INFO} -e pkgpattern". The
latter can return multiple package names if there are multiple versions of
a piece of software installed. PKG_BEST_EXIST is defined to be
"${PKG_ADMIN} -b -d ${_PKG_DBDIR} -s "" lsbest", so it searches for the
best installed package that matches the given pkgpattern or else returns
the empty string.
Bump PKGTOOLS_REQD to 20030912 since pkg_admin(1) needs to know about "-b"
and "-d <dir>".
gcc buildlink2.mk files and splitting the non-buildlink2.mk bits out
into compiler.mk.
this allows USE_GCC2 and USE_GCC3 to work with non-buildlink2 packages
again.
DEFAULT_VIEW.${PKGBASE} default view for ${PKGBASE}
VIEWBASE base location of files at run-time
The first is meant to be set by package Makefiles or in /etc/mk.conf, while
the latter is meant to read/used only. VIEWBASE is either ${LOCALBASE} or
or ${LOCALBASE}/${DEFAULT_VIEW.${PKGBASE}} depending on whether the first
variable is the empty string or not.
to by a package Makefile. This is passed as the environment when running
the test target. We often need this since packages can require setting
up LD_LIBRARY_PATH so that we can test before installation.
"pkg_delete -O pkgname" actually remove file entries for pkgname from the
pkgdb.byfile.db database. This makes FORCE_PKG_REGISTER work again (this
must have been broken for a long time).
PKG_SYSCONFBASE when they want PKG_SYSCONFDIR stripped of
PKG_SYSCONFSUBDIR. This makes PKG_SYSCONFBASE=/etc work with pkgviews by
installing all config files into /etc/packages/<pkg> instead of
occasionally putting some directly into /etc.
Also only create PKG_SYSCONFDIR if we're actually going to copy config
files.
This fix NO_MTREE installation on Solaris when ${PREFIX} already exists
and is a symlink.
Example:
# uname -sr
SunOS 5.9
# cd /tmp
# rm -f foo
# ln -s /etc foo
# /bin/mkdir -p /tmp/foo
mkdir: "/tmp/foo": Exists but is not a directory
#
thing.
(*) Move the code to adjust Makefiles to refer to the correct
PKGLOCALEDIR into bsd.pkg.mk and reimplement it using subst.mk so
that it's non-USE_BUILDLINK2 packages can use it, too.
(*) Reimplement the PKGCONFIG_OVERRIDE code in bsd.pkg.mk using subst.mk.
(*) Reimplement the unbuildlink code in bsd.buildlink2.mk using subst.mk.
${TOOLS_DIR}/bin/make. If a package wants GNU make, then it should
set:
USE_GNU_TOOLS+= make
in the package Makefile. Allow for USE_GMAKE to continue to work
until we get a chance to sweep through pkgsrc and remove the usage
of this now-redundant variable.
This change allows us to avoid patching makefiles that use a bare
"make" command to invoke sub-make processes. Idea suggested by
salo@netbsd.org in pkg/22509.
before trying to create the binary package. This makes:
cd pkgsrc/category/foo
make install
pkg_delete foo
make package
fail because package "foo" isn't actually installed, so no binary package
can be built.
devel/gettext and other pkgs installing libraries ending in eg.
`x.y.z.so' rather than `.so.x.y.z'.
also fix off-by-one bug in shlib handling awk script causing the
first .so entry to not be commented out in the PLIST when it should
be.
ok'd by jlam.
to run ldd if it is executable.
fixes bug where binaries just installed would be run (!) and the
install process possibly "hang" on Darwin because Darwin has no ldd!
put the tools in ${WRKDIR}/.tools/bin instead of in ${BUILDLINK_DIR},
and remove the need for buildlink2 to use USE_GNU_TOOLS. In the
modified USE_GNU_TOOLS implementation, the following implementation-
specific variables have the following meanings:
_TOOLS_REPLACE.<tool>
means that we want ${AWK}, ${SED}, etc. symlinked into
${TOOLS_DIR} as awk, sed, etc.
_TOOLS_NEED_GNU.<tool>
means that we want to use the pkgsrc version of <tool>
symlinked info ${TOOLS_DIR} as awk, sed, etc. If this is
"YES", then it always trumps _TOOLS_REPLACE.<tool>.
And we want nothing to happen if we're building the pkgsrc GNU tool
itself. The modified USE_GNU_TOOLS implementation should also
hopefully fix the circular dependency problem.
Create a new target "tools" that is run after "patch" and before
"buildlink" that populates the ${TOOLS_DIR} directory. This ensures
that it's always run at the right time, instead of relying on
pre-buildlink or pre-configure, which may be cancelled by
NO_BUILDLINK or NO_CONFIGURE.
XXX There is some possible fallout in texinfo.mk with the MAKE_ENV and
XXX CONFIGURE_ENV settings for INSTALL_INFO and MAKEINFO. It looks
XXX like the MAKE_ENV and CONFIGURE_ENV settings should move from
XXX tools.mk into texinfo.mk, and they no longer need to be
XXX conditional on USE_BUILDLINK2. I'll leave it to the texinfo.mk
XXX dude (Hi, Stoned!).
Make COMMON_DIRS generating an awk script instead of sed expressions hence
use awk instead of sed to deal with the mtree file.
This get ride of the annoying 'sed: Too many commands' message making
print-PLIST unusable with Solaris' seds.
by the loops introduced by tools.mk) causing make failures.
But show-all-depends-dirs and show-all-depends-dirs-excl are not.
So use show-all-depends-dirs-excl in clean-depends target and remove
clean-depends-list altogether.
Besides this remove a bit of clutter and redundancy from this
already monstrous file.
sets, so that this target will work on all native sed programs. The extra
invocation gets lost in amongst all the other sort, grep, sed, and awk
invocations that are there, and is a much more appealling prospect than
installing GNU sed.
defined, then show the BUILD_DEFS to the user. If not, then just keep quiet.
Whilst I'm here, re-indent the cpp-like .if/.else/.endif/.for/.endfor lines
properly.
Also, remove the ":u" modifier in the build-defs-message code - it's not
strictly necessary (duplicate definitions will be displayed, but this isn't
a major problem), and it removes the requirement to have a make(1) binary
which supports ":u".
This should fix PR 22402 from Alan Barrett, and also addresses some concerns
raised by Robert Elz.
users to whom the MESSAGE file should be mailed at package
installation time, and mail the MESSAGE file at the "make install"
stage (if PKGSRC_MESSAGE_RECIPIENTS is not empty).
Inspired by PR 22328 from Jeremy Reed.
MAKE_ENV. There is no effective way to unset CPP otherwise and there are
some packages (the cross compilers using gcc) where having CPP set will
break things.
and awk. as proposed on tech-pkg@, with some changes to set the
appropriate tool variables and handle OSs which provide GNU tools
in the base system (ie. do nothing).
this allows packages or users to force the use of pkgsrc GNU tools
when they are not present in the base system by defining e.g.
USE_GNU_TOOLS="awk sed".
Solaris' sed is marked as incompatible, as even the XPG4 sed is too
limited for a number of packages (especially large ones which use
libtool, as libtool calls blind 'sed'), so GNU sed is always used
on Solaris.
INFO_FILES is now defined by default to the empty value.
If it is not empty it means that install-info -or a suitable
replacement like pkg_install-info- is required.
USE_MAKEINFO is now defined by default to the 'no' value.
If it has any other value it means that makeinfo is required.
Note that as before simply defining USE_MAKEINFO in a package
Makefile is enough to trigger the use of makeinfo. I.e. it is not
required to be '[yY][eE][sS]'.
As a side effect when using buildlink2 always create install-info and
makeinfo wrappers in ${BUILDLINK_DIR}/bin. This could help
package maintainer to catch spurious/hidden install-info and makeinfo
usage.
Note that for now this nice feature is not really enabled as the relevant
part of bsd.buildlink2.mk is still conditional upon USE_NEW_TEXINFO.
It will really be when USE_NEW_TEXINFO will be removed from pkgsrc.