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

jamessan pushed a commit to branch master
in repository devscripts.

commit bd340539ef8a7e2842e285452e386741513c847d
Author: James McCoy <[email protected]>
Date:   Sun Nov 20 16:47:26 2016 -0500

    debuild: Remove dpkg-buildpackage emulation
    
    dpkg-buildpackage is now always called to do the heavy lifting.
    
    Signed-off-by: James McCoy <[email protected]>
---
 scripts/debuild.pl | 278 ++++++-----------------------------------------------
 1 file changed, 32 insertions(+), 246 deletions(-)

diff --git a/scripts/debuild.pl b/scripts/debuild.pl
index 5207df5..e2842d3 100755
--- a/scripts/debuild.pl
+++ b/scripts/debuild.pl
@@ -189,7 +189,6 @@ my $logging=0;
 my $tgz_check=1;
 my $prepend_path='';
 my $username='';
-my $emulate_dpkgbp = 0;
 my @hooks = (qw(dpkg-buildpackage clean dpkg-source build binary 
dpkg-genchanges
                final-clean lintian signing post-dpkg-buildpackage));
 my %hook;
@@ -836,13 +835,8 @@ if ($command_version eq 'dpkg') {
            push(@dpkg_opts, $_), next;
        /^-C(.*)/ and $desc=$1, push(@dpkg_opts, $_), next;
        /^-j(auto|\d*)$/ and $parallel=($1 || '-1'), push(@dpkg_opts, $_), next;
-       if ($emulate_dpkgbp) {
-           fatal "unknown dpkg-buildpackage option in configuration file: $_";
-       } else {
-           warn "$progname: unknown dpkg-buildpackage option in configuration 
file: $_\n";
-           push (@dpkg_opts, $_);
-           next;
-       }
+       warn "$progname: unknown dpkg-buildpackage option in configuration 
file: $_\n";
+       push (@dpkg_opts, $_);
     }
 
     while ($_=shift) {
@@ -913,17 +907,8 @@ if ($command_version eq 'dpkg') {
            unshift @ARGV, $_;
            last;
        }
-       if ($emulate_dpkgbp) {
-           fatal "unknown dpkg-buildpackage/debuild option: $_";
-       } else {
-           warn "$progname: unknown dpkg-buildpackage/debuild option: $_\n";
-           push (@dpkg_opts, $_);
-           next;
-       }
-    }
-
-    if ($sourceonly and $binaryonly) {
-       fatal "cannot combine dpkg-buildpackage options $sourceonly and 
$binaryonly";
+       warn "$progname: unknown dpkg-buildpackage/debuild option: $_\n";
+       push (@dpkg_opts, $_);
     }
 
     # Pick up lintian options if necessary
@@ -943,18 +928,6 @@ if ($command_version eq 'dpkg') {
        }
     }
 
-    if ($< != 0) {
-       $root_command ||= 'fakeroot';
-       # Only fakeroot is a default, so that's the only one we'll
-       # check for
-       if ($root_command eq 'fakeroot') {
-           system('fakeroot true 2>/dev/null');
-           if ($? >> 8 != 0) {
-               fatal "problem running fakeroot: either install the fakeroot 
package,\nuse a -r option to select another root command program to use or\nrun 
me as root!";
-           }
-       }
-    }
-
     if ($signchanges==1 and $signsource==0) {
        push @warnings,
            "I will sign the .dsc file anyway as a signed .changes file was 
requested\n";
@@ -998,9 +971,9 @@ if ($command_version eq 'dpkg') {
 
     # Handle dpkg source format "3.0 (git)" packages (no tarballs)
     if ( -r "debian/source/format" ) {
-        open FMT, "debian/source/format" or die $!;
-        my $srcfmt = <FMT>; close FMT; chomp $srcfmt;
-        if ( $srcfmt eq "3.0 (git)" ) { $tgz_check = 0; }
+       open FMT, "debian/source/format" or die $!;
+       my $srcfmt = <FMT>; close FMT; chomp $srcfmt;
+       if ( $srcfmt eq "3.0 (git)" ) { $tgz_check = 0; }
     }
 
     $dsc = "${pkg}_${sversion}.dsc";
@@ -1030,214 +1003,27 @@ if ($command_version eq 'dpkg') {
     open STDOUT, ">&BUILD" or fatal "can't reopen stdout: $!";
     open STDERR, ">&BUILD" or fatal "can't reopen stderr: $!";
 
-    if (!$emulate_dpkgbp) {
-       if (defined($checkbuilddep)) {
-           unshift @dpkg_opts, ($checkbuilddep ? "-D" : "-d");
-       }
-       unshift @dpkg_opts, "-r$root_command" if $root_command;
-       system_withecho('dpkg-buildpackage', @dpkg_opts);
-
-       chdir '..' or fatal "can't chdir: $!";
-    } else {
-       # We emulate the version found in dpkg-buildpackage-snapshot in
-       # the source package with the addition of -j and *FLAGS(_APPEND)
-       # support
-
-       my $build_opts = parsebuildopts();
-
-       # From dpkg-buildpackage 1.14.15
-       if ($parallel) {
-           $parallel = $build_opts->{parallel}
-               if (defined $build_opts->{parallel});
-           $ENV{MAKEFLAGS} ||= '';
-
-           if ($parallel eq 'auto') {
-               # Most Unices.
-               $parallel = qx(getconf _NPROCESSORS_ONLN 2>/dev/null);
-               # Fallback for at least Irix.
-               $parallel = qx(getconf _NPROC_ONLN 2>/dev/null) if $?;
-               chomp $parallel;
-           }
-           if ($parallel eq '-1') {
-               $ENV{MAKEFLAGS} .= " -j";
-           } else {
-               $ENV{MAKEFLAGS} .= " -j$parallel";
-           }
-
-           $build_opts->{parallel} = $parallel;
-           setbuildopts($build_opts);
-       }
-
-       # From dpkg-buildpackage 1.14.18
-       # (with messages tweaked as we don't support localization)
-       my $default_flags = defined $build_opts->{noopt} ? "-g -O0" : "-g -O2";
-       my %flags = (   CPPFLAGS => '',
-                       CFLAGS   => $default_flags,
-                       CXXFLAGS => $default_flags,
-                       FFLAGS   => $default_flags,
-                       LDFLAGS  => '',
-                   );
-
-       foreach my $flag (keys %flags) {
-           if ($ENV{$flag}) {
-               print "$progname: using $flag from environment: $ENV{$flag}\n";
-           } else {
-               $ENV{$flag} = $flags{$flag};
-               print "$progname: set $flag to defailt value: $ENV{$flag}\n";
-           }
-           if ($ENV{"${flag}_APPEND"}) {
-               $ENV{$flag} .= " ".$ENV{"${flag}_APPEND"};
-           }
-       }
-
-       chdir '..' or fatal "can't chdir ..: $!";
-       system_withecho('dpkg-source', '--before-build', $dirn);
-       chdir $dirn or fatal "can't chdir $dirn: $!";
-
-       # First dpkg-buildpackage action: run dpkg-checkbuilddeps
-       if ($checkbuilddep) {
-           if ($binarytarget eq 'binary-arch') {
-               system('dpkg-checkbuilddeps -B');
-           } elsif ($binarytarget eq 'binary-indep') {
-               system('dpkg-checkbuilddeps -A');
-           } else {
-               system('dpkg-checkbuilddeps');
-           }
-           if ($?>>8) {
-               fatal <<"EOT";
-You do not appear to have all build dependencies properly met, aborting.
-(Use -d flag to override.)
-You can use mk-build-deps to generate a dummy package which Depends on all the
-required packages, or you can install them manually using dpkg or apt using
-the error messages just above this message.
-EOT
-           }
-       }
-
-       # Next dpkg-buildpackage action: clean
-       unless ($noclean) {
-           if ($< == 0) {
-               system_withecho('debian/rules', 'clean');
-           } else {
-               system_withecho($root_command, 'debian/rules', 'clean');
-           }
-       }
-
-       # Next dpkg-buildpackage action: dpkg-source
-       if (! $binaryonly) {
-           my @cmd = (qw(dpkg-source));
-           push @cmd, @passopts;
-           push @cmd, $diffignore if $diffignore;
-           push @cmd, $compression if $compression;
-           push @cmd, $comp_level if $comp_level;
-           push @cmd, @tarignore;
-           push @cmd, "-b", $dirn;
-           chdir '..' or fatal "can't chdir ..: $!";
-           system_withecho(@cmd);
-           chdir $dirn or fatal "can't chdir $dirn: $!";
-       }
-
-       # Next dpkg-buildpackage action: build and binary targets
-       if (! $sourceonly) {
-           system_withecho('debian/rules', 'build');
-
-           if ($< == 0) {
-               system_withecho('debian/rules', $binarytarget);
-           } else {
-               system_withecho($root_command, 'debian/rules', $binarytarget);
-           }
-       } elsif ($hook{'binary'}) {
-           push @warnings, "$progname: not running binary hook 
'$hook{'binary'}' as -S option used\n";
-       }
-
-       # Because of our messing around with STDOUT and wanting to pass
-       # arguments safely to dpkg-genchanges means that we're gonna have to
-       # do it manually :(
-       my @cmd = ('dpkg-genchanges');
-       foreach ($binaryonly, $sourceonly, $sourcestyle) {
-           push @cmd, $_ if $_;
-       }
-       push @cmd, "-m$maint" if $maint;
-       push @cmd, "-e$changedby" if $changedby;
-       push @cmd, "-v$since" if $since;
-       push @cmd, "-C$desc" if $desc;
-       print STDERR " ", join(" ", @cmd), "\n";
-
-       open GENCHANGES, "-|", @cmd or fatal "can't exec dpkg-genchanges: $!";
-       my @changefilecontents;
-       @changefilecontents = <GENCHANGES>;
-       close GENCHANGES
-           or warn "$progname: dpkg-genchanges failed!\n", exit ($?>>8);
-       open CHANGES, "> ../$changes"
-           or fatal "can't open ../$changes for writing: $!";
-       print CHANGES @changefilecontents;
-       close CHANGES
-           or fatal "problem writing to ../$changes: $!";
-
-       # check Ubuntu merge Policy: When merging with Debian, -v must be used
-       # and the remaining changes described
-       my $ch = join "\n", @changefilecontents;
-       if ($sourceonly && $version =~ /ubuntu1$/ && $ENV{'DEBEMAIL'} =~ 
/ubuntu/ &&
-           $ch =~ /(merge|sync).*Debian/i) {
-           push (@warnings, "Ubuntu merge policy: when merging Ubuntu packages 
with Debian, -v must be used") unless $since;
-           push (@warnings, "Ubuntu merge policy: when merging Ubuntu packages 
with Debian, changelog must describe the remaining Ubuntu changes")
-               unless $ch =~ /Changes:.*(remaining|Ubuntu)(.|\n 
)*(differen|changes)/is;
-       }
-
-       # Final dpkg-buildpackage action: clean target again
-       if ($cleansource) {
-           if ($< == 0) {
-               system_withecho('debian/rules', 'clean');
-           } else {
-               system_withecho($root_command, 'debian/rules', 'clean');
-           }
-       }
-
-       chdir '..' or fatal "can't chdir ..: $!";
-       system_withecho('dpkg-source', '--after-build', $dirn);
-       chdir $dirn or fatal "can't chdir $dirn: $!";
-
-       # identify the files listed in $changes; this will be used for the
-       # emulation of the dpkg-buildpackage fileomitted() function
-
-       my @files;
-       my $infiles=0;
-       foreach (@changefilecontents) {
-           /^Files:/ and $infiles=1, next;
-           next unless $infiles;
-           last if /^[^ ]/; # no need to go further
-           # so we're looking at a filename with lots of info before it
-           / (\S+)$/ and push @files, $1;
-       }
-
-       my $srcmsg;
-
-       my $ext = $compression_re;
-       if (fileomitted @files, '\.deb') {
-           # source only upload
-           if (fileomitted @files, "\\.diff\\.$ext" and fileomitted @files, 
"\\.debian\\.tar\\.$ext") {
-               $srcmsg='source only upload: Debian-native package';
-           } elsif (fileomitted @files, "\\.orig\\.tar\\.$ext") {
-               $srcmsg='source only, diff-only upload (original source NOT 
included)';
-           } else {
-               $srcmsg='source only upload (original source is included)';
-           }
-       } else {
-           if (fileomitted @files, '\.dsc') {
-               $srcmsg='binary only upload (no source included)'
-           } elsif (fileomitted @files, "\\.diff\\.$ext" and fileomitted 
@files, "\\.debian\\.tar\\.$ext") {
-               $srcmsg='full upload; Debian-native package (full source is 
included)';
-           } elsif (fileomitted @files, "\\.orig\\.tar\\.$ext") {
-               $srcmsg='binary and diff upload (original source NOT included)';
-           } else {
-               $srcmsg='full upload (original source is included)';
-           }
-       }
-
-       print "dpkg-buildpackage (debuild emulation): $srcmsg\n";
-
-       chdir '..' or fatal "can't chdir: $!";
-    } # end of debuild dpkg-buildpackage emulation
+    if (defined($checkbuilddep)) {
+       unshift @dpkg_opts, ($checkbuilddep ? "-D" : "-d");
+    }
+    unshift @dpkg_opts, "-r$root_command" if $root_command;
+    system_withecho('dpkg-buildpackage', @dpkg_opts);
+
+    chdir '..' or fatal "can't chdir: $!";
+
+    open CHANGES, '<', $changes or fatal "can't open $changes for reading: $!";
+    my @changefilecontents = <CHANGES>;
+    close CHANGES;
+
+    # check Ubuntu merge Policy: When merging with Debian, -v must be used
+    # and the remaining changes described
+    my $ch = join "\n", @changefilecontents;
+    if ($sourceonly && $version =~ /ubuntu1$/ && $ENV{'DEBEMAIL'} =~ /ubuntu/ 
&&
+       $ch =~ /(merge|sync).*Debian/i) {
+       push (@warnings, "Ubuntu merge policy: when merging Ubuntu packages 
with Debian, -v must be used") unless $since;
+       push (@warnings, "Ubuntu merge policy: when merging Ubuntu packages 
with Debian, changelog must describe the remaining Ubuntu changes")
+           unless $ch =~ /Changes:.*(remaining|Ubuntu)(.|\n 
)*(differen|changes)/is;
+    }
 
     # They've insisted.  Who knows why?!
     if (($signchanges or $signsource) and $usepause) {
@@ -1248,9 +1034,9 @@ EOT
     run_hook('signing', ($signchanges || (! $sourceonly and $signsource)) );
 
     if ($signchanges) {
-    foreach my $var (keys %store_vars) {
-        $ENV{$var} = $store_vars{$var};
-    }
+       foreach my $var (keys %store_vars) {
+           $ENV{$var} = $store_vars{$var};
+       }
        print "Now signing changes and any dsc files...\n";
        if ($username) {
            system('debrsign', @debsign_opts, $username, $changes) == 0
@@ -1258,7 +1044,7 @@ EOT
        } else {
            system('debsign', @debsign_opts, $changes) == 0
                or fatal "running debsign failed";
-        }
+       }
     }
     elsif (! $sourceonly and $signsource) {
        print "Now signing dsc file...\n";

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/collab-maint/devscripts.git

_______________________________________________
devscripts-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel

Reply via email to