relative to ${WRKSRC}. Also automaticslly set LIBTOOL_OVERRIDE if
USE_LIBTOOL is defined, as the vast majority of packages need both if they
need USE_LIBTOOL. The default LIBTOOL_OVERRIDE overrides libtool scripts
up to a directory depth of 2 within ${WRKSRC}.
Note that SHLIBTOOL_OVERRIDE must still be set manually in package
Makefiles that need it; however, it's also been changed to be a list of
shell globs relative to ${WRKSRC}.
don't want it to execute during the build phase as it might overwrite
post-configure changes we might have made to the generated files. Packages
that don't want this behaviour can simply set:
CONFIG_STATUS_OVERRIDE= # empty
in the package Makefile.
save the value of LDFLAGS, CPPFLAGS, etc. in the config.cache file.
However, they don't store the value correctly if it contains leading
spaces. This leads to sub-configure scripts that examine to cache to
error out saying that the build environment changed. Use a make
variable trick to strip off all of the leading spaces on these variables
when passing them via CONFIGURE_ENV.
to CONFIGURE_ARGS if USE_X11 is defined i.e no need to special case
xpkgwedge usage.
Please note that previously these were added to CONFIGURE_ARGS
as soon as xpkgwedge was used even if the package did not actually
defined USE_X11 or something implying it.
replaced by pkgsrc/mk/gnu-config/missing. This avoids requiring
autoconf and automake as hidden build dependencies when they're not ever
invoked by the build process.
"${MAKE}" contains forward slashes. Just pass the bare name of ${MAKE} to
the configure phase as we ensure that "make" is always calling the correct
one symlinked into the .tools directory.
use LIBTOOL_OVERRIDE. In the buildlink[23] case, that is supposed to be
the one in ${BUILDLINK_DIR}. Create new private variables _LIBTOOL and
_SHLIBTOOL to hold these paths.
building of software. For packages that use either buildlink2 or
buildlink3, this would be the wrapper script in ${BUILDLINK_DIR}.
* Garbage-collect _BLNK_WRAP_SETENV.* as those are not needed after
the above changes. Configure and make processes will automatically
find the right compilers in the PATH.
* PKGLIBTOOL and PKGSHLIBTOOL are no longer needed since LIBTOOL and
SHLIBTOOL point to the correct libtools regardless of any
USE_BUILDLINK[23] definitions.
(by checking PREPEND_PATH) and only for those phases of the build that
care about the PATH (buildlink or later). We also pass the PATH to
those same phases of the build so that executing ${CC} will work correctly
from custom {pre,do,post}-* targets that occur at buildlink time or
later.
script that invokes the correct libtool instead of using a symlink. This
fixes the problem where libtool was invoked by /bin/sh regardless of
whether libtool was built to be run by /bin/ksh instead.
They are:
o IMAKE_KERNMAN_DIR (man4 or cat4)
o IMAKE_MISCMAN_DIR (man7 or cat7)
o IMAKE_KERNMAN_SUFFIX
o IMAKE_MISCMAN_SUFFIX
Ok'ed by Hubert Feyrer in private email.
some shells can set MAIL to be the mailbox of the user, and
environment variables will override assignments in make when using
conditional assignments.
bsd.prefs.mk as it's needed in setting X11PREFIX to the correct value,
which is also done in bsd.prefs.mk. This is the follow-through to the
temporary fix in previous revision (1.141) of bsd.prefs.mk.
fetching, extracting, configuring, building, etc. of a package. We
can check what phase we're in by examining the value of ${PKG_PHASE}
and comparing against PHASES_AFTER_<phase>, which list phases that
are "greater than or equal to" <phase>.
One useful example of how to use PKG_PHASE is:
.if !empty(PHASES_AFTER_EXTRACT:${PKG_PHASE})
#
# Some variable settings or targets here that rely on dependencies to
# already be installed, or ${WRKDIR} to be created, etc., as these are
# things that should have happened by the time "make extract" is
# completed.
#
.endif
by GNU configure scripts at CONFIGURE_POSTREQ time. The new config.status
scripts merely return success. This prevents newer Makefiles from
re-running the configure script with the wrong shell environment if we've
touched some GNU autotool-related files during the patch stage.
We might want to always do this, i.e. make this opt-out instead of opt-in.
However, we start with opt-in so that no existing packages can break.
fine-grained distinction between required versions of pre-requisites
(DEPENDS) and versions that are recommended for security or library ABI
consistency reasons (RECOMMENDED).
The contents of ${RECOMMENDED} are added to DEPENDS unless
IGNORE_RECOMMENDED is set to YES, in which case a warning will be printed
and IGNORE_RECOMMENDED will be added to BUILD_DEFS.
Add a corresponding BUILDLINK_RECOMMENDED.<pkg> variable for use with
buildlink2 and buildlink3.
targets by using BUILD_MAKE_FLAGS, TEST_MAKE_FLAGS, and INSTALL_MAKE_FLAGS
in the respective targets. All of the new variables default to
${MAKE_FLAGS} to preserve the current behaviour.
show-shlib-type target and instead defining SHLIB_TYPE using
similar semantics show-shlib-type, but on non-dylib and non-AIX
platforms, use ${OBJECT_FMT} instead of compiling a dummy binary
and running file(1) over it.
with archivers/bzip2 on my Solaris 9 box, this shaves 1.6sec, 92
fork()s and 956 stat()s from creating ${WRKDIR}/.PLIST and the
do-shlib-handling target.
use xpkgwedge to install X11 packages into ${LOCALBASE}. It defaults to
"no" to preserve the current behaviour.
Also make pkgviews imply USE_XPKGWEDGE=yes, as xpkgwedge is a requirement
for making X11 packages install properly using pkgviews.
For each file listed in INFO_FILES the installed files matching
${PREFIX}/${INFO_DIR}/filename(-[0-9]+)? are registered as belonging
to the package.
Also ignore the same files in print-PLIST target.
Info files should not be listed in PLIST files anymore but the awk code
snippet (_PLIST_AWK_INFO) in charge of actually dealing with info files for
the plist target will strip any it finds in them.
Now for the reason behind this...
Older makeinfo command (before pre-release version 4.5.90 or before release
version 4.6) had SPLIT_SIZE_THRESHOLD: when an info file size was
>= SPLIT_SIZE_THRESHOLD then the info file was split in chunks of
DEFAULT_SPLIT_SIZE size.
DEFAULT_SPLIT_SIZE in older versions of makeinfo was 50000 (bytes)
and SPLIT_SIZE_THRESHOLD was 70000.
So if an info file has a size < 70000 and is processed by makeinfo < 4.6
it is not split in chunks. But if it is processed by makeinfo >= 4.6
texinfo.mk to emulate older version automatically adds `--split-size=50000'
to makeinfo's command line and this time the info file is split in chunks...
This can lead to PLIST inconsistency from platform to platform or more
exactly from version to version of makeinfo.
Now we don't have to care about this problem and the info files removal
from PLIST files can happen.
- reduce the number of components with pervasive awk usage.
- handle Info directory file when it is not `info/dir'.
Notice that print-PLIST substitutions are now made globally (awk's gsub())
when previously the sed substitution commands did not have the 'g'lobal
flag.
While here fix PKGVERSION substitution just like PLIST_SUBST's PKGVERSION
element is handled in ${PLIST} target i.e. without considering
the 'nb${PKGREVISION}' suffix.
While here give COMMON_DIRS variable a more "internal type" name:
_PRINT_PLIST_COMMON_DIRS.
- properly quote any filenames in ${PLIST} before feeding them
to xargs. This allows latest textproc/docbook-xsl package
to be registered with its correct size because it contains a file with
a single quote in its name.
XXX pkg_add does not like this filename anyway.
- fix the awk script that parse ${PLIST} so pathname containing space
(hence awk's NF > 1) are not removed from size calculation.
Many thanks to atatat@ to remind me the proper way to quote a shell
word.
changed when they're defined but empty. Although it might sound weird
to have DISTFILES empty and DIST_SUBDIR set, it makes sense for wrapper
packages such as graphics/Mesa.
Fixes PR 23658 from Aaron J. Grier.
packages. All pkgviews packages are safe to install into the same tree,
and we rely on more dynamic file collision detection through linkfarm(1)
rather than just using CONFLICTS.
package Makefiles to customize the options passed to the extraction
commands when the defaults don't suffice. Patch from Michal Pasternak with
additions by me.
normally apply: treat them as if the distinfo file was empty.
This solves the reason why pkgtools/pkg_install/distinfo was resurrected,
and allows us to remove it again, since it had the side effect of
introducing a dependency on digest, which is not acceptable when updating
pkg_install: it made it impossible to use the pkgsrc tree, as reported
by several people.
1.1298) properly by using single quotes instead of double quotes
around the PKGNAME_REQD value, ensuring that the shell does not
interpret the > character as a redirect.
confirmed that no "=1.0.43" files are created on NetBSD and
Linux when a pre-requisite package has a wildcarded version
number eg. ">=1.0.43", and that the original problem is fixed.
installing a pre-requisite package with a wildcarded (e.g. '>=1.0.43')
version number. The problem manifested itself by creating a file
called '=1.0.43' in the pre-requisite package's directory, and a
coupld of "dc: stack empty" spurious messages appeared.
If this needs to be fixed by an OS-dependent variable, we'll address
that in the future.
build a dependency so that the shell does not attempt to do
interpret the value of PKGNAME_REQD.
noticed on Linux building graphics/mplayer where the build of
audio/nas was broken because ${MAKE} was being called with
PKGNAME_REQD=nas>=1.4.2 instead of PKGNAME_REQD="nas>=1.4.2"
such as "Deinstalling", as this lead to confusing/misleading output
when the (previously) installed pkg has a different version number
than the pkgsrc version.
config directory matches the config directory for the dependency
listed in CONF_DEPENDS. Use symlinks to physically point the
package's config directory to the dependency's config directory, and
handle all of this in the INSTALL/DEINSTALL scripts.
Also make the INSTALL/DEINSTALL scripts a bit smarter about not
copying files and not removing files if the source and destination
file locations point to the same thing.
isn't actually a pkgpattern; what we really want is <pkgwildcard>. This
should fix breakage with the "update" and "replace" targets introduced in
revisions 1.1275 and 1.1278.
"${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.