[Bug 2054741] Re: dpkg-buildpackage ignores DEB_BUILD_PROFILES

Andreas Hasenack 2054741 at bugs.launchpad.net
Thu Mar 7 13:39:04 UTC 2024


So I launched a jammy container, grabbed the source of base-files (a
quick build package), and applied this change:

--- a/debian/rules
+++ b/debian/rules
@@ -12,6 +12,7 @@ VENDORFILE = ubuntu
 DESTDIR = debian/base-files
 
 %:
+       echo $$DEB_BUILD_PROFILES
        dh $@
 
 locale-check:

With dpkg 1.21.1ubuntu2.2 from jammy-updates, I did two builds:

dpkg-buildpackage -uc -us

DEB_BUILD_PROFILES=foo dpkg-buildpackage -uc -us

In both, I saw this output, as expected:
 fakeroot debian/rules clean
echo $DEB_BUILD_PROFILES
noudeb
...
 debian/rules build
echo $DEB_BUILD_PROFILES
noudeb
...
 fakeroot debian/rules binary
echo $DEB_BUILD_PROFILES
noudeb


I then installed dpkg 1.21.1ubuntu2.3 from jammy-updates, repeated the builds, but did NOT see DEB_BUILD_PROFILES set to foo:
$ apt-cache policy dpkg
dpkg:
  Installed: 1.21.1ubuntu2.3
  Candidate: 1.21.1ubuntu2.3
  Version table:
 *** 1.21.1ubuntu2.3 500
        500 http://br.archive.ubuntu.com/ubuntu jammy-proposed/main amd64 Packages
        100 /var/lib/dpkg/status


$ DEB_BUILD_PROFILES=foo dpkg-buildpackage -uc -us 2>&1 | grep -A 1 DEB_BUILD_PROFILES
echo $DEB_BUILD_PROFILES
noudeb
--
echo $DEB_BUILD_PROFILES
noudeb
--
echo $DEB_BUILD_PROFILES
noudeb


Could someone please clarify if I did something wrong? In the meantime, this is verification-failed for jammy.

** Tags removed: verification-done-jammy
** Tags added: verification-failed-jammy

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to dpkg in Ubuntu.
https://bugs.launchpad.net/bugs/2054741

Title:
  dpkg-buildpackage ignores DEB_BUILD_PROFILES

Status in dpkg package in Ubuntu:
  Fix Released
Status in dpkg source package in Jammy:
  Fix Committed
Status in dpkg source package in Mantic:
  Fix Committed
Status in dpkg source package in Noble:
  Fix Released

Bug description:
  [Impact]

  DEB_BUILD_PROFILES= can be used in Debian to specify a build profile
  to use with dpkg-buildpackage. We want to use it in the systemd
  project to build the upstream packages for the Ubuntu autopkgtest
  cloud CI on Github. But in the Ubuntu's fork of dpkg,
  DEB_BUILD_PROFILES's value is ignored and unconditionally swapped with
  'noudeb'. This makes it impossible to use package-specific profiles,
  and it's a regression w.r.t Debian.

  [Fix]

  Backport patch from Noble that fixes the issue: https://code.launchpad.net/~bluca/ubuntu/+source/dpkg/+git/dpkg/+merge/461136
  and takes into account if the environment variable is set when reading the profile

  [Test]

  To reproduce it, simply print the content of DEB_BUILD_PROFILES in
  d/rules in any package and build with DEB_BUILD_PROFILES=foo dpkg-
  buildpackage. Before the fix, whatever is passed via the env var is
  ignored. After the fix, it will be respected.

  [Regression Potential]

  dpkg-buildpackage is used to build all packages, so in case of
  unforeseen issues other packages could potentially fail to build. A
  unit test exercising this change is included in the patch to minimize
  potential for regressions.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/2054741/+subscriptions




More information about the foundations-bugs mailing list