[dpkg] 178/192: Dpkg::Deps: Do not unnecessarily require setting the host_arch

Ximin Luo infinity0 at debian.org
Tue Oct 17 11:04:16 UTC 2017


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

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

commit e23943051599ff21e6ca955ac8e5ead4cda1891c
Author: Guillem Jover <guillem at debian.org>
Date:   Sun Apr 9 03:17:26 2017 +0200

    Dpkg::Deps: Do not unnecessarily require setting the host_arch
    
    If we are not reducing the architectures, or we are not going to use the
    known facts, we do not need to know and set the host architecture, which
    relies on gcc being present.
    
    Closes: #856396
---
 debian/changelog     |  2 ++
 scripts/Dpkg/Deps.pm | 18 +++++++++++-------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index a904cf6..6231ede 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -113,6 +113,8 @@ dpkg (1.19.0) UNRELEASED; urgency=medium
     - Unify Dpkg::ErrorHandling subprocess errors with the ones from libdpkg.
     - Do not emit a perl warning if gcc or dpkg is not found from Dpkg::Arch,
       the code already handles the commands not being present.
+    - Do not unnecessarily require setting the host_arch in Dpkg::Deps.
+      Closes: #856396
   * Documentation:
     - Document currently accepted syntax for changelogs in deb-changelog(5).
       Closes: #858579
diff --git a/scripts/Dpkg/Deps.pm b/scripts/Dpkg/Deps.pm
index f2d0742..3560e1a 100644
--- a/scripts/Dpkg/Deps.pm
+++ b/scripts/Dpkg/Deps.pm
@@ -259,11 +259,8 @@ sub deps_parse {
 
     $options{use_arch} //= 1;
     $options{reduce_arch} //= 0;
-    $options{host_arch} //= get_host_arch();
-    $options{build_arch} //= get_build_arch();
     $options{use_profiles} //= 1;
     $options{reduce_profiles} //= 0;
-    $options{build_profiles} //= [ get_build_profiles() ];
     $options{reduce_restrictions} //= 0;
     $options{union} //= 0;
     $options{build_dep} //= 0;
@@ -273,6 +270,13 @@ sub deps_parse {
         $options{reduce_arch} = 1;
         $options{reduce_profiles} = 1;
     }
+    if ($options{reduce_arch}) {
+        $options{host_arch} //= get_host_arch();
+        $options{build_arch} //= get_build_arch();
+    }
+    if ($options{reduce_profiles}) {
+        $options{build_profiles} //= [ get_build_profiles() ];
+    }
 
     # Options for Dpkg::Deps::Simple.
     my %deps_options = (
@@ -582,8 +586,8 @@ sub new {
     my $self = {};
     bless $self, $class;
     $self->reset();
-    $self->{host_arch} = $opts{host_arch} || Dpkg::Arch::get_host_arch();
-    $self->{build_arch} = $opts{build_arch} || Dpkg::Arch::get_build_arch();
+    $self->{host_arch} = $opts{host_arch};
+    $self->{build_arch} = $opts{build_arch};
     $self->{build_dep} = $opts{build_dep} // 0;
     $self->{tests_dep} = $opts{tests_dep} // 0;
     $self->parse_string($arg) if defined($arg);
@@ -1460,8 +1464,8 @@ sub _find_package {
     my ($self, $dep, $lackinfos) = @_;
     my ($pkg, $archqual) = ($dep->{package}, $dep->{archqual});
     return if not exists $self->{pkg}{$pkg};
-    my $host_arch = $dep->{host_arch};
-    my $build_arch = $dep->{build_arch};
+    my $host_arch = $dep->{host_arch} // Dpkg::Arch::get_host_arch();
+    my $build_arch = $dep->{build_arch} // Dpkg::Arch::get_build_arch();
     foreach my $p (@{$self->{pkg}{$pkg}}) {
 	my $a = $p->{architecture};
 	my $ma = $p->{multiarch};

-- 
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