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.
pre-fetch stage. Do this by creating a cookie file inside the WRKDIR.
Also let the user override the target from mk.conf to disable these messages.
This fixes PR pkg/22305 by Robert Elz.
can be customized for the package beeing built. This list is extracted from
the contents of BUILD_DEFS, and the message is not shown if it's empty.
Each variable is printed together with its actual value.
The new target is called in the pre-fetch stage, so it's shown early to the
user.
several orders of magnitude and 'make index' now takes 30 minutes or so
instead of several days on my test machine. The approach now is to take
one pass through every package and extract some key information including
the explicitly listed dependencies. After the data is extracted, the
dependencies are flattened in one step which avoids the extremely
inefficient recursive make that was previously used.
shared object "provides" and "requires" information. This is only
turned on just now if ${CHECK_SHLIBS} is set to "YES".
Example output:
% pkg_info -B libutf | grep '^PROVIDES'
PROVIDES=/usr/pkg/lib/libutf.so.2
% pkg_info -B ssam | grep '^REQUIRES'
REQUIRES=/usr/lib/libc.so.12
REQUIRES=/usr/pkg/lib/libutf.so.2
%
- add ONLY_FOR_ARCHS and NOT_FOR_OPSYS to the list of variables that goes
in the print-summary-data output. This is the first step in speeding up
the 'make index' process.
to link pthreaded code, ala PTHREAD_CFLAGS.
this adds support for systems which have no libpthread, but rather,
have pthreads functions in libc_r, such as FreeBSD 5.x.
export PTHREAD_CFLAGS and PTHREAD_LDFLAGS via MAKE_ENV.
do-configure target. To do this I've introduced a new target,
pre-configure-overrides, that depends on ${_CONFIGURE_PREREQ}. It's run
after pre-configure but before do-configure.
This fixes pkg/22077, and allows benchmarks/benchfft to build correctly on
a -current cats box.
Reviewed by wiz@
makeinfo commands.
The goal of the new framework is twofold:
- reduce the number of '@exec' and '@unexec' in PLIST by
using INSTALL/DEINSTALL scripts to handle entries addition/removal
Info directory file.
- achieve lighter dependencies by avoiding unnecessary run-time
dependency on the gtexinfo package and if needed with the help of the
standalone install-info command provided by the recently imported package
pkgtools/pkg_install-info.
A package must be sightly updated to use this new framework and
must define the variable USE_NEW_TEXINFO. This variable will
be removed from the pkgsrc tree when all package would have been
updated.
For details see section 10.24 of Packages.txt, comments in
mk/{texinfo.mk,buildlink2/bsd.buildlink2.mk} and upcoming mail to
<tech-pkg at netbsd dot org>.
if it's up to date. For dependencies (including the current package)
that are not up to date (or are not installed), a one line note is
printed thusly:
% cd audio/xmradio/
% make show-needs-update
audio/mad => mad-0.14.2b => needs update to mad-0.14.2bnb1
audio/xmradio => (none) => needs install of xmradio-1.2
that
% make
===> do-fetch [digest-20021220] ===> Checking for vulnerabilities in digest-20021220
=> Lock acquired on behalf of process 356
=> Lock released on behalf of process 356
becomes
% make
===> do-fetch [digest-20021220] ===> Checking for vulnerabilities in digest-20021220
=> Lock acquired on behalf of process 814
=> Lock released on behalf of process 814
We introduce two new variables: ABI and IMAKEOPTS
ABI determines the correct ABI to use and is set during bootstrapping
from /etc/compiler.defaults.
IMAKEOPTS are the options passed to imake to allow it to set the right
definitions and find the right paths etc. Use IMAKEOPTS with SunOS, too.
IRIX will always require xpkgwedge, since it's got a bogus X11BASE.
When linking against libXaw, make sure we get the right ABI.
defs.*.mk files) when running the configure script. Most of them look for
an awk parser, and this way they will always pick the right one without
having to check all the possibilities.