]> git.donarmstrong.com Git - debbugs.git/commitdiff
* Add invalid_version template
authorDon Armstrong <don@donarmstrong.com>
Sat, 26 Apr 2008 06:49:25 +0000 (23:49 -0700)
committerDon Armstrong <don@donarmstrong.com>
Sat, 26 Apr 2008 06:49:25 +0000 (23:49 -0700)
 * Relax notfound and notfixed version regex
 * Check for version regex in process.in pseudoheaders

scripts/process.in
scripts/service.in
templates/en_US/mail/invalid_version.tmpl [new file with mode: 0644]

index deaadf2a56d0166ec363c9ed80711b04454e7a93..2de356279e436f22939024ac0519b46567e6863d 100755 (executable)
@@ -357,10 +357,24 @@ if ($codeletter eq 'D' || $codeletter eq 'F')
             $data->{keywords} = join ' ', grep $_ ne 'pending',
                                      split ' ', $data->{keywords};
             if (defined $pheader{'source-version'}) {
-                addfixedversions($data, $pheader{source}, $pheader{'source-version'}, '');
-            } elsif (defined $pheader{version}) {
-                addfixedversions($data, $pheader{package}, $pheader{version}, 'binary');
-            }
+                if ($pheader{'source-version'} !~ m/^$config{package_version_re}$/) {
+                     $brokenness .= fill_template('mail/invalid_version',
+                                                  {version => $pheader{'source-version'}},
+                                                 );
+                }
+                else {
+                     addfixedversions($data, $pheader{source}, $pheader{'source-version'}, '');
+                }
+           } elsif (defined $pheader{version}) {
+                if ($pheader{version} !~ m/^$config{package_version_re}$/) {
+                     $brokenness .= fill_template('mail/invalid_version',
+                                                  {version => $pheader{version}},
+                                                 );
+                }
+                else {
+                     addfixedversions($data, $pheader{package}, $pheader{version}, '');
+                }
+           }
         }
 
        # Add bug mailing list to $generalbcc as appropriate
@@ -644,15 +658,38 @@ if (defined $pheader{source}) {
     # appear that way in version trees so that we can deal with binary
     # packages moving from one source package to another.
     if (defined $pheader{'source-version'}) {
-        addfoundversions($data, $pheader{source}, $pheader{'source-version'}, '');
+        if ($pheader{'source-version'} !~ m/^$config{package_version_re}$/) {
+             $brokenness .= fill_template('mail/invalid_version',
+                                          {version => $pheader{'source-version'}},
+                                         );
+        }
+        else {
+             addfoundversions($data, $pheader{source}, $pheader{'source-version'}, '');
+        }
     } elsif (defined $pheader{version}) {
-        addfoundversions($data, $pheader{source}, $pheader{version}, '');
+        if ($pheader{version} !~ m/^$config{package_version_re}$/) {
+             $brokenness .= fill_template('mail/invalid_version',
+                                          {version => $pheader{version}},
+                                         );
+        }
+        else {
+             addfoundversions($data, $pheader{source}, $pheader{version}, '');
+        }
     }
     writebug($ref, $data);
 } elsif (defined $pheader{package}) {
     # TODO: could handle Source-Version: by looking up the source package?
-    addfoundversions($data, $pheader{package}, $pheader{version}, 'binary');
-    writebug($ref, $data);
+     if (defined $pheader{version}) {
+         if ($pheader{version} !~ m/^$config{package_version_re}$/) {
+              $brokenness .= fill_template('mail/invalid_version',
+                                           {version => $pheader{version}},
+                                          );
+         }
+         else {
+              addfoundversions($data, $pheader{package}, $pheader{version}, 'binary');
+         }
+     }
+     writebug($ref, $data);
 }
 
 my $veryquiet= $codeletter eq 'Q';
index 943c883d4c0742a018995a24d34efce2306fb2cd..1cf84601d521e8248c3db4149149cd9b6f0841ca 100755 (executable)
@@ -580,9 +580,9 @@ END
                 } while (&getnextbug);
             }
         }
-    } elsif (m[^notfound\s+\#?(-?\d+)
-              (?:\s+(?:$config{package_name_re}\/)?
-                   ($config{package_version_re}))$]ix) {
+    } elsif (m[^notfound\s+\#?(-?\d+)\s+
+              ((?:$config{package_name_re}\/)?
+                   \S+)\s*$]ix) {
         $ok++;
         $ref= $1;
         $version= $2;
@@ -616,7 +616,7 @@ END
    }
     elsif (m[^notfixed\s+\#?(-?\d+)\s+
             ((?:$config{package_name_re}\/)?
-                 $config{package_version_re})\s*$]ix) {
+                 \S+)\s*$]ix) {
         $ok++;
         $ref= $1;
         $version= $2;
diff --git a/templates/en_US/mail/invalid_version.tmpl b/templates/en_US/mail/invalid_version.tmpl
new file mode 100644 (file)
index 0000000..1bddeab
--- /dev/null
@@ -0,0 +1,9 @@
+
+Your message had a Version: pseudo-header with an invalid package
+version:
+
+{$version}
+
+please either use found or fixed to the control server with a correct
+version, or reply to this report indicating the correct version so the
+maintainer (or someone else) can correct it for you.