[Reproducible-commits] [dpkg] 06/63: scripts: Use new Dpkg::Build::Types module instead of ad-hoc code

Jérémy Bobbio lunar at moszumanska.debian.org
Fri Mar 4 17:44:41 UTC 2016


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

lunar pushed a commit to branch pu/buildinfo
in repository dpkg.

commit d122537d6df899dc1d0599e0a24ee3b27f0d9e18
Author: Guillem Jover <guillem at debian.org>
Date:   Fri Jan 29 19:44:40 2016 +0100

    scripts: Use new Dpkg::Build::Types module instead of ad-hoc code
---
 scripts/dpkg-buildpackage.pl | 73 ++++++++++----------------------------------
 scripts/dpkg-genchanges.pl   | 67 +++++++++-------------------------------
 2 files changed, 31 insertions(+), 109 deletions(-)

diff --git a/scripts/dpkg-buildpackage.pl b/scripts/dpkg-buildpackage.pl
index 17ada97..5a3b634 100755
--- a/scripts/dpkg-buildpackage.pl
+++ b/scripts/dpkg-buildpackage.pl
@@ -23,7 +23,6 @@
 use strict;
 use warnings;
 
-use Carp;
 use Cwd;
 use File::Temp qw(tempdir);
 use File::Basename;
@@ -33,6 +32,7 @@ use POSIX qw(:sys_wait_h);
 use Dpkg ();
 use Dpkg::Gettext;
 use Dpkg::ErrorHandling;
+use Dpkg::Build::Types;
 use Dpkg::BuildOptions;
 use Dpkg::BuildProfiles qw(set_build_profiles);
 use Dpkg::Compression;
