phase pkg_install-depends before bootstrap-depends that just tries to
install a new pkg_install if the current version is too old. Still
keep it as bootstrap dependency for the bulk build code.
For NetBSD, PKG_TOOLS_BIN has to be computed in shell code due to a make
bug.
OK: jlam@
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.
ago ...
XXX: I would enable /bin/ksh as bmake's default shell but it fails on
one of the bmake unit tests. Will need to figure out why ...
Maybe some day we can provide a posixly correct shell as part
of the bootstrap process.
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.
pkgsrc/emulator/compat* and pkgsrc/emulator/netbsd32_compat* packages
to provide the necessary shared libraries to run dynamically linked
NetBSD binaries from the days of yore.
* Add some additional compat* packages for completeness:
compat15, compat20, compat30
* Modify the compat* packages so that "compatNM" only provides files
that aren't in "NetBSD-N.(M+1)". For example, compat12 only provides
files that don't exist in NetBSD-1.3.x, compat13 only provides files
that don't exist in NetBSD-1.4.x, etc.
As a result, if you are running NetBSD-3.0/alpha and want to run a
1.3 dynamically linked binary, there is an automatic dependency
chain that causes the following packages to be installed:
compat13, compat14, compat15, compat16, compat20
There are some deviations from this dependency chain on platforms
that have changed executable formats, e.g. i386, m68, sparc, etc.
However, in general pkgsrc will require that you have the necessary
COMPAT_* options in your kernel to match the installed compat*
packages. This restriction is an artificial one imposed by pkgsrc,
but allows for a single set of distfiles to be used on all versions
of NetBSD.
* Provide compat* package support for every supported architecture
of NetBSD. Verily, it is now possible to run 1.2 binaries on
NetBSD-1.5.3/pc532 by installing the compat12 package from pkgsrc.
Rejoice, one and all!
* The netbsd32_compat* packages mirror the corresponding compat*
packages for use by sparc64 and x86_64 to allow running 32-bit
binaries with COMPAT_NETBSD32 kernel support. The "extras" packages
supply the additional shared libraries from the corresponding release
of NetBSD so that the set of files in /emul/netbsd32 will be complete.
* pkgsrc/emulators/compat_netbsd contains infrastructure files shared
by all of the compat* packages.
binary-only packages that require binary "emulation" on the native
operating system. Please see pkgsrc/mk/emulator/README for more
details.
* Teach the plist framework to automatically use any existing
PLIST.${EMUL_PLATFORM} as part of the default PLIST_SRC definition.
* Convert all of the binary-only packages in pkgsrc to use the
emulator framework. Most of them have been tested to install and
deinstall correctly. This involves the following cleanup actions:
* Remove use of custom PLIST code and use PLIST.${EMUL_PLATFORM}
more consistently.
* Simplify packages by using default INSTALL and DEINSTALL scripts
instead of custom INSTALL/DEINSTALL code.
* Remove "SUSE_COMPAT32" and "PKG_OPTIONS.suse" from pkgsrc.
Packages only need to state exactly which emulations they support,
and the framework handles any i386-on-x86_64 or sparc-on-sparc64
uses.
* Remove "USE_NATIVE_LINUX" from pkgsrc. The framework will
automatically detect when the package is installing on Linux.
Specific changes to packages include:
* Bump the PKGREVISIONs for all of the suse100* and suse91* packages
due to changes in the +INSTALL/+DEINSTALL scripts used in all
of the packages.
* Remove pkgsrc/emulators/suse_linux, which is unused by any
packages.
* cad/lc -- remove custom code to create the distinfo file for
all supported platforms; just use "emul-fetch" and "emul-distinfo"
instead.
* lang/Cg-compiler -- install the shared libraries under ${EMULDIR}
instead of ${PREFIX}/lib so that compiled programs will find
the shared libraries.
* mail/thunderbird-bin-nightly -- update to latest binary
distributions for supported platforms.
* multimedia/ns-flash -- update Linux version to 9.0.48 as the
older version is no longer available for interactive fetch.
* security/uvscan -- set LD_LIBRARY_PATH explicitly so that
it's not necessary to install library symlinks into
${EMULDIR}/usr/local/lib.
* www/firefox-bin-flash -- update Linux version to 9.0.48 as the
older version is no longer available for interactive fetch.
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).
allow IMAKE to be set by anything other than the tools framework.
Modify the IRIX files so that the native imake is listed as a built-in
tool in the case where X11_TYPE is "native". Also, move the include
of tools/default.mk a bit lower in bsd.prefs.mk so that tools.${OPSYS}.mk
files can use the value of X11_TYPE. This should properly set and
point IMAKE to the right binary on IRIX without destroying the
configuration for platforms where IMAKE was not explicitly set, i.e.
every non-IRIX platform.
- on Darwin, pkgsrc no longer tries to set user or group when installing
as unprivileged user, i.e. with UNPRIVILEGED set to yes.
- on IRIX (5 and 6) the system's xmkmf config files are no longer modified.
Instead copies (that take priority with pkgsrc's xmkmf) are used for that
purpose.
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".
This is the X11 tested and used by the pkgsrc developers on
DragonFly. And far as I know, this is the only X11 used on
DragonFly -- not saying that others are not used though.
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.
RCD_SCRIPTS_EXAMPLEDIR has been fixed to this value for a while,
and because it ought not to be emitted by the print-PLIST target.
(Individual packages can't expect to be able to completely remove
this directory on deinstall, as it often has other packages' rc.d
scripts in it.)