[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#999826: debian-policy: fix Build-Depends footnote



Hi Sean,

Quoting Sean Whitton (2021-11-19 23:13:46)
> Can you turn this into a patch against our git repo, please?

maybe I'm looking at the wrong git repo but I didn't find out how to file a
merge request. Thus attaching the git format-patch.

Thanks!

cheers, josch
>From dc186d400e47c9eed7dc94a2be4daa59b3fa2665 Mon Sep 17 00:00:00 2001
From: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
Date: Sat, 20 Nov 2021 22:50:49 +0100
Subject: [PATCH] fixup B-D alternatives footnote (closes: #999826)

---
 policy/ch-relationships.rst | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/policy/ch-relationships.rst b/policy/ch-relationships.rst
index 915d00d..357a612 100644
--- a/policy/ch-relationships.rst
+++ b/policy/ch-relationships.rst
@@ -669,11 +669,20 @@ against newer versions of their build dependencies.
 .. [#]
    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
+   those are only used for the backports suite on the Debian autobuilders.
+   On the other suites, after reducing any architecture-specific restrictions
+   for the build architecture in question, all but the first alternative are
+   discarded except if the alternative is the same package name as the first.
+   The latter exception is useful to specify version ranges like
+   ``foo (rel x) | foo (rel y)``. This is to reduce the risk of inconsistencies
+   between repeated rebuilds. For example if a source package build depends
+   on ``libcurl4-gnutls-dev | libcurl4-openssl-dev``, then during a transition
+   libcurl4-gnutls-dev might become uninstallable because apt only considers
+   the latest version of a package and then the source package would be wrongly
+   built with openssl instead of gnutls. Inconsistencies are not completely
+   avoided because virtual packages might still be provided by a different
+   real package and because alternatives are still preserved for binary package
+   dependencies. 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
-- 
2.33.0

Attachment: signature.asc
Description: signature


Reply to: