admin: distfiles/specparser.pl - allow repeated SourceN + md5

sparky sparky at pld-linux.org
Mon Mar 12 21:47:36 CET 2007


Author: sparky                       Date: Mon Mar 12 20:47:36 2007 GMT
Module: admin                         Tag: HEAD
---- Log message:
- allow repeated SourceN + md5

---- Files affected:
admin/distfiles:
   specparser.pl (1.12 -> 1.13) 

---- Diffs:

================================================================
Index: admin/distfiles/specparser.pl
diff -u admin/distfiles/specparser.pl:1.12 admin/distfiles/specparser.pl:1.13
--- admin/distfiles/specparser.pl:1.12	Mon Dec 18 12:57:40 2006
+++ admin/distfiles/specparser.pl	Mon Mar 12 21:47:30 2007
@@ -105,13 +105,13 @@
   while (<F>) {
     chomp;
     if (/^\s*\%(define|global)\s+([^\s]+)\s+([^\s].*)$/) {
-     define($2, $3);
+      define($2, $3);
     } elsif (/^Version\s*:\s*(.*)/i) {
       define("version", $1);
     } elsif (/^Name\s*:\s*(.*)/i) {
       define("name", $1);
-    } elsif (/^Source(\d+)\s*:\s*(.*)/i) {
-      define("source_$1", expand($2));
+    #} elsif (/^Source(\d+)\s*:\s*(.*)/i) {
+    #  define("source_$1", expand($2));
     } elsif (/^Patch(\d+)\s*:\s*(.*)/i) {
       define("patch_$1", expand($2));
     } elsif (/^NoSource\s*:\s*(\d+)\s*$/i) {
@@ -124,15 +124,20 @@
 sub print_md5($)
 {
   open(F, "< $_[0]") or die;
+  my $sourceno = undef;
+  my $source = undef;
   while (<F>) {
     chomp;
-    if (/^\s*#\s*source(\d+)-md5\s*:\s*([a-f0-9]{32})/i) {
+    if (/^Source(\d+)\s*:\s*(.*)/i) {
+      $sourceno = $1;
+      $source = expand($2);
+    } elsif (/^\s*#\s*source(\d+)-md5\s*:\s*([a-f0-9]{32})/i) {
       my $no = $1;
       my $md5 = $2;
       if (defined $macro{"no_source_$no"}) {
         error("both NoSource: $no and md5 given");
-      } elsif (defined $macro{"source_$no"}) {
-        my $s = $macro{"source_$no"};
+      } elsif (defined $sourceno and ($sourceno == $no)) {
+        my $s = $source;
 	if ($s =~ /^([a-z0-9A-Z:\=\?\@\+\~\.\-\/_]|\%[0-9])+$/) {
 	  if ($s =~ /^(ftp|http|https):\/\//) {
 	    if ($s =~ /\/$/) {
@@ -152,9 +157,13 @@
 	} else {
 	  error("source $no url $s is ill-formatted");
 	}
+      } elsif (defined $sourceno) {
+        error("found md5 for source $no, but last defined source is $sourceno");
       } else {
         error("source $no not defined");
       }
+      $sourceno = undef;
+      $source = undef;
     }
   }
   close(F);
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/admin/distfiles/specparser.pl?r1=1.12&r2=1.13&f=u



More information about the pld-cvs-commit mailing list