[dpkg] 07/13: spec/R³: Rename DPKG_GAIN_ROOT_CMD to DEB_GAIN_ROOT_CMD

Mattia Rizzolo mattia at debian.org
Mon Jan 22 17:11:51 UTC 2018


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

mattia pushed a commit to branch pu/reproducible_builds
in repository dpkg.

commit e7fec820d93dd5108790f126caadb7db7b174a47
Author: Guillem Jover <guillem at debian.org>
Date:   Wed Jan 3 01:54:51 2018 +0100

    spec/R³: Rename DPKG_GAIN_ROOT_CMD to DEB_GAIN_ROOT_CMD
    
    This variable should not be dpkg specific, as it is supposed to be set
    by any builder driving the package build, and not just dpkg itself.
    
    Introduce ephemereal backwards compatibility by mapping the old name to
    the new one, even thught there are no known users.
    
    (cherry picked from commit 28fee8b445cd94bf7efd76f6c3fd0c62bdf94b6d)
---
 debian/changelog             |  4 ++++
 doc/rootless-builds.txt      | 14 +++++++++-----
 man/dpkg-buildpackage.man    |  2 +-
 scripts/dpkg-buildpackage.pl |  4 +++-
 4 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 69c1605..7db7e64 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,10 @@ dpkg (1.19.0.5) UNRELEASED; urgency=medium
   * Fix directory traversal with dpkg-deb --raw-extract, by guaranteeing
     that the DEBIAN pathname does not exist. Closes: #879982
     Reported by Jakub Wilk <jwilk at jwilk.net>.
+  * Rename DPKG_GAIN_ROOT_CMD to DEB_GAIN_ROOT_CMD in the R³ support, as
+    the variable is expected to be set by any builder, not just dpkg. And
+    introduce ephemereal backwards compatibility even though there are no
+    known users.
   * Architecture support:
     - Add support for riscv64 CPU. Closes: #822914
       Thanks to Manuel A. Fernandez Montecelo <mafm at debian.org>
diff --git a/doc/rootless-builds.txt b/doc/rootless-builds.txt
index 98e3877..29b034a 100644
--- a/doc/rootless-builds.txt
+++ b/doc/rootless-builds.txt
@@ -93,21 +93,25 @@ Gain Root API
 -------------
 
 The builder will provide a command to promote a given command to (fake)root
-by exposing it in the environment variable "DPKG_GAIN_ROOT_CMD". Tools that
+by exposing it in the environment variable "DEB_GAIN_ROOT_CMD". Tools that
 need this promotion will then use it like the following:
 
-    $DPKG_GAIN_ROOT_CMD cmd-that-needs-root ...
+    $DEB_GAIN_ROOT_CMD cmd-that-needs-root ...
 
 This command is subject to the same requirements as the "gain-root-command"
 that dpkg-buildpackage accepts via its "-r/--root-command" option, which
 means that it can contain space-separated parameters. If dpkg-buildpackage is
 called with "-r/--root-command", then dpkg-buildpackage shall use that value
-as the value for DPKG_GAIN_ROOT_CMD.
+as the value for "DEB_GAIN_ROOT_CMD".
 
 The variable SHOULD only be provided when there is a need for it. Notably
 when "Rules-Requires-Root" is either "no" or "binary-targets" the variable
 SHOULD NOT be defined.
 
+(The "DEB_GAIN_ROOT_CMD" variable used to be named "DPKG_GAIN_ROOT_CMD"
+starting with dpkg 1.19.0 and before dpkg 1.19.1 when this specification
+got released as stable. The old name MUST not be used.)
+
 Common cases
 ------------
 
@@ -128,7 +132,7 @@ dpkg-deb --build must either default to resetting all owner/group values to
 0:0 when not run under (fake)root OR provide an interface so dh_builddeb can
 provide the owner/group value to dpkg-deb --build.
 
-dpkg-buildpackage must export DPKG_GAIN_ROOT_CMD (for starters, doing this
+dpkg-buildpackage must export DEB_GAIN_ROOT_CMD (for starters, doing this
 unconditionally would be fine).
 
 
@@ -143,7 +147,7 @@ When the field is present:
  * dh_testroot will be a no-op when Rules-Requires-Root is set to "no".
 
  * Otherwise, dh_testroot will either verify that it is run under (fake)root
-   (as usual) OR assert that DPKG_GAIN_ROOT_CMD is defined.
+   (as usual) OR assert that DEB_GAIN_ROOT_CMD is defined.
 
  * debhelper build systems will be patched to check for the
    "debhelper/upstream-make-install" keyword and use the "Gain Root API"
diff --git a/man/dpkg-buildpackage.man b/man/dpkg-buildpackage.man
index bf9c6ac..cfce8a8 100644
--- a/man/dpkg-buildpackage.man
+++ b/man/dpkg-buildpackage.man
@@ -514,7 +514,7 @@ standalone should be supported.
 parameters forwarded. Any variable that is output by its \fB\-s\fP
 option is integrated in the build environment.
 .TP
-.B DPKG_GAIN_ROOT_CMD
+.B DEB_GAIN_ROOT_CMD
 This variable is set to \fIgain-root-command\fP when the field
 \fBRules\-Requires\-Root\fP is set to a value different to \fBno\fP and
 \fBbinary-targets\fP.
diff --git a/scripts/dpkg-buildpackage.pl b/scripts/dpkg-buildpackage.pl
index 290b7c8..1127298 100755
--- a/scripts/dpkg-buildpackage.pl
+++ b/scripts/dpkg-buildpackage.pl
@@ -730,7 +730,9 @@ sub parse_rules_requires_root {
               'Rules-Requires-Root');
     } elsif ($keywords_impl) {
         # Set only on <implementations-keywords>.
-        $ENV{DPKG_GAIN_ROOT_CMD} = join ' ', @rootcommand;
+        $ENV{DEB_GAIN_ROOT_CMD} = join ' ', @rootcommand;
+        # XXX: For ephemeral backwards compatibility.
+        $ENV{DPKG_GAIN_ROOT_CMD} = $ENV{DEB_GAIN_ROOT_CMD};
     }
 
     return %rrr;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/dpkg.git



More information about the Reproducible-commits mailing list