]> git.donarmstrong.com Git - debhelper.git/blobdiff - Debian/Debhelper/Dh_Lib.pm
dh: Avoid compat deprecation warning before option parsing. Closes: #641361
[debhelper.git] / Debian / Debhelper / Dh_Lib.pm
index 174970b010c052966e27e551a28bdd568dd907cf..60f13c30517664265b6b8b540b9bb8f0013381c1 100644 (file)
@@ -18,7 +18,7 @@ use vars qw(@ISA @EXPORT %dh);
            &inhibit_log &load_log &write_log &commit_override_log
            &dpkg_architecture_value &sourcepackage
            &is_make_jobserver_unavailable &clean_jobserver_makeflags
-           &cross_command &set_buildflags);
+           &cross_command &set_buildflags &get_buildoption);
 
 my $max_compat=9;
 
@@ -146,6 +146,8 @@ sub write_log {
        my $cmd=shift;
        my @packages=@_;
 
+       return if $dh{NO_ACT};
+
        foreach my $package (@packages) {
                my $log=logfile($package);
                open(LOG, ">>", $log) || error("failed to write to ${log}: $!");
@@ -157,6 +159,8 @@ sub write_log {
 sub commit_override_log {
        my @packages=@_;
 
+       return if $dh{NO_ACT};
+
        foreach my $package (@packages) {
                my @log=map { remove_override($_) } load_log($package);
                my $log=logfile($package);
@@ -324,6 +328,7 @@ sub dirname {
 
        sub compat {
                my $num=shift;
+               my $nowarn=shift;
        
                if (! defined $c) {
                        $c=1;
@@ -345,7 +350,7 @@ sub dirname {
                        }
                }
 
-               if ($c <= 4 && ! $warned_compat) {
+               if ($c <= 4 && ! $warned_compat && ! $nowarn) {
                        warning("Compatibility levels before 5 are deprecated.");
                        $warned_compat=1;
                }
@@ -903,8 +908,7 @@ sub cross_command {
 # Sets environment variables from dpkg-buildflags. Avoids changing
 # any existing environment variables.
 sub set_buildflags {
-       # optimisation
-       return if $ENV{DH_INTERNAL_BUILDFLAGS};
+       return if $ENV{DH_INTERNAL_BUILDFLAGS} || compat(8);
        $ENV{DH_INTERNAL_BUILDFLAGS}=1;
 
        eval "use Dpkg::BuildFlags";
@@ -923,4 +927,21 @@ sub set_buildflags {
        }
 }
 
+# Gets a DEB_BUILD_OPTIONS option, if set.
+sub get_buildoption {
+       my $wanted=shift;
+
+       return undef unless exists $ENV{DEB_BUILD_OPTIONS};
+
+       foreach my $opt (split(/\s+/, $ENV{DEB_BUILD_OPTIONS})) {
+               # currently parallel= is the only one with a parameter
+               if ($opt =~ /^parallel=(-?\d+)$/ && $wanted eq 'parallel') {
+                       return $1;
+               }
+               elsif ($opt eq $wanted) {
+                       return 1;
+               }
+       }
+}
+
 1