files. These variables are currently usable if ${SETGIDGAME} == yes.
These variables should be used when describing ownership of files
and directories to the pkginstall framework, e.g.
SPECIAL_PERMS= bin/foogame ${GAMES_USER} ${GAMES_GROUP} 2555
+ Rename SETGID_GAME_PERMS to SETGID_GAMES_PERMS because the default
group name is "games".
+ Define SETGID_GAMES_PERMS in terms of GAMES_USER and GAMES_GROUP so
that these names are protected from the normal flow of unprivileged.mk.
This fixes the +INSTALL scripts in "user-destdir" packages to
correctly refer to the games:games instead of the user:group of the
user that built the packages.
usually the same on the supported platforms.
The reason for having duplicate code in these files is to make it easier
to port pkgsrc to a new platform: You just have to copy one of the
existing platform files and edit the values in it. With some values
factored out, you would have to look at one more file.
Pointed out by agc@.
platforms, mainly because it wouldn't have made sense to document the
variables in one of those files, but they need to be documented
somewhere.
Added the file defaults.mk, which now serves as the reference document
which provides useful default values and _explains_ the variables.
it for plurals support, but that is already handled correctly (FSVO
"correctly") by the pkgsrc/mk/tools/msgfmt.sh script.
Also remove _USE_GNU_GETTEXT definitions from pkgsrc/mk/platform/*.mk
files as that value has been unused by pkgsrc for quite some time
(going back several branches).
for manipulating PLISTs. This module is not used by default pending
more widespread testing -- currently the variable _USE_PLIST_MODULE
must be defined in /etc/mk.conf to enable its use.
The main features of the new PLIST module are:
(1) Splits out the PLIST-handling code from bsd.pkg.mk into a
separate "plist" module.
(2) Splits out giant, multi-line awk scripts stored in make
variables into separate awk scripts that may be joined
together to post-process PLISTs. Each of these awk scripts
consolidates the processing for one set of files, e.g.,
man pages, info pages, etc., and is more easily commented
than a make variable.
(3) Splits out the print-PLIST code from the regular PLIST code
since they have no common pieces (print-plist.mk vs.
plist.mk).
(4) Completely re-implements the shared-library handling to be
more efficient. Along the way, this also fixes a problem
for Mac OS X users where the PLISTs incorrectly contained
absolute paths.
(5) Completely re-implements the info-file handling so that we
can migrate from INFO_FILES definitions to just adding
info/foo.info entries in the static PLISTs.
(6) Adds commented-out support for automatically compressed or
decompressed info page entries based on the value of MANZ.
These changes will be activated after texinfo.mk has been
replaced by something that is built using the more modern
primitives now available in pkgsrc.
(7) Move the file compression logic into a separate script
"doc-compress" that compresses or decompresses files while
minding symlinks. This script is now called by bsd.pkg.mk
to do the "autmoatic man page handling". In the future,
it will also handle the "automatic info page handling" and
possible others.
In general, the idea is to move stuff out of the Makefiles and into
separate files where we don't need to worry about quoting rules
and where each file can have a separate history of commits. This
simplifies the makefile logic (especially in terms of readability)
and also simplifies maintenance of the code.
Fix major problem brought to the surface by buildlink3 on Interix. For C++
or F77 libraries only, the soname did not always make it into the final
binary, resulting in runtime link failures in some cases and runtime linking
with a missing major version in others.
This is unfortunately a flag day for Interix + pkgsrc. Identifying all the
PKGREVISIONs normally requiring a bump is a little too unwieldy. However,
existing binaries not experiencing the runtime link failure will continue
to run, but will be linking against the unversioned ".so" at runtime until
the binaries have been rebuilt.
While here, fix a couple wrong assumptions in the libtool config for
Interix. shlibvar_overrides_runpath should have been "no", and
hardcode_direct should have been "yes".
blocks can override it without running the commands at all.
Move Interix [LOWER_]OS_VERSION speedup hack into bsd.prefs.mk, since it
must happen early at runtime.
While here, speed up the OS_VERSION calculation slightly for OSF1.
some platforms, which includes all non-ELFs and many ELF-like platforms
(that still use a.out naming conventions).
Since a branch is coming, bump the version in a blanket rather than per
platform.
not on by default). Separate out the variable defintions that are
now made by the new tools framework. Some of the trickier platforms
(AIX, IRIX, Interix, OSF1) still need more work.
a mistake to include "GZIP" as an ${OPSYS}-specific variable as there
is nothing ${OPSYS}-specific there to tune. Define GZIP in
defaults/mk.conf instead, and remove the definition from each of the
existing platform/${OPSYS}.mk files.
because pkginstall encodes it into its scripts. sigh.
Hack around this. For bulk builds on Interix only, use gsort for "tflat";
use the system-supplied sort for the rest of the build.
Use gsort from coreutils instead of /bin/sort if coreutils is installed.
Install coreutils in BULK_PREREQ to get gsort; /bin/sort can't handle the
amazingly long lines produced by the dependency-tree printing script.
but can be buggy in some situations (like the bulk build environment).
If pkgsrc gawk happens to be installed, use that; also add lang/gawk to
BULK_PREREQ so it is always used in that case. If lang/gawk is not
installed, ${AWK} will default to /usr/contrib/bin/gawk as it did before.
possible, just for the sake of doing so, is not a good thing to do:
The platform files define _STRIPFLAG_* to determine whether to strip things.
But since this is included in bsd.prefs.mk, ".if ..." checks cannot take
things set in the Makefile into account. So convert INSTALL_UNSTRIPPED=YES
to a defined/undefined variable check in bsd.pkg.mk, and use the :D:U idiom
in the _STRIPFLAG_* variables.
This should fix PR pkg/28772 and PR pkg/29031.
the correct information to the +INSTALL and +DEINSTALL scripts to fix
problems with binary packages incorrectly locating the reference counts
database, e.g. /var/db.refcount.
Convert _OPSYS_MAX_CMDLEN to a plain _OPSYS_MAX_CMDLEN_CMD variable, which
is not evaluated by a shell until CONFIGURE_ENV is expanded (and only then
if USE_LIBTOOL+GNU_CONFIGURE are both set).