show-downlevel target) is a shell glob pattern, not a regular expression,
so wildcards are '*', not '.*'. Due to the format of package names, the
regular expression will match in most cases (a single digit major version
number), but that's no excuse.
the fix from The Wiz in pkg PR 8597. This will still produce erroneous
results for the foo-current vs. foo package discrepancy, but that's left
as an exercise for a later day.
if and only if there are no patches and patch-sum already exists.
This is necessary to meet the original purpose of that target, which
is to "catch" users who happen to have old patches lying around,
for whatever reason. Also, don't update patch-sum if it wouldn't change.
@exec ln -fs dlopen.3.gz %D/emul/linux/usr/man/man3/dlclose.3.gz
into the list of manpages to decompress (for automatic manpage compression
handling.
Bug hit in the emulators/suse_base package, hashed out by tron.
Quick guide for compiling packages:
- set KERBEROS=4 or KERBEROS=5 in /etc/mk.conf
Quick guide for configuring Kerberos support in a package Makefile:
- test for KERBEROS value and enable the appropriate version with
CONFIGURE_ARGS or other means and set USE_KERBEROS=yes
- make sure to disable Kerberos support otherwise (especially if
using configure, which might automatically detect it)
- BUILD_DEFS and RESTRICTED are set automatically in bsd.pkg.mk
when USE_KERBEROS=yes is set
and will substitute ${VAR} with the value of VALUE in the PLIST.
This implementation was taken from FreeBSD.
Default PLIST_SUB:
OPSYS=${OPSYS} OS_VERSION=${OS_VERSION}
MACHINE_ARCH=${MACHINE_ARCH} MACHINE_GNU_ARCH=${MACHINE_GNU_ARCH}
MACHINE_GNU_PLATFORM=${MACHINE_GNU_PLATFORM}
LOWER_VENDOR=${LOWER_VENDOR} LOWER_OPSYS=${LOWER_OPSYS}
PKGNAME=${PKGNAME}
way we can finally use pattern dependences in the package sources without
breaking "pkg_add" - "pkg_add" will attempt to install the version
available at build time.
denote that the package uses libXaw.
Introduce an XAW_TYPE definition, which is defined in /etc/mk.conf by
the user, to denote the type of libXaw to use. Possible values are:
standard, 3d and xpm.
Define USE_XAW in relevant Makefiles.
Set default XAW_TYPE in Makefiles which previously did a DEPENDS+= Xaw3d...
This means that package builds should not fail because of conflicting
Xaw packages being installed on machines.
(taken from the patch-sum file), plus any local patches, in the
BuildVersion file (which can be viewed with the -b option to
pkg_info(1)), rather than simply recording the contents of any patches
directory.
command was split into two specific commands: ${RM} -f, then ${LN} -s, for
Solaris ln(1) behaviour, and, as pointed out by Julian Coleman, this can
have an unfortunate side-effect on read-only filesystems.
yesterday.
#DIST_PATH= /cdrom/0/distfiles:${HOME}/distfiles
(DIST_PATH allows multiple directories for distfiles to be defined,
although distfiles will still be downloaded into DISTDIR. For
example, this allows a CD to be used as a basic repository for
distfiles, with additional distfiles to be found in other directories,
and, if the distfile is not found in any of these, it will be
downloaded into DISTDIR. A symbolic link is created in DISTDIR,
pointing to the local distfile.)
(a) if the patch file does not exist in the patch-sum file, then
print a warning to the user, and ignore the patch file. In particular,
do not exit with an error.
(b) if the patch file's calculated checksum does not match the one
recorded in the patch-sum file, print a warning to the user, and try the
other patch files. Once all patch files have been attempted, exit with
an error.
Also, don't bother to check for patch-local-* files inside the checksum
logic - they're already ignored at the head of the loop.
to return some "please see the new location"-pages instead of the
requested archive, which our ftp(1) doesn't take as an error.
Now, add a check here to see if ftp(1) actually got the requested file
or something else.
Detected by Reinoud Zandijk <zandijk@cs.utwente.nl>, talked over with
Frederick Bruckman <fb@enteract.com>.
a file called files/patch-sum. This has the benefit of only
attempting to patch packages with official patches. This should mean
that you can untar a pkgsrc.tar.gz over a previous tree, and still
have it do the right thing, ignoring old patch files.
Patches which have an entry in the files/patch-sum file will be
applied, and then any local patches. If there are local patches to a
package, these should go in patch files called patches/patch-local-*
(these files are ignored when calculating the files/patch-sum file,
and also when checking the patches/patch-* files).
The calculation of the patch checksum ignores any NetBSD RCS Id in the
patch-* files. This removes a nasty ordering dependency for developers
making patches to packages.
Patch file checksums will only be checked if the files/patch-sum file
exists.
Add a target "makepatchsum", analogous to "makesum", which makes a new
files/patch-sum file.
but calculated every time bsd.prefs.mk is read. Correct the
situation, and only calculate these when they are needed.
Also save a few more cycles by hardcoding the LOWER_OPSYS values for
known operating systems, rather than using expensive shell echo and tr
commands every time bsd.prefs.mk is read.
...
===> package security/sudo
sudo package: sudo-1.5.7p4 installed, pkgsrc version sudo-1.5.9p1
===> package security/tripwire
===> category shells
...
for installed packages whose version does not match that in pkgsrc. No
output is produced if the package is not installed. This allows an easy
overview of the packages installed on a machine which need to be upgraded.
Also make minor modifications to the SUBDIRUSE target for Solaris.
sudo package: sudo-1.5.7p4 installed, pkgsrc version sudo-1.5.9p1
for installed packages whose version does not match that in pkgsrc. No
output is produced if the package is not installed. This allows an easy
overview of the packages installed on a machine which need to be upgraded.
pages that are installed will be gzip-compressed, if MANZ is set, or
not if MANZ is not set. If the package uses bsd-style .mk files, the
variable MANCOMPRESSED_IF_MANZ should be set to a value of "yes" in
the package Makefile. This replaces the previous method of specific
inclusion of bsd.prefs.mk, followed by a check for MANZ and
conditional assignment of MANCOMPRESSED.
Add appropriate documentation, and change all necessary ocurrences in
package Makefiles.
(including any subdir) for a package. If ${IGNORE} is set, for any reason,
do not print anything. The output is relative to ${DISTDIR}.
This target can be used to identify out of date distfiles and patchfiles
in ${DISTDIR}, in conjunction with suitable filters.
use = to set them, not ?=.
- _DEPENDS_USE doesn't actually do any macro expansion, so save some
processing time by executing it exactly once (remove the .USE operator).
- Merge the IGNORE targets. Add an IGNORE target for depends and
check-depends (see bottom).
- Don't check for installation of a package in ${DEPENDS} when doing
a "make depends". Instead, let the return code of make fall through
(using && instead of ; in the last clause of each depend recursion block).
- Provide a variable IGNORE_FAIL: when set, causes the ignore message
to be printed (regardless of IGNORE_SILENT or ECHO_MSG setting) and the
build to fail with ${FALSE}. Used with the next addition:
- Add a new target, "check-depends", which is called as part of "real-fetch".
This validates whether the dependencies of a pkg to be built are installed,
and if not, whether those dependencies will prospectively build (will
not set IGNORE directly or indirectly through the various disable options).
Recurses to "depends" with a DEPENDS_TARGET of "check-depends".
...And now, it is no longer necessary to mark dependent pkgs as unusable
when their dependencies are unusable thanks to an incorrect LICENSE,
_FOR_PLATFORM setting, and so forth. The check-depends step will validate
everything before fetching a single file.
- Define OS_VERSION in bsd.prefs.mk (...if not already defined). Previously
was only set in a conditional block in bsd.pkg.mk.
- Define new values, MACHINE_PLATFORM and MACHINE_GNU_PLATFORM, which
default to ${OPSYS}-${OS_VERSION}-${MACHINE_ARCH} and
${LOWER_OPSYS}-${LOWER_VENDOR}-${LOWER_ARCH} respectively.
(Probably should nuke LOWER_ARCH and rename LOWER_VENDOR to something
like MACHINE_GNU_VENDOR.)
- Use ${MACHINE_GNU_PLATFORM} as the argument to `--host' in GNU_CONFIGURE
packages.
- Allow for ONLY_FOR_PLATFORM and NOT_FOR_PLATFORM, lists of patterns
in csh(1) glob style which are matched against MACHINE_PLATFORM above
and take the place of {ONLY,NOT}_FOR_{ARCHS,OPSYS}. (For now, until
all pkgs are converted, provide backwards compatibility.) *Both* may
be defined, in which case NOT_FOR_PLATFORM takes precedence.
- Also do some significant aesthetic cleanup, based on the idea
`define platform-specific overrides first, then define a generic case
with the ?= operator'. Lots more of this to do yet.
protect bsd.prefs.mk. Now there's no multiple inclusion of mk.conf,
clobbering variables modified between bsd.prefs.mk and bsd.pkg.mk, when
set with VARNAME=value.
- Let bsd.own.mk include mk.conf/MAKECONF; we don't need to do that
manually.
- Don't define BSD_PKG_MK or OPSYS in bsd.pkg.mk, as bsd.prefs.mk does
precisely that just a couple lines below.
- remove the ${MACHINE_ARCH} and ${OPSYS} specializations for Makefile,
files, pkg, scripts, patches
- remove the functionality of ${MASTER_SITE_FREEBSD} (if someone *really*
wants this type of function, which should be discouraged, s/he may use:
MASTER_SITE_OVERRIDE=${MASTER_SITE_BACKUP})
PACKAGES=${PKGSRCDIR}/packages/${OS_VERSION}/${MACHINE_ARCH} _without_
having to ensure each ${OS_VERSION}/${MACHINE_ARCH} is manually created
beforehand.
use of krb4 _or_ a compatible subsystem. (MAKE_ was only used by this
option; USE_ is used by many.)
Also set RESTRICTED= in all relevant pkgs when USE_KERBEROS4 is enabled.