@@ -168,47 +168,6 @@ my @hook_names = qw(
 my %hook;
 $hook{$_} = undef foreach @hook_names;
 
-use constant BUILD_DEFAULT    => 1;
-use constant BUILD_SOURCE     => 2;
-use constant BUILD_ARCH_DEP   => 4;
-use constant BUILD_ARCH_INDEP => 8;
-use constant BUILD_BINARY     => BUILD_ARCH_DEP | BUILD_ARCH_INDEP;
-use constant BUILD_SOURCE_DEP => BUILD_SOURCE | BUILD_ARCH_DEP;
-use constant BUILD_SOURCE_INDEP => BUILD_SOURCE | BUILD_ARCH_INDEP;
-use constant BUILD_ALL        => BUILD_BINARY | BUILD_SOURCE;
-my $include = BUILD_ALL | BUILD_DEFAULT;
-
-sub build_is_default() { return $include & BUILD_DEFAULT; }
-sub build_sourceonly() { return $include == BUILD_SOURCE; }
-sub build_binaryonly() { return !($include & BUILD_SOURCE); }
-sub build_binaryindep() { return ($include == BUILD_ARCH_INDEP); }
-sub build_opt {
-    if ($include == BUILD_BINARY) {
-        return '-b';
-    } elsif ($include == BUILD_ARCH_DEP) {
-        return '-B';
-    } elsif ($include == BUILD_ARCH_INDEP) {
-        return '-A';
-    } elsif ($include == BUILD_SOURCE) {
-        return '-S';
-    } elsif ($include == BUILD_SOURCE_DEP) {
-        return '-G';
-    } elsif ($include == BUILD_SOURCE_INDEP) {
-        return '-g';
-    } else {
-        croak "build_opt called with include=$include";
-    }
-}
-
-sub set_build_type
-{
-    my ($build_type, $build_option) = @_;
-
-    usageerr(g_('cannot combine %s and %s'), build_opt(), $build_option)
-        if not build_is_default and $include != $build_type;
-    $include = $build_type;
-}
-
 my $build_opts = Dpkg::BuildOptions->new();
 
 if ($build_opts->has('nocheck')) {
@@ -325,7 +284,7 @@ while (@ARGV) {
 	set_build_type(BUILD_SOURCE_INDEP, $_);
 	push @changes_opts, '-g';
     } elsif (/^-F$/) {
-	set_build_type(BUILD_ALL, $_);
+	set_build_type(BUILD_FULL, $_);
     } elsif (/^-v(.*)$/) {
 	$since = $1;
     } elsif (/^-m(.*)$/) {
@@ -345,22 +304,22 @@ while (@ARGV) {
     }
 }
 
-if (($include & BUILD_BINARY) == BUILD_BINARY) {
+if (build_has(BUILD_BINARY)) {
     $buildtarget = 'build';
     $binarytarget = 'binary';
-} elsif ($include & BUILD_ARCH_DEP) {
+} elsif (build_has(BUILD_ARCH_DEP)) {
     $buildtarget = 'build-arch';
     $binarytarget = 'binary-arch';
-} elsif ($include & BUILD_ARCH_INDEP) {
+} elsif (build_has(BUILD_ARCH_INDEP)) {
     $buildtarget = 'build-indep';
     $binarytarget = 'binary-indep';
 }
 
 if ($noclean) {
     # -nc without -b/-B/-A/-S/-F implies -b
-    $include = BUILD_BINARY if build_is_default;
+    set_build_type(BUILD_BINARY) if build_has(BUILD_DEFAULT);
     # -nc with -S implies no dependency checks
-    $checkbuilddep = 0 if build_sourceonly;
+    $checkbuilddep = 0 if build_is(BUILD_SOURCE);
 }
 
 if ($< == 0) {
@@ -456,9 +415,9 @@ while (<$arch_env>) {
 close $arch_env or subprocerr('dpkg-architecture');
 
 my $arch;
-if (build_sourceonly) {
+if (build_is(BUILD_SOURCE)) {
     $arch = 'source';
-} elsif (build_binaryindep) {
+} elsif (build_is(BUILD_ARCH_INDEP)) {
     $arch = 'all';
 } else {
     $arch = mustsetvar($ENV{DEB_HOST_ARCH}, g_('host architecture'));
@@ -479,7 +438,7 @@ if (not $signcommand) {
     $signchanges = 0;
 }
 
-if ($signsource && build_binaryonly) {
+if ($signsource && build_has_not(BUILD_SOURCE)) {
     $signsource = 0;
 }
 
@@ -503,8 +462,8 @@ unless ($call_target) {
 if ($checkbuilddep) {
     my @checkbuilddep_opts;
 
-    push @checkbuilddep_opts, '-A' if ($include & BUILD_ARCH_DEP) == 0;
-    push @checkbuilddep_opts, '-B' if ($include & BUILD_ARCH_INDEP) == 0;
+    push @checkbuilddep_opts, '-A' if build_has_not(BUILD_ARCH_DEP);
+    push @checkbuilddep_opts, '-B' if build_has_not(BUILD_ARCH_INDEP);
     push @checkbuilddep_opts, '-I' if not $check_builtin_builddep;
     push @checkbuilddep_opts, "--admindir=$admindir" if $admindir;
 
@@ -535,9 +494,9 @@ unless ($noclean) {
     withecho(@rootcommand, @debian_rules, 'clean');
 }
 
-run_hook('source', $include & BUILD_SOURCE);
+run_hook('source', build_has(BUILD_SOURCE));
 
-if ($include & BUILD_SOURCE) {
+if (build_has(BUILD_SOURCE)) {
     warning(g_('building a source package without cleaning up as you asked; ' .
                'it might contain undesired files')) if $noclean;
     chdir('..') or syserr('chdir ..');
@@ -545,7 +504,7 @@ if ($include & BUILD_SOURCE) {
     chdir($dir) or syserr("chdir $dir");
 }
 
-run_hook('build', $include & BUILD_BINARY);
+run_hook('build', build_has(BUILD_BINARY));
 
 if ($buildtarget ne 'build' and scalar(@debian_rules) == 1) {
     # Verify that build-{arch,indep} are supported. If not, fallback to build.
@@ -565,7 +524,7 @@ if ($buildtarget ne 'build' and scalar(@debian_rules) == 1) {
     }
 }
 
-if ($include & BUILD_BINARY) {
+if (build_has(BUILD_BINARY)) {
     withecho(@debian_rules, $buildtarget);
     run_hook('binary', 1);
     withecho(@rootcommand, @debian_rules, $binarytarget);
diff --git a/scripts/dpkg-genchanges.pl b/scripts/dpkg-genchanges.pl
index 30c7abd..e23e52a 100755
--- a/scripts/dpkg-genchanges.pl
+++ b/scripts/dpkg-genchanges.pl
@@ -22,7 +22,6 @@
 use strict;
 use warnings;
 
-use Carp;
 use Encode;
 use POSIX qw(:errno_h :locale_h);
 
@@ -32,6 +31,7 @@ use Dpkg::Util qw(:list);
 use Dpkg::File;
 use Dpkg::Checksums;
 use Dpkg::ErrorHandling;
+use Dpkg::Build::Types;
 use Dpkg::BuildProfiles qw(get_build_profiles parse_build_profiles
                            evaluate_restriction_formula);
 use Dpkg::Arch qw(get_host_arch debarch_eq debarch_is);
@@ -80,43 +80,6 @@ my $substvars_loaded = 0;
 my $substvars = Dpkg::Substvars->new();
 $substvars->set_as_auto('Format', $changes_format);
 
-use constant BUILD_SOURCE     => 1;
-use constant BUILD_ARCH_DEP   => 2;
-use constant BUILD_ARCH_INDEP => 4;
-use constant BUILD_BINARY     => BUILD_ARCH_DEP | BUILD_ARCH_INDEP;
-use constant BUILD_SOURCE_DEP => BUILD_SOURCE | BUILD_ARCH_DEP;
-use constant BUILD_SOURCE_INDEP => BUILD_SOURCE | BUILD_ARCH_INDEP;
-use constant BUILD_ALL        => BUILD_BINARY | BUILD_SOURCE;
-my $include = BUILD_ALL;
-
-sub build_is_default() { return ($include & BUILD_ALL) == BUILD_ALL; }
-sub build_opt {
-    if ($include == BUILD_BINARY) {
-       return '-b';
-    } elsif ($include == BUILD_ARCH_DEP) {
-        return '-B';
-    } elsif ($include == BUILD_ARCH_INDEP) {
-        return '-A';
-    } elsif ($include == BUILD_SOURCE) {
-        return '-S';
-    } elsif ($include == BUILD_SOURCE_DEP) {
-        return '-G';
-    } elsif ($include == BUILD_SOURCE_INDEP) {
-        return '-g';
-    } else {
-        croak "build_opt called with include=$include";
-    }
-}
-
-sub set_build_type
-{
-    my ($build_type, $build_option) = @_;
-
-    usageerr(g_('cannot combine %s and %s'), build_opt(), $build_option)
-        if not build_is_default and $include != $build_type;
-    $include = $build_type;
-}
-
 sub version {
     printf g_("Debian %s version %s.\n"), $Dpkg::PROGNAME, $Dpkg::PROGVERSION;
 
@@ -264,7 +227,7 @@ foreach (keys %{$src_fields}) {
 my $dist = Dpkg::Dist::Files->new();
 my $origsrcmsg;
 
-if ($include & BUILD_SOURCE) {
+if (build_has(BUILD_SOURCE)) {
     my $sec = $sourcedefault{'Section'} // '-';
     my $pri = $sourcedefault{'Priority'} // '-';
     warning(g_('missing Section for source files')) if $sec eq '-';
@@ -313,17 +276,17 @@ if ($include & BUILD_SOURCE) {
     for my $f ($checksums->get_files()) {
         $dist->add_file($f, $sec, $pri);
     }
-} elsif ($include == BUILD_ARCH_DEP) {
+} elsif (build_is(BUILD_ARCH_DEP)) {
     $origsrcmsg = g_('binary-only arch-specific upload ' .
                      '(source code and arch-indep packages not included)');
-} elsif ($include == BUILD_ARCH_INDEP) {
+} elsif (build_is(BUILD_ARCH_INDEP)) {
     $origsrcmsg = g_('binary-only arch-indep upload ' .
                      '(source code and arch-specific packages not included)');
 } else {
     $origsrcmsg = g_('binary-only upload (no source code included)');
 }
 
-if ($include & BUILD_BINARY) {
+if (build_has(BUILD_BINARY)) {
     my $dist_count = 0;
 
     $dist_count = $dist->load($fileslistfile) if -e $fileslistfile;
@@ -367,9 +330,9 @@ foreach my $pkg ($control->get_packages()) {
 
     if (not defined($p2f{$p})) {
 	# No files for this package... warn if it's unexpected
-	if (((debarch_eq('all', $a) and ($include & BUILD_ARCH_INDEP)) ||
-	    ((any { debarch_is($host_arch, $_) } split /\s+/, $a)
-		  and ($include & BUILD_ARCH_DEP))) and
+	if (((debarch_eq('all', $a) and build_has(BUILD_ARCH_INDEP)) ||
+	     ((any { debarch_is($host_arch, $_) } split /\s+/, $a)
+	     and build_has(BUILD_ARCH_DEP))) and
 	    (@restrictions == 0 or
 	     evaluate_restriction_formula(\@restrictions, \@profiles)))
 	{
@@ -388,7 +351,7 @@ foreach my $pkg ($control->get_packages()) {
 	    $f2pricf{$_} = $v foreach (@f);
 	} elsif (m/^Architecture$/) {
 	    if ((any { debarch_is($host_arch, $_) } split /\s+/, $v)
-		and ($include & BUILD_ARCH_DEP)) {
+		and build_has(BUILD_ARCH_DEP)) {
 		$v = $host_arch;
 	    } elsif (!debarch_eq('all', $v)) {
 		$v = '';
@@ -467,12 +430,12 @@ if (length($fields->{'Binary'}) > 980) {
     $fields->{'Binary'} =~ s/(.{0,980}) /$1\n/g;
 }
 
-unshift @archvalues, 'source' if $include & BUILD_SOURCE;
- at archvalues = ('all') if $include == BUILD_ARCH_INDEP;
+unshift @archvalues, 'source' if build_has(BUILD_SOURCE);
+ at archvalues = ('all') if build_is(BUILD_ARCH_INDEP);
 @archvalues = grep { !debarch_eq('all', $_) } @archvalues
-    unless $include & BUILD_ARCH_INDEP;
+    if build_has_not(BUILD_ARCH_INDEP);
 @archvalues = grep { !debarch_eq($host_arch, $_) } @archvalues
-    unless $include & BUILD_ARCH_DEP;
+    if build_has_not(BUILD_ARCH_DEP);
 $fields->{'Architecture'} = join ' ', @archvalues;
 
 $fields->{'Built-For-Profiles'} = join ' ', get_build_profiles();
@@ -487,8 +450,8 @@ for my $file ($dist->get_files()) {
     if (defined $file->{package} && $file->{package_type} =~ m/^u?deb$/) {
         my $arch_all = debarch_eq('all', $file->{arch});
 
-        next if (not ($include & BUILD_ARCH_INDEP) and $arch_all);
-        next if (not ($include & BUILD_ARCH_DEP) and not $arch_all);
+        next if build_has_not(BUILD_ARCH_INDEP) and $arch_all;
+        next if build_has_not(BUILD_ARCH_DEP) and not $arch_all;
     }
     $checksums->add_from_file("$uploadfilesdir/$f", key => $f);
 }

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