diff -Nru dpkg-1.21.1ubuntu2.2/debian/changelog dpkg-1.21.1ubuntu2.3/debian/changelog --- dpkg-1.21.1ubuntu2.2/debian/changelog 2023-04-01 13:43:42.000000000 +0000 +++ dpkg-1.21.1ubuntu2.3/debian/changelog 2024-02-23 14:53:39.000000000 +0000 @@ -1,3 +1,10 @@ +dpkg (1.21.1ubuntu2.3) jammy; urgency=medium + + [ Luca Boccassi ] + * Fix dpkg-buildpackage ignoring DEB_BUILD_PROFILES (LP: #2054741) + + -- Gianfranco Costamagna Fri, 23 Feb 2024 15:53:39 +0100 + dpkg (1.21.1ubuntu2.2) jammy; urgency=medium * Cherry-pick 940f86c37f9f from dpkg.git (LP: #1960582) diff -Nru dpkg-1.21.1ubuntu2.2/scripts/Dpkg/BuildProfiles.pm dpkg-1.21.1ubuntu2.3/scripts/Dpkg/BuildProfiles.pm --- dpkg-1.21.1ubuntu2.2/scripts/Dpkg/BuildProfiles.pm 2022-01-06 07:44:08.000000000 +0000 +++ dpkg-1.21.1ubuntu2.3/scripts/Dpkg/BuildProfiles.pm 2024-02-23 14:53:06.000000000 +0000 @@ -80,6 +80,11 @@ my (@profiles) = @_; $cache_profiles = 1; + # This is called from dpkg-buildpackage.pl unconditionally. If no profile + # was passed from the command line, check the environment variable. + if (!@profiles && Dpkg::Build::Env::has('DEB_BUILD_PROFILES')) { + @profiles = split ' ', Dpkg::Build::Env::get('DEB_BUILD_PROFILES'); + } @build_profiles = @profiles; run_vendor_hook('update-buildprofiles', \@build_profiles); Dpkg::Build::Env::set('DEB_BUILD_PROFILES', join ' ', @build_profiles); diff -Nru dpkg-1.21.1ubuntu2.2/scripts/t/Dpkg_BuildProfiles.t dpkg-1.21.1ubuntu2.3/scripts/t/Dpkg_BuildProfiles.t --- dpkg-1.21.1ubuntu2.2/scripts/t/Dpkg_BuildProfiles.t 2022-01-06 07:44:08.000000000 +0000 +++ dpkg-1.21.1ubuntu2.3/scripts/t/Dpkg_BuildProfiles.t 2024-02-23 14:53:06.000000000 +0000 @@ -16,7 +16,7 @@ use strict; use warnings; -use Test::More tests => 10; +use Test::More tests => 11; BEGIN { use_ok('Dpkg::BuildProfiles', qw(parse_build_profiles @@ -72,5 +72,16 @@ is_deeply([ get_build_profiles() ], [ qw(nocheck stage1) ], 'get active build profiles explicitly set'); +{ + local $ENV{DEB_BUILD_PROFILES} = 'cross nodoc profile.name'; + + # dpkg-buildpackage.pl calls set_build_profiles with an empty array by + # default (unless --build-profiles is used), ensure the env var is still + # parsed + set_build_profiles(qw()); + is_deeply([ get_build_profiles() ], [ qw(noudeb cross nodoc profile.name) ], + 'get active build profiles from environment'); +} + 1; File /tmp/tmp7rxurq8a/LbCbow6UBk/dpkg-1.21.1ubuntu2.2/tests/t-unpack-fifo/pkg-fifo/test-fifo is a fifo while file /tmp/tmp7rxurq8a/43xT7t0rtD/dpkg-1.21.1ubuntu2.3/tests/t-unpack-fifo/pkg-fifo/test-fifo is a fifo File /tmp/tmp7rxurq8a/LbCbow6UBk/dpkg-1.21.1ubuntu2.2/tests/t-unpack-hardlink/pkg-hardlink/test-fifo-link0 is a fifo while file /tmp/tmp7rxurq8a/43xT7t0rtD/dpkg-1.21.1ubuntu2.3/tests/t-unpack-hardlink/pkg-hardlink/test-fifo-link0 is a fifo File /tmp/tmp7rxurq8a/LbCbow6UBk/dpkg-1.21.1ubuntu2.2/tests/t-unpack-hardlink/pkg-hardlink/test-fifo-link1 is a fifo while file /tmp/tmp7rxurq8a/43xT7t0rtD/dpkg-1.21.1ubuntu2.3/tests/t-unpack-hardlink/pkg-hardlink/test-fifo-link1 is a fifo