]> err.no Git - dpkg/commitdiff
dpkg-buildpackage: use space as separator in DEB_BUILD_OPTIONS
authorRaphael Hertzog <hertzog@debian.org>
Mon, 9 Jun 2008 17:42:28 +0000 (19:42 +0200)
committerRaphael Hertzog <hertzog@debian.org>
Mon, 9 Jun 2008 17:42:28 +0000 (19:42 +0200)
* scripts/Dpkg/BuildOptions.pm (parse, set): Use space as the
official separator in DEB_BUILD_OPTIONS. Check for validity of
flags and print a warning if a bad option is detected. Rewrote
the logic of set() to avoid adding options twice in non-overwrite
mode.

ChangeLog
debian/changelog
scripts/Dpkg/BuildOptions.pm

index 7dbade8b042da8f3fc245c2b59b656011f25cb01..6a692a95edd6dcec904a5fcebf6859e37de2c398 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-06-09  Guillem Jover  <guillem@debian.org>
+
+       * scripts/Dpkg/BuildOptions.pm (parse, set): Use space as the
+       official separator in DEB_BUILD_OPTIONS. Check for validity of
+       flags and print a warning if a bad option is detected. Rewrote
+       the logic of set() to avoid adding options twice in non-overwrite
+       mode.
+
 2008-06-09  Guillem Jover  <guillem@debian.org>
 
        * scripts/Dpkg/Source/Package.pm ($diff_ignore_default_regexp): Add
index cc6233ea002386942b77285644fe72814f41630f..aeb3a531edb0bd691106c72cd470dd04a2578eaf 100644 (file)
@@ -33,6 +33,9 @@ dpkg (1.15.0) UNRELEASED; urgency=low
     Thanks to Daniel Hahler for the patch. Closes: #457135
   * dpkg-gencontrol can now again read the control file from its standard
     input with "-c-". Closes: #465340
+  * Modified Dpkg::BuildOptions to recognize and use spaces as separator
+    in DEB_BUILD_OPTIONS (in order to conform with the Debian policy
+    ruling estasblished in #430649).
 
   [ Pierre Habouzit ]
   * Add a --query option to update-alternatives. Closes: #336091, #441904
index 1068248fe2139e46f1f9cfd3547803ab4c1969ac..cdb9c65e7f765b1dae0f2ac74c714d4cd6f54a12 100644 (file)
@@ -12,16 +12,16 @@ sub parse {
 
     my %opts;
 
-    foreach (split(/[\s,]+/, $env)) {
-       # FIXME: This is pending resolution of Debian bug #430649
-       /^([a-z][a-z0-9_-]*)(=(\w*))?$/;
+    foreach (split(/\s+/, $env)) {
+       unless (/^([a-z][a-z0-9_-]*)(=(\S*))?$/) {
+            warning(_g("invalid flag in DEB_BUILD_OPTIONS: %s"), $_);
+            next;
+        }
 
        my ($k, $v) = ($1, $3 || '');
 
        # Sanity checks
-       if (!$k) {
-           next;
-       } elsif ($k =~ /^(noopt|nostrip|nocheck)$/ && length($v)) {
+       if ($k =~ /^(noopt|nostrip|nocheck)$/ && length($v)) {
            $v = '';
        } elsif ($k eq 'parallel' && $v !~ /^-?\d+$/) {
            next;
@@ -37,18 +37,15 @@ sub set {
     my ($opts, $overwrite) = @_;
     $overwrite = 1 if not defined($overwrite);
 
-    my $env = $overwrite ? '' : $ENV{DEB_BUILD_OPTIONS}||'';
-    if ($env) { $env .= ',' }
-
+    my $new = {};
+    $new = parse() unless $overwrite;
     while (my ($k, $v) = each %$opts) {
-       if ($v) {
-           $env .= "$k=$v,";
-       } else {
-           $env .= "$k,";
-       }
+        $new->{$k} = $v;
     }
 
-    $ENV{DEB_BUILD_OPTIONS} = $env if $env;
+    my $env = join(" ", map { $new->{$_} ? $_ . "=" . $new->{$_} : $_ } keys %$new);
+
+    $ENV{DEB_BUILD_OPTIONS} = $env;
     return $env;
 }