Hi Sean,

Quoting Sean Whitton (2026-03-26 14:20:38)
> Thanks.  I think this means we need one more seconder of the combination of
> your patch plus these changes.  It might be helpful if you were to reroll
> your patch to include these changes.

yes, good idea. I took Helmut's last patch and change the things which I added
as a diff to the bottom of this mail to directly see the difference between
that version from Helmut and the new one. I attached the full final patch as
well and added you as another co-author.

Thanks!

cheers, josch

diff --git a/policy/ch-controlfields.rst b/policy/ch-controlfields.rst
index 738698c..508f6d3 100644
--- a/policy/ch-controlfields.rst
+++ b/policy/ch-controlfields.rst
@@ -1252,7 +1252,15 @@ This field occurs in the binary package sections of a 
source template
 control file. It expresses whether the binary package is being
 produced, given a set of enabled build profiles.  The condition uses
 the same `restriction formula syntax <s-restrictions>` from the
-``Build-Depends`` field.
+``Build-Depends`` field. In the following example, ``libglib2.0-tests``
+is only built if both ``noinsttest`` and ``nogir`` are not enabled:
+
+::
+
+    # Build if (!noinsttest) && (!nogir)
+    Package: libglib2.0-tests
+    Build-Profiles: <!noinsttest !nogir>
+
 
 If a binary package stanza in a source package template control file
 does not contain a ``Build-Profiles`` field, then it implicitly means
diff --git a/policy/ch-relationships.rst b/policy/ch-relationships.rst
index 89a8277..685d9df 100644
--- a/policy/ch-relationships.rst
+++ b/policy/ch-relationships.rst
@@ -76,6 +76,10 @@ build profile restriction formula in the field value. The 
non-empty sets
 of terms enclosed in either square or angle brackets must be separated
 by whitespace.
 
+A term can be prefixed with an optional exclamation mark and must
+consist only of lower case letters (``a-z``), digits (``0-9``), plus
+(``+``) and minus (``-``) signs, slashes (``/``) and periods (``.``).
+
 Architecture restriction lists and build profile restriction formulas
 are evaluated differently. Both can be evaluated to booleans, given a
 host architecture and a set of enabled build profiles. Their results
diff --git a/policy/ch-source.rst b/policy/ch-source.rst
index fed0468..f0286f0 100644
--- a/policy/ch-source.rst
+++ b/policy/ch-source.rst
@@ -629,8 +629,8 @@ order to make it work for your package.
 If the ``DEB_BUILD_PROFILES`` environment variable is defined during the
 build of a source package, it specifies which build profiles are
 enabled. Its value is a space-separated, unordered list of enabled build
-profile names. By default, no build profiles are enabled. The meaning of
-the following build profiles has been standardized:
+profile names. By default, no build profiles are enabled.
+The following build profiles are standard:
 
 ``nocheck``
     This profile extends the meaning of the ``nocheck`` tag in
@@ -640,7 +640,7 @@ the following build profiles has been standardized:
     during the build. Note that enabling the profile or the tag must not
     functionally change the emitted binary packages and also must not
     change the set of binary packages being produced. If tests happen to
-    be installed into a binary package, consider supporting the
+    be installed into a binary package, it is recommended to add the
     ``noinsttest`` build profile.
 
 ``noinsttest``
@@ -653,8 +653,8 @@ the following build profiles has been standardized:
     concurrently.  Therefore such dependencies tend to be conditional to
     ``<!nocheck> <!noinsttest>``.
 
-A larger list of commonly used build profiles can be found in the `Build
-Profile Spec
+Commonly used but non-standard build profiles can be found in
+the `Build Profile Spec
 <https://wiki.debian.org/BuildProfileSpec#Registered_profile_names>`_.
 
 The following makefile snippet is an example of how to enable python for

Attachment: 0001-document-build-profiles.patch
Description: application/mbox

Attachment: signature.asc
Description: signature

Reply via email to