summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Packages.txt35
-rw-r--r--mk/bsd.pkg.defaults.mk10
-rw-r--r--mk/bsd.pkg.mk15
-rw-r--r--mk/buildlink2/bsd.buildlink2.mk12
-rw-r--r--mk/buildlink3/bsd.buildlink3.mk12
5 files changed, 78 insertions, 6 deletions
diff --git a/Packages.txt b/Packages.txt
index 8886733f3ba..cdcf608565e 100644
--- a/Packages.txt
+++ b/Packages.txt
@@ -1,4 +1,4 @@
-# $NetBSD: Packages.txt,v 1.320 2003/12/14 21:47:32 kristerw Exp $
+# $NetBSD: Packages.txt,v 1.321 2004/01/14 06:57:45 rh Exp $
###########################################################################
==========================
@@ -2053,6 +2053,34 @@ Wildcard dependencies should be used with care.
The -[0-9]* should be used instead of -* to avoid potentially
ambiguous matches such as tk-postgresql matching a tk-* DEPEND.
+Wildcards can also be used to specify that a package will only build against
+a certain minimum version of a pre-requisite:
+
+ DEPENDS+= tiff>=3.5.4:../../graphics/tiff
+
+This means that the package will build against version 3.5.4 of the tiff library
+or newer. Such a dependency may be warranted if, for example, the API of the
+library has changed with version 3.5.4 and a package would not compile against
+an earlier version of tiff.
+
+Please note that such dependencies should only be updated if a package requires
+a newer pre-requisite, but not to denote recommendations such as security
+updates or ABI changes that do not prevent a package from building correctly.
+Such recommendations can be expressed using RECOMENDED:
+
+ RECOMMENDED+= tiff>=3.6.1:../../graphics/tiff
+
+In addition to the above DEPENDS line, this denotes that while a package will
+build against tiff>=3.5.4, at least version 3.6.1 is recommended. RECOMMENDED
+entries will be turned into dependencies unless explicitly ignored (in which
+case a warning will be printed). Packages that are built with recommendations
+ignored may not be uploaded to ftp.netbsd.org by developers and should not be
+used across different systems that may have different versions of binary
+packages installed.
+
+For security fixes, please update the package vulnerabilities file as well as
+setting RECOMMENDED (see section 10.21 for more information).
+
(c) If your package needs some executable to be able to run correctly, this
is specified using the DEPENDS definition. The pkgsrc/print/lyx package needs
to be able to execute the latex binary from the teTeX package when it runs,
@@ -2286,7 +2314,10 @@ Note to package developers: When a vulnerability is found, this should be
noted in localsrc/security/advisories/pkg-vulnerabilities, and after the
commit of that file, it should be copied to both
/pub/NetBSD/packages/distfiles/pkg-vulnerabilities and vulnerabilities
-on ftp.netbsd.org by localsrc/security/advisories/Makefile.
+on ftp.netbsd.org by localsrc/security/advisories/Makefile. In addition, if
+a buildlink2.mk or buildlink3.mk file exists for an affected package, bumping
+PKGREVISION and creating a corresponding BUILDLINK_RECOMMENDED.<pkg> entry
+should be considered.
10.22 What's the proper way to create an account from a package?
diff --git a/mk/bsd.pkg.defaults.mk b/mk/bsd.pkg.defaults.mk
index fef1556b03a..5497809d5a0 100644
--- a/mk/bsd.pkg.defaults.mk
+++ b/mk/bsd.pkg.defaults.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.pkg.defaults.mk,v 1.203 2004/01/11 17:03:47 kim Exp $
+# $NetBSD: bsd.pkg.defaults.mk,v 1.204 2004/01/14 06:57:45 rh Exp $
#
# A file providing defaults for pkgsrc and the packages collection.
@@ -85,6 +85,14 @@ PKGSRC_SLEEPSECS?= 5
# Possible: defined, not defined
# Default: not defined
+IGNORE_RECOMMENDED?= no
+# ignore package prerequisite recommendations. If this is set to
+# "no", all entries in RECOMMENDED will be added to DEPENDS.
+# If set to "yes", a warning will be printed if recommendations
+# are possibly ignored.
+# Possible: yes, no
+# Default: no
+
#PKG_REGISTER_SHELLS= YES
# Automatically register shells in /etc/shells
# Possible: YES, NO
diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
index 99d5377b38d..32016454bc3 100644
--- a/mk/bsd.pkg.mk
+++ b/mk/bsd.pkg.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.pkg.mk,v 1.1344 2004/01/13 00:40:25 jlam Exp $
+# $NetBSD: bsd.pkg.mk,v 1.1345 2004/01/14 06:57:45 rh Exp $
#
# This file is in the public domain.
#
@@ -406,6 +406,14 @@ MAKE_ENV+= LIBTOOL="${PKGLIBTOOL} ${LIBTOOL_FLAGS}"
BUILD_DEPENDS+= gettext>=0.10.35nb1:../../devel/gettext
.endif
+.if defined(RECOMMENDED)
+. if !empty(IGNORE_RECOMMENDED:M[nN][oO])
+DEPENDS+= ${RECOMMENDED}
+. else
+BUILD_DEFS+= IGNORE_RECOMMENDED
+. endif
+.endif
+
EXTRACT_COOKIE= ${WRKDIR}/.extract_done
BUILDLINK_COOKIE= ${WRKDIR}/.buildlink_done
CONFIGURE_COOKIE= ${WRKDIR}/.configure_done
@@ -2480,6 +2488,11 @@ real-su-package: ${PLIST} ${DESCR}
@${ECHO_MSG} "${_PKGSRC_IN}> Warning: ${PKGNAME} may not be made available through FTP:"
@${ECHO_MSG} "${_PKGSRC_IN}> " ${NO_BIN_ON_FTP:Q}
. endif
+. if defined(RECOMMENDED) && !empty(IGNORE_RECOMMENDED:M[yY][eE][sS])
+ @${ECHO_MSG} "${_PKGSRC_IN}> Warning: dependency recommendations are being ignored!"
+ @${ECHO_MSG} "${_PKGSRC_IN}> ${PKGNAME} should not be uploaded nor"
+ @${ECHO_MSG} "${_PKGSRC_IN}> otherwise be used as a binary package!"
+. endif
.endif
# Some support rules for real-su-package
diff --git a/mk/buildlink2/bsd.buildlink2.mk b/mk/buildlink2/bsd.buildlink2.mk
index 167d5f78a13..55343b636b7 100644
--- a/mk/buildlink2/bsd.buildlink2.mk
+++ b/mk/buildlink2/bsd.buildlink2.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.buildlink2.mk,v 1.104 2003/12/19 19:22:28 veego Exp $
+# $NetBSD: bsd.buildlink2.mk,v 1.105 2004/01/14 06:57:45 rh Exp $
#
# An example package buildlink2.mk file:
#
@@ -6,6 +6,7 @@
# BUILDLINK_PACKAGES+= foo
# BUILDLINK_PKGBASE.foo= foo-lib
# BUILDLINK_DEPENDS.foo?= foo-lib>=1.0
+# BUILDLINK_RECOMMENDED.foo?= foo-lib>=1.0nb1
# BUILDLINK_PKGSRCDIR.foo?= ../../category/foo-lib
#
# EVAL_PREFIX+= BUILDLINK_PREFIX.foo=foo-lib
@@ -140,6 +141,7 @@ BUILDLINK_DEPMETHOD.${_pkg_}= full
. endif
. if !empty(BUILDLINK_DEPMETHOD.${_pkg_}:Mfull)
_BUILDLINK_DEPMETHOD.${_pkg_}= DEPENDS
+_BUILDLINK_RECMETHOD.${_pkg_}= RECOMMENDED
. elif !empty(BUILDLINK_DEPMETHOD.${_pkg_}:Mbuild)
_BUILDLINK_DEPMETHOD.${_pkg_}= BUILD_DEPENDS
. endif
@@ -150,6 +152,14 @@ ${_BUILDLINK_DEPMETHOD.${_pkg_}}+= \
${_depends_}:${BUILDLINK_PKGSRCDIR.${_pkg_}}
. endfor
. endif
+. if defined(BUILDLINK_RECOMMENDED.${_pkg_}) && \
+ defined(_BUILDLINK_RECMETHOD.${_pkg_}) && \
+ defined(BUILDLINK_PKGSRCDIR.${_pkg_})
+. for _rec_ in ${BUILDLINK_RECOMMENDED.${_pkg_}}
+${_BUILDLINK_RECMETHOD.${_pkg_}}+= \
+ ${_rec_}:${BUILDLINK_PKGSRCDIR.${_pkg_}}
+. endfor
+. endif
#
# BUILDLINK_PLIST_CMD.<pkg> is a sequence of shell commands that extracts
# a list of all of the files installed by <pkg>. This list is relative to
diff --git a/mk/buildlink3/bsd.buildlink3.mk b/mk/buildlink3/bsd.buildlink3.mk
index 28a3d30d84c..d484dfb244f 100644
--- a/mk/buildlink3/bsd.buildlink3.mk
+++ b/mk/buildlink3/bsd.buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.buildlink3.mk,v 1.48 2004/01/13 07:52:37 jlam Exp $
+# $NetBSD: bsd.buildlink3.mk,v 1.49 2004/01/14 06:57:46 rh Exp $
#
# An example package buildlink3.mk file:
#
@@ -12,6 +12,7 @@
#
# .if !empty(FOO_BUILDLINK3_MK:M+)
# BUILDLINK_DEPENDS.foo?= foo-lib>=1.0
+# BUILDLINK_RECOMMENDED.foo?= foo-lib>=1.0nb1
# BUILDLINK_PKGSRCDIR.foo?= ../../category/foo-lib
# BUILDLINK_PACKAGES+= foo
#
@@ -110,6 +111,7 @@ BUILDLINK_DEPMETHOD.${_pkg_}= full
. endif
. if !empty(BUILDLINK_DEPMETHOD.${_pkg_}:Mfull)
_BLNK_DEPMETHOD.${_pkg_}= DEPENDS
+_BLNK_RECMETHOD.${_pkg_}= RECOMMENDED
. elif !empty(BUILDLINK_DEPMETHOD.${_pkg_}:Mbuild)
_BLNK_DEPMETHOD.${_pkg_}= BUILD_DEPENDS
. endif
@@ -120,6 +122,14 @@ ${_BLNK_DEPMETHOD.${_pkg_}}+= \
${_depends_}:${BUILDLINK_PKGSRCDIR.${_pkg_}}
. endfor
. endif
+. if defined(BUILDLINK_RECOMMENDED.${_pkg_}) && \
+ defined(_BLNK_RECMETHOD.${_pkg_}) && \
+ defined(BUILDLINK_PKGSRCDIR.${_pkg_})
+. for _rec_ in ${BUILDLINK_RECOMMENDED.${_pkg_}}
+${_BLNK_RECMETHOD.${_pkg_}}+= \
+ ${_rec_}:${BUILDLINK_PKGSRCDIR.${_pkg_}}
+. endfor
+. endif
.endfor
# Generate default values for: