From 4f266f7c7d3afe3e5aa57ff1e232275577f6cb57 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 30 Nov 2017 14:44:45 -0700 Subject: [PATCH] add a footnote documenting buildd handling of alternative deps --- debian/changelog | 3 +++ policy/ch-relationships.rst | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 1ec2cec..c91a338 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,6 +24,9 @@ debian-policy (4.1.2.0) UNRELEASED; urgency=medium * Drop workarounds in d/rules for the (reopened) dh_sphinxdoc bug #872863. Thanks to Dmitry Shachnev for fixing the bug. - Tighten build-dep on sphinx-common. + * Add a footnote documenting limitations on build-dependency + alternatives imposed by Debian's autobuilders (Closes: #614807). + Thanks to Sean Finney for the patch, and Simon McVittie for reviewing. -- Sean Whitton Wed, 04 Oct 2017 10:17:36 -0700 diff --git a/policy/ch-relationships.rst b/policy/ch-relationships.rst index 3a73f7b..223e16c 100644 --- a/policy/ch-relationships.rst +++ b/policy/ch-relationships.rst @@ -15,7 +15,7 @@ control fields of the package, which declare dependencies on other packages, the package names listed may also include lists of alternative package names, separated by vertical bar (pipe) symbols ``|``. In such a case, that part of the dependency can be satisfied by any one of the -alternative packages. +alternative packages. [#]_ All of the fields except for ``Provides`` may restrict their applicability to particular versions of each named package. This is done @@ -626,6 +626,19 @@ field in its control file: Built-Using: grub2 (= 1.99-9), loadlin (= 1.6e-1) .. [#] + While ``Build-Depends``, ``Build-Depends-Indep`` and + ``Build-Depends-Arch`` permit the use of alternative dependencies, + these are not normally used by the Debian autobuilders. To avoid + inconsistency between repeated builds of a package, the + autobuilders will default to selecting the first alternative, after + reducing any architecture-specific restrictions for the build + architecture in question. While this may limit the usefulness of + alternatives in a single release, they can still be used to provide + flexibility in building the same package across multiple + distributions or releases, where a particular dependency is met by + differently named packages. + +.. [#] The relations ``<`` and ``>`` were previously allowed, but they were confusingly defined to mean earlier/later or equal rather than strictly earlier/later. ``dpkg`` still supports them with a warning, -- 2.11.4.GIT