This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch main
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=16c412439c5eac5f32930946df9006dfc13efc02

commit 16c412439c5eac5f32930946df9006dfc13efc02
Author: Guillem Jover <[email protected]>
AuthorDate: Wed Mar 23 17:56:57 2022 +0100

    Dpkg::Control::Fields: Add Static-Built-Using field support
    
    This field mimics the previous Built-Using field semantics, but is
    specifically intended for shadow dependencies stemming from static
    builds.
    
    In Debian, the Rust and Go teams agreed to use this language agnostic
    field, instead of one for each of the languages. This means it can be
    easily supported by dpkg, and can be used by other languages and
    run-times.
---
 man/deb-control.pod                | 12 ++++++++++++
 man/deb-src-control.pod            |  2 ++
 scripts/Dpkg/Control/FieldsCore.pm | 13 ++++++++++++-
 scripts/t/Dpkg_Control_Fields.t    |  6 +++++-
 4 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/man/deb-control.pod b/man/deb-control.pod
index 08649716d..186178fd4 100644
--- a/man/deb-control.pod
+++ b/man/deb-control.pod
@@ -388,6 +388,18 @@ Note that the archive maintenance software is likely to 
refuse to accept an
 upload which declares a B<Built-Using> relationship which cannot be satisfied
 within the archive.
 
+=item B<Static-Built-Using:> I<package-list>
+
+This dependency field lists extra source packages that were used during the
+build of this binary package, for static building purposes.
+This is useful to track whether this package might need to be rebuilt when
+source packages listed here have been updated, for example due to security
+updates.
+This field must be a comma-separated list of source package names with strict
+‘B<=>’ version relationships enclosed within parenthesis.
+
+Supported since dpkg 1.21.3.
+
 =item B<Built-For-Profiles:> I<profile-list> (obsolete)
 
 This field used to specify a whitespace separated list of build profiles that
diff --git a/man/deb-src-control.pod b/man/deb-src-control.pod
index 996037ba4..18b1ce31b 100644
--- a/man/deb-src-control.pod
+++ b/man/deb-src-control.pod
@@ -409,6 +409,8 @@ package.
 
 =item B<Built-Using:> I<package-list>
 
+=item B<Static-Built-Using:> I<package-list>
+
 These fields declare relationships between packages. They are discussed in
 the
 B<deb-control>(5)
diff --git a/scripts/Dpkg/Control/FieldsCore.pm 
b/scripts/Dpkg/Control/FieldsCore.pm
index 1550ee364..eaa7615cc 100644
--- a/scripts/Dpkg/Control/FieldsCore.pm
+++ b/scripts/Dpkg/Control/FieldsCore.pm
@@ -340,7 +340,7 @@ our %FIELDS = (
         allowed => CTRL_FILE_BUILDINFO,
         separator => FIELD_SEP_COMMA,
         dependency => 'union',
-        dep_order => 11,
+        dep_order => 12,
     },
     'installed-size' => {
         name => 'Installed-Size',
@@ -481,6 +481,13 @@ our %FIELDS = (
         name => 'Standards-Version',
         allowed => ALL_SRC,
     },
+    'static-built-using' => {
+        name => 'Static-Built-Using',
+        allowed => ALL_PKG,
+        separator => FIELD_SEP_COMMA,
+        dependency => 'union',
+        dep_order => 11,
+    },
     'status' => {
         name => 'Status',
         allowed => CTRL_FILE_STATUS,
@@ -650,6 +657,7 @@ my @bin_dep_fields = qw(
     replaces
     provides
     built-using
+    static-built-using
 );
 
 my @src_test_fields = qw(
@@ -748,6 +756,7 @@ our %FIELD_ORDER = (
             source
             version
             built-using
+            static-built-using
             kernel-version
             built-for-profiles
             auto-built-package
@@ -808,6 +817,7 @@ our %FIELD_ORDER = (
             source
             version
             built-using
+            static-built-using
             kernel-version
             built-for-profiles
             auto-built-package
@@ -988,6 +998,7 @@ our %FIELD_ORDER = (
             build-essential
             built-for-profiles
             built-using
+            static-built-using
             homepage
             installer-menu-item
             kernel-version
diff --git a/scripts/t/Dpkg_Control_Fields.t b/scripts/t/Dpkg_Control_Fields.t
index 49036012b..cc7e838c0 100644
--- a/scripts/t/Dpkg_Control_Fields.t
+++ b/scripts/t/Dpkg_Control_Fields.t
@@ -20,7 +20,7 @@ use Test::More;
 use Test::Dpkg qw(:paths);
 
 BEGIN {
-    plan tests => 2581;
+    plan tests => 2603;
 
     use_ok('Dpkg::Control::Types');
     use_ok('Dpkg::Control::FieldsCore');
@@ -50,6 +50,7 @@ my @bin_dep_union_fields = qw(
     Replaces
     Provides
     Built-Using
+    Static-Built-Using
 );
 my @bin_dep_fields = (
     @bin_dep_normal_fields,
@@ -182,6 +183,7 @@ my %fields = (
                 Source
                 Version
                 Built-Using
+                Static-Built-Using
                 Kernel-Version
                 Built-For-Profiles
                 Auto-Built-Package
@@ -245,6 +247,7 @@ my %fields = (
                 Source
                 Version
                 Built-Using
+                Static-Built-Using
                 Kernel-Version
                 Built-For-Profiles
                 Auto-Built-Package
@@ -456,6 +459,7 @@ my %fields = (
                 Build-Essential
                 Built-For-Profiles
                 Built-Using
+                Static-Built-Using
                 Homepage
                 Installer-Menu-Item
                 Kernel-Version

-- 
Dpkg.Org's dpkg

Reply via email to