with gavan@NetBSD.org at pkgsrcCon.
Within the pkgsrc infrastructure, LOCALBASE has two different meanings:
(1) where the package being built should be installed, and
(2) where to find previously installed packages.
Most instances of case (2) should be converted to use EVAL_PREFIX,
but there are some cases where this is impossible. To resolve this,
we preserve LOCALBASE to mean (2) and we create a new variable
INSTALLATION_PREFIX to mean (1).
INSTALLATION_PREFIX is meant to be set some time before bsd.pkg.mk is
included, and provides the value for PREFIX if it's defined, e.g.
NO_MTREE= yes
INSTALLATION_PREFIX= /
.include "../../mk/bsd.pkg.mk"
This allows us to remove all cases where PREFIX is explicitly set in
the package Makefile, e.g. Java VM packages, qmail, etc.
SETGIDGAME: specifies whether or not certain games are installed setgid
GAMEGRP: the group owning games if SETGIDGAME is set
GAMEOWN: the user owning games if SETFIDGAME is set
GAMEMODE: the mode to install games as
Use these to provide INSTALL_GAME (for example for PR pkg/25313), and
set them to meaningful values under NetBSD.
"yes"). So any packages that have old GNU configure script that
does not support --infodir option (while using INFO_FILES) can set
CONFIGURE_HAS_INFODIR=NO.
This was suggested by agc@ as a clearer definition.
I have used this successfully to install over 300 info files
using INFO_DIR=share/info.
Also add new variable called NO_CONFIGURE_INFODIR (as suggested
by Greg Woods) because some autoconf-style configure scripts
don't know --infodir. (The alternative is to use HAS_CONFIGURE
and add the needed CONFIGURE_ARGS.)
Please note that the info tool may not find custom INFO_DIR
unless it is configure to know it. (I will update gtexinfo
for this, but if using native info you are on your own
if you customize this.)
can include buildlink3.mk files. This change also causes work/.tools/bin
to appear after work/.buildlink/bin in the PATH, but we never relied on
this behaviour, so this side-effect should have no impact.
so that Interix can set the default mode to 0775. Then add "install_sh"
to CONFIGURE_ENV so it uses ${INSTALL}, not the package-supplied
install script (as is done for autoconf $INSTALL).
can't change at configure time. "mkdir_p" is now used by automake in place
of the traditional autoconf "INSTALL_DIR". Override mkdir_p in MAKE_FLAGS,
if GNU_CONFIGURE is set, with ${INSTALL_DATA_DIR}.
gnome1-dirs and gnome2-dirs):
- Introduce a global USE_DIRS variable, which takes pairs of names and
versions. For example, an xdg-1.1 value will request the use of the
xdg-dirs package, at least version 1.1. This variable must always be
appended to. If there are duplicates with different versions, the
one with the higher number will be picked up.
- Introduce the mk/dirs.mk file, which is automatically included by
bsd.pkg.mk when USE_DIRS is not empty. It parses the variable's value
and includes the required dirs.mk files, present in each -dirs package.
- For each -dirs package, add a dirs.mk file that defines a variable
holding the list of directories provided by it, adds a dependency on
that package, and modifies the PRINT_PLIST_AWK variable to output
comments for the directories handled by it.
- Drop some Makefile.common files that only make things difficult and
more confusing now (in favour of the new dirs.mk files). The only thing
to worry about is to keep version numbers consistent across xdg-* and
gnome*-* packages, but that will be easier to handle.
The main reason for this change is to be able to modify PRINT_PLIST_AWK in
a clean way, but I hope this will improve clarity too. Also, this simplifies
the addition of future -dirs packages (if needed) in a consistent way.
provide extra awk expressions that are used while generating the PLIST
with the print-PLIST target (before the final 'print' is done), so that
it is closer to reality. Ok'ed by wiz@ and hubertf@.
value of X11_TYPE here since it's defined in bsd.buildlink3.mk which is
included before this check. This fixes breakage for packages that set
USE_X11 due to USE_PKGSRC_XFREE86 not being defined before it's used.
been set to if it hadn't been overridden by PKG_SYSCONFDIR.<pkg>. This
can be used in /etc/mk.conf to re-override certain PKG_SYSCONFDIR.<pkg>
in /etc/mk.conf from various package Makefiles, e.g.
PKG_SYSCONFDIR.openssl= ${DFLT_PKG_SYSCONFDIR}
PKG_SYSCONFDIR.tcp_wrappers= ${DFLT_PKG_SYSCONFDIR}
installed before the normal dependency checks), on a system without
any packages installed, we can run into the problem where digest won't
install because it has already been installed as part of installing
a build dependency. This can happen if, e.g., PKGSRC_COMPILER is set
to "ccache gcc", and you try to build devel/gmake.
Change the way that the uptodate-digest target installs pkgtools/digest
by ensuring that pkgtools/digest is deinstalled just before installing
it.
libtool-base includes "Fix version_type settings for the non-NetBSD
platforms in the CXX and F77 cases." And "Pull in the fix for the
symlink vulnerability.")
Several packages have been changed to reflect the better libtool-base,
but old LIBTOOL_REQD allowed old 1.4.2 version. So new packages had
wrong library versioning like: libasprintf.so.0.0, libsvn_delta-1.so.0.0,
and libXrender.so.0.0.
Okayed by wiz@.
--recheck from re-executing the configure script by inserting "exit 0"
judiciously. This works with configure scripts generated by autoconf>=2.13
and fixes problems with running config.status on Solaris systems where
/bin/sh isn't POSIX enough.
Package Makefiles may now directly include compiler.mk.
* Don't include compiler.mk within bsd.prefs.mk any longer. It was only
included for the purposes of defining CC_VERSION. Packages that want
to test the value of CC_VERSION should now first include
"../../mk/compiler.mk". Any GCC_REQD statements in package Makefiles
should be set before compiler.mk is included.
* Simpllfy pkgsrc/mk/compiler/*.mk files as a result of not needing to
be included indirectly by bsd.prefs.mk. We remove the special handling
associated with detecting whether the file was included from within
bsd.prefs.mk. These files are now much more straightforward to write
and understand.
* G/C the BSD_PREFS_MK stack mechanism as the only users (compiler/*)
no longer need it.
* Ensure that directories are prepended to the PATH only from within
bsd.pkg.mk.
config.status. Instead, only block "config.status --recheck", which
re-executes the GNU configure script. This still allows config.status to
overwrite post-configure changes to Makefiles and config.h files, so those
changes should (properly) be applied to Makefile.in and config.h.in
instead.
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.