admin: distfiles/file-fetcher.pl, distfiles/specparser.pl - :retab with :se...
glen
glen at pld-linux.org
Wed Dec 8 20:40:55 CET 2010
Author: glen Date: Wed Dec 8 19:40:55 2010 GMT
Module: admin Tag: HEAD
---- Log message:
- :retab with :set et
---- Files affected:
admin/distfiles:
file-fetcher.pl (1.53 -> 1.54) , specparser.pl (1.23 -> 1.24)
---- Diffs:
================================================================
Index: admin/distfiles/file-fetcher.pl
diff -u admin/distfiles/file-fetcher.pl:1.53 admin/distfiles/file-fetcher.pl:1.54
--- admin/distfiles/file-fetcher.pl:1.53 Sun Apr 11 13:45:34 2010
+++ admin/distfiles/file-fetcher.pl Wed Dec 8 20:40:50 2010
@@ -49,7 +49,7 @@
$requester = <F>;
chomp $requester;
$requester =~ /^[a-zA-Z_0-9 at .-]+$/
- or die "$file: evil requester: $requester";
+ or die "$file: evil requester: $requester";
$req_login = "";
$requester =~ /^([^@]+)\@/ and $req_login = $1;
$req_login =~ /^[a-z0-9A-Z_.]+$/ or die "$file: evil requester $requester";
@@ -68,13 +68,13 @@
}
if (/^([a-f0-9]{32})\s+((ftp|http|https|no-url|no-url-copy):\/\/([a-z0-9A-Z;:\=\?&\@\+\~\.,\-\/_]|\%[0-9])+(#\/[a-zA-Z0-9\._-]+)?)\s*$/) {
if (/\/$/) {
- $problems .= "$file: cannot fetch dir";
+ $problems .= "$file: cannot fetch dir";
} else {
- push @md5, $1;
- push @url, $2;
+ push @md5, $1;
+ push @url, $2;
}
} else {
- $problems .= "FILE: $file: corrupted";
+ $problems .= "FILE: $file: corrupted";
}
}
close(F);
@@ -233,8 +233,8 @@
if (got_on_distfiles($md5, $url)) {
$normal_out .=
- "ALREADY GOT: $url\n" .
- "\t$md5 " . basename($url) . "\n";
+ "ALREADY GOT: $url\n" .
+ "\t$md5 " . basename($url) . "\n";
make_src_symlink($md5, $url);
return;
}
================================================================
Index: admin/distfiles/specparser.pl
diff -u admin/distfiles/specparser.pl:1.23 admin/distfiles/specparser.pl:1.24
--- admin/distfiles/specparser.pl:1.23 Tue Apr 6 21:08:50 2010
+++ admin/distfiles/specparser.pl Wed Dec 8 20:40:50 2010
@@ -24,108 +24,108 @@
sub next_spec($)
{
- $spec = shift;
- @spec = ();
- $base_spec = $spec;
- $base_spec =~ s|.*/||;
+ $spec = shift;
+ @spec = ();
+ $base_spec = $spec;
+ $base_spec =~ s|.*/||;
}
sub error($)
{
- print_once( "ERROR: $base_spec: $_[0]" );
+ print_once( "ERROR: $base_spec: $_[0]" );
}
sub warning($)
{
- print "ERROR: $base_spec: $_[0]\n";
+ print "ERROR: $base_spec: $_[0]\n";
}
sub trim_spaces($)
{
- my $v = shift;
-
- $v =~ s/\s+$//;
- $v =~ s/^\s+//;
-
- return $v;
+ my $v = shift;
+
+ $v =~ s/\s+$//;
+ $v =~ s/^\s+//;
+
+ return $v;
}
# expand macros in string
sub expand($$) # {{{
{
- my $v = trim_spaces(shift);
- my $macrotree = shift;
- my $cnt = 20;
-
- while ($v =~ /\%\{([^\}]+)\}/) {
- my $value;
- if (defined $macrotree->{$1}) {
- $value = $macrotree->{$1};
- } else {
- error("undefined macro $1");
- $value = "UNDEFINED";
- return undef;
- }
- $v =~ s/\%\{([^\}]+)\}/$value/;
-
- return $v if (length $v > 1000 or $cnt-- <= 0)
- }
-
- while ($v =~ s/\%\(\s*echo\s+([^\|]+?)\s*\|\s*tr\s*(-d|)\s+([^\)]+?)\s*\)/\@\@tr-me\@\@/) {
- my ($what, $d_opt, $how) = ($1, $2, $3);
- my ($from, $to) = ($how, "");
- ($from, $to) = ($1, $2)
- if $how =~ /^([^\s]+)\s+([^\s]+)$/;
- if ($d_opt and $to ne "") {
- error("tr -d with second string)");
- } elsif (($from . $to) =~ /^[a-zA-Z0-9\+_\-\.]+$/) {
- if ($d_opt) {
- eval "\$what =~ tr/$from//d;";
- } else {
- eval "\$what =~ tr/$from/$to/;";
- }
- } else {
- error("illegal characters in tr string(s) '$from' '$to'");
- }
- $v =~ s/\@\@tr-me\@\@/$what/;
-
- return $v if (length $v > 1000 or $cnt-- <= 0)
- }
-
- error("unexpanded macros in $v")
- if ($v =~ /\%[^0-9]/);
-
- return $v;
+ my $v = trim_spaces(shift);
+ my $macrotree = shift;
+ my $cnt = 20;
+
+ while ($v =~ /\%\{([^\}]+)\}/) {
+ my $value;
+ if (defined $macrotree->{$1}) {
+ $value = $macrotree->{$1};
+ } else {
+ error("undefined macro $1");
+ $value = "UNDEFINED";
+ return undef;
+ }
+ $v =~ s/\%\{([^\}]+)\}/$value/;
+
+ return $v if (length $v > 1000 or $cnt-- <= 0)
+ }
+
+ while ($v =~ s/\%\(\s*echo\s+([^\|]+?)\s*\|\s*tr\s*(-d|)\s+([^\)]+?)\s*\)/\@\@tr-me\@\@/) {
+ my ($what, $d_opt, $how) = ($1, $2, $3);
+ my ($from, $to) = ($how, "");
+ ($from, $to) = ($1, $2)
+ if $how =~ /^([^\s]+)\s+([^\s]+)$/;
+ if ($d_opt and $to ne "") {
+ error("tr -d with second string)");
+ } elsif (($from . $to) =~ /^[a-zA-Z0-9\+_\-\.]+$/) {
+ if ($d_opt) {
+ eval "\$what =~ tr/$from//d;";
+ } else {
+ eval "\$what =~ tr/$from/$to/;";
+ }
+ } else {
+ error("illegal characters in tr string(s) '$from' '$to'");
+ }
+ $v =~ s/\@\@tr-me\@\@/$what/;
+
+ return $v if (length $v > 1000 or $cnt-- <= 0)
+ }
+
+ error("unexpanded macros in $v")
+ if ($v =~ /\%[^0-9]/);
+
+ return $v;
} # }}}
sub preparse_spec($) # {{{
{
- @spec = ("");
+ @spec = ("");
- open(F, "< $_[0]") or die("failed opening: " . $_[0]);
- while (<F>) {
- chomp;
- if (/^\s*(\%(description|package|prep|install|pre|post|files)|BuildRoot|URL)/) {
- last;
- } elsif (/^\s*(\%if.*|\%else|\%endif|\%define\s+.*|Version.*|Name.*)\s*$/) {
- $_ = $1;
- if ($spec[$#spec] =~ /\%if/) {
- if (/\%else/) {
- next; # don't include empty %if-%else
- } elsif (/\%endif/) {
- # remove empty %if-%endif
- pop @spec;
- next;
- }
- }
- push @spec, $_;
- } elsif (/^NoSource\s*:\s*(\d+)\s*$/i) {
- $no_source{$1} = 1;
- }
- }
- close(F);
+ open(F, "< $_[0]") or die("failed opening: " . $_[0]);
+ while (<F>) {
+ chomp;
+ if (/^\s*(\%(description|package|prep|install|pre|post|files)|BuildRoot|URL)/) {
+ last;
+ } elsif (/^\s*(\%if.*|\%else|\%endif|\%define\s+.*|Version.*|Name.*)\s*$/) {
+ $_ = $1;
+ if ($spec[$#spec] =~ /\%if/) {
+ if (/\%else/) {
+ next; # don't include empty %if-%else
+ } elsif (/\%endif/) {
+ # remove empty %if-%endif
+ pop @spec;
+ next;
+ }
+ }
+ push @spec, $_;
+ } elsif (/^NoSource\s*:\s*(\d+)\s*$/i) {
+ $no_source{$1} = 1;
+ }
+ }
+ close(F);
- shift @spec;
+ shift @spec;
} # }}}
@@ -134,147 +134,147 @@
sub cont($$);
sub cont($$) # {{{
{
- my ($spec, $macros) = @_;
- local $_;
- while ($_ = shift @{$spec}) {
- if (0 <= index $_, '%if') { # if, ifarch, ifos
-
- # split spec parsing
- my @speccopy = @{$spec};
- my %macroscopy = %{$macros};
- cont(\@speccopy, \%macroscopy);
-
- my $level = 0;
- while ($_ = shift @{$spec}) {
- if ($level <= 0 and ($_ eq '%else' or $_ eq '%endif')) {
- last;
- } elsif (0 <= index $_, '%if') {
- $level++;
- } elsif ($_ eq '%endif') {
- $level--;
- }
- }
-
- # continue parsing
-
- } elsif ($_ eq '%else') {
-
- # %else happens only when %if was interpreted
- # so skip until %endif
-
- my $level = 0;
- while ($_ = shift @{$spec}) {
- if ($level <= 0 and $_ eq '%endif') {
- last;
- } elsif (0 <= index $_, '%if') {
- $level++;
- } elsif ($_ eq '%endif') {
- $level--;
- }
- }
-
- } elsif (/^\s*\%(define|global)\s+([^\s]+)\s+([^\s].*?)\s*$/) {
- $macros->{$2} = $3;
-
- } elsif (/^Version\s*:\s*(.*?)\s*$/i) {
- $macros->{"version"} = $1;
- } elsif (/^Name\s*:\s*(.*?)\s*$/i) {
- $macros->{"name"} = $1;
- } elsif (!/\%endif/) {
- warn "unrecognised line: $_\n";
- }
- }
-
- # the end, yuppie !
- foreach my $s (@sources) {
- my $src = expand( $s->[2], $macros );
- if (defined $src) {
- our %tried;
- unless (exists $tried{$src}) {
- print_source( $s->[0], $s->[1], $src );
- $tried{$src} = 1;
- }
- }
- }
-
- if (++$total > 10000) {
- error("maximum number of bcond posibilities exceeded");
- exit 0;
- }
+ my ($spec, $macros) = @_;
+ local $_;
+ while ($_ = shift @{$spec}) {
+ if (0 <= index $_, '%if') { # if, ifarch, ifos
+
+ # split spec parsing
+ my @speccopy = @{$spec};
+ my %macroscopy = %{$macros};
+ cont(\@speccopy, \%macroscopy);
+
+ my $level = 0;
+ while ($_ = shift @{$spec}) {
+ if ($level <= 0 and ($_ eq '%else' or $_ eq '%endif')) {
+ last;
+ } elsif (0 <= index $_, '%if') {
+ $level++;
+ } elsif ($_ eq '%endif') {
+ $level--;
+ }
+ }
+
+ # continue parsing
+
+ } elsif ($_ eq '%else') {
+
+ # %else happens only when %if was interpreted
+ # so skip until %endif
+
+ my $level = 0;
+ while ($_ = shift @{$spec}) {
+ if ($level <= 0 and $_ eq '%endif') {
+ last;
+ } elsif (0 <= index $_, '%if') {
+ $level++;
+ } elsif ($_ eq '%endif') {
+ $level--;
+ }
+ }
+
+ } elsif (/^\s*\%(define|global)\s+([^\s]+)\s+([^\s].*?)\s*$/) {
+ $macros->{$2} = $3;
+
+ } elsif (/^Version\s*:\s*(.*?)\s*$/i) {
+ $macros->{"version"} = $1;
+ } elsif (/^Name\s*:\s*(.*?)\s*$/i) {
+ $macros->{"name"} = $1;
+ } elsif (!/\%endif/) {
+ warn "unrecognised line: $_\n";
+ }
+ }
+
+ # the end, yuppie !
+ foreach my $s (@sources) {
+ my $src = expand( $s->[2], $macros );
+ if (defined $src) {
+ our %tried;
+ unless (exists $tried{$src}) {
+ print_source( $s->[0], $s->[1], $src );
+ $tried{$src} = 1;
+ }
+ }
+ }
+
+ if (++$total > 10000) {
+ error("maximum number of bcond posibilities exceeded");
+ exit 0;
+ }
} # }}}
sub print_once($)
{
- our %printed;
- my $l = shift;
- unless (exists $printed{$l}) {
- print $l . "\n";
- $printed{$l} = 1;
- }
+ our %printed;
+ my $l = shift;
+ unless (exists $printed{$l}) {
+ print $l . "\n";
+ $printed{$l} = 1;
+ }
}
sub print_source($$$) # {{{
{
- my ($no, $md5, $s) = @_;
+ my ($no, $md5, $s) = @_;
- if ($s =~ /^([a-z0-9A-Z;:\=\?&\@\+\~\.,\-\/_]|\%[0-9])+(#\/[a-zA-Z0-9\._-]+)?$/) {
- if ($s =~ /^(ftp|http|https):\/\//) {
- if ($s =~ /\/$/) {
- error("source $no ($s) is directory");
- } else {
- if ($s =~ /:\/\/distfiles\.pld-linux\.org\/src/) {
- $s =~ s|.*/||;
- print_once( "$md5 no-url-copy://$s" );
- } else {
- print_once( "$md5 $s" );
- }
- }
- } else {
- $s =~ s|.*/||;
- print_once( "$md5 no-url://$s");
- }
- } else {
- error("source $no url $s is ill-formatted");
- }
+ if ($s =~ /^([a-z0-9A-Z;:\=\?&\@\+\~\.,\-\/_]|\%[0-9])+(#\/[a-zA-Z0-9\._-]+)?$/) {
+ if ($s =~ /^(ftp|http|https):\/\//) {
+ if ($s =~ /\/$/) {
+ error("source $no ($s) is directory");
+ } else {
+ if ($s =~ /:\/\/distfiles\.pld-linux\.org\/src/) {
+ $s =~ s|.*/||;
+ print_once( "$md5 no-url-copy://$s" );
+ } else {
+ print_once( "$md5 $s" );
+ }
+ }
+ } else {
+ $s =~ s|.*/||;
+ print_once( "$md5 no-url://$s");
+ }
+ } else {
+ error("source $no url $s is ill-formatted");
+ }
} # }}}
sub add_md5_to_print($) # {{{
{
- open(F, "< $_[0]") or die("failed opening: " . $_[0]);
- my @sourcemap = ();
- while (<F>) {
- chomp;
- if (/^Source(\d+)\s*:\s*(.*)/i) {
- my $sourceno = $1;
- my $source = $2;
- # master.dl is outdated currently
- # $source =~ s/dl.sourceforge.net/master.dl.sourceforge.net/;
- $sourcemap[$sourceno] = $source;
- } elsif (/^\s*#\s*source(\d+)-md5\s*:\s*([a-f0-9]{32})/i) {
- my $no = $1;
- my $md5 = $2;
- if (defined $no_source{$no}) {
- error("both NoSource: $no and md5 given");
- } elsif (defined $sourcemap[$no]) {
- my $source = $sourcemap[$no];
- push @sources, [$no, $md5, $source];
- } else {
- error("source $no not defined (# SourceN-md5: has to be placed just after SourceN:)");
- }
- } elsif (/^\s*BuildRequires:\s*digest\(%SOURCE(\d+)\)\s*=\s*([a-f0-9]{32})/i) {
- my $no = $1;
- my $md5 = $2;
- if (defined $no_source{$no}) {
- error("both NoSource: $no and md5 given");
- } elsif (defined $sourcemap[$no]) {
- my $source = $sourcemap[$no];
- push @sources, [$no, $md5, $source];
- } else {
- error("source $no not defined (# Source digest has to be placed after SourceN:)");
- }
- }
- }
- close(F);
+ open(F, "< $_[0]") or die("failed opening: " . $_[0]);
+ my @sourcemap = ();
+ while (<F>) {
+ chomp;
+ if (/^Source(\d+)\s*:\s*(.*)/i) {
+ my $sourceno = $1;
+ my $source = $2;
+ # master.dl is outdated currently
+ # $source =~ s/dl.sourceforge.net/master.dl.sourceforge.net/;
+ $sourcemap[$sourceno] = $source;
+ } elsif (/^\s*#\s*source(\d+)-md5\s*:\s*([a-f0-9]{32})/i) {
+ my $no = $1;
+ my $md5 = $2;
+ if (defined $no_source{$no}) {
+ error("both NoSource: $no and md5 given");
+ } elsif (defined $sourcemap[$no]) {
+ my $source = $sourcemap[$no];
+ push @sources, [$no, $md5, $source];
+ } else {
+ error("source $no not defined (# SourceN-md5: has to be placed just after SourceN:)");
+ }
+ } elsif (/^\s*BuildRequires:\s*digest\(%SOURCE(\d+)\)\s*=\s*([a-f0-9]{32})/i) {
+ my $no = $1;
+ my $md5 = $2;
+ if (defined $no_source{$no}) {
+ error("both NoSource: $no and md5 given");
+ } elsif (defined $sourcemap[$no]) {
+ my $source = $sourcemap[$no];
+ push @sources, [$no, $md5, $source];
+ } else {
+ error("source $no not defined (# Source digest has to be placed after SourceN:)");
+ }
+ }
+ }
+ close(F);
} # }}}
next_spec(shift);
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/admin/distfiles/file-fetcher.pl?r1=1.53&r2=1.54&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/admin/distfiles/specparser.pl?r1=1.23&r2=1.24&f=u
More information about the pld-cvs-commit
mailing list