diff options
author | Pavol Rusnak <stick@gk2.sk> | 2009-12-05 01:05:36 +0100 |
---|---|---|
committer | Pavol Rusnak <stick@gk2.sk> | 2009-12-05 01:05:36 +0100 |
commit | e7cba6bfd6ad18abb193c29243e79f25cd7f97b4 (patch) | |
tree | aae1cd754a28956ac7d451cb357df20e4f8e58ba /createrepomddeps | |
parent | be95775fa97b235fa42bdbb0aae5e1778b623e39 (diff) | |
download | build-e7cba6bfd6ad18abb193c29243e79f25cd7f97b4.tar.gz build-e7cba6bfd6ad18abb193c29243e79f25cd7f97b4.tar.bz2 build-e7cba6bfd6ad18abb193c29243e79f25cd7f97b4.zip |
fix whitespace
Diffstat (limited to 'createrepomddeps')
-rwxr-xr-x | createrepomddeps | 457 |
1 files changed, 228 insertions, 229 deletions
diff --git a/createrepomddeps b/createrepomddeps index 3068036..a1fec28 100755 --- a/createrepomddeps +++ b/createrepomddeps @@ -25,41 +25,41 @@ my $opt_bc; my $old_seen = (); my $repomdparser = { - repomd => { - data => { - _start => \&repomd_handle_data_start, - location => { - _start => \&repomd_handle_location, - }, - }, - }, + repomd => { + data => { + _start => \&repomd_handle_data_start, + location => { + _start => \&repomd_handle_location, + }, + }, + }, }; my $primaryparser = { - metadata => { - 'package' => { - _start => \&primary_handle_package_start, - _end => \&primary_handle_package_end, - name => { _text => \&primary_collect_text, _end => \&primary_store_text }, - arch => { _text => \&primary_collect_text, _end => \&primary_store_text }, - version => { _start => \&primary_handle_version }, - 'time' => { _start => \&primary_handle_time }, - format => { - 'rpm:provides' => { 'rpm:entry' => { _start => \&primary_handle_package_provides }, }, - 'rpm:requires' => { 'rpm:entry' => { _start => \&primary_handle_package_requires }, }, - 'rpm:conflicts' => { 'rpm:entry' => { _start => \&primary_handle_package_conflicts }, }, - 'rpm:obsoletes' => { 'rpm:entry' => { _start => \&primary_handle_package_obsoletes }, }, - 'rpm:buildhost' => { _text => \&primary_collect_text, _end => \&primary_store_text }, - 'rpm:sourcerpm' => { _text => \&primary_collect_text, _end => \&primary_store_text }, - file => { - _start => \&primary_handle_file_start, - _text => \&primary_collect_text, - _end => \&primary_handle_file_end - }, - }, - location => { _start => \&primary_handle_package_location }, - }, - }, + metadata => { + 'package' => { + _start => \&primary_handle_package_start, + _end => \&primary_handle_package_end, + name => { _text => \&primary_collect_text, _end => \&primary_store_text }, + arch => { _text => \&primary_collect_text, _end => \&primary_store_text }, + version => { _start => \&primary_handle_version }, + 'time' => { _start => \&primary_handle_time }, + format => { + 'rpm:provides' => { 'rpm:entry' => { _start => \&primary_handle_package_provides }, }, + 'rpm:requires' => { 'rpm:entry' => { _start => \&primary_handle_package_requires }, }, + 'rpm:conflicts' => { 'rpm:entry' => { _start => \&primary_handle_package_conflicts }, }, + 'rpm:obsoletes' => { 'rpm:entry' => { _start => \&primary_handle_package_obsoletes }, }, + 'rpm:buildhost' => { _text => \&primary_collect_text, _end => \&primary_store_text }, + 'rpm:sourcerpm' => { _text => \&primary_collect_text, _end => \&primary_store_text }, + file => { + _start => \&primary_handle_file_start, + _text => \&primary_collect_text, + _end => \&primary_handle_file_end + }, + }, + location => { _start => \&primary_handle_package_location }, + }, + }, }; # [ [tag, \%], ... ] @@ -67,79 +67,79 @@ my @cursor = (); sub repomd_handle_data_start { - my $p = shift; - my $el = shift; + my $p = shift; + my $el = shift; - my $attr = map_attrs(@_); - if($attr->{'type'} ne 'primary') { - pop @cursor; - } + my $attr = map_attrs(@_); + if($attr->{'type'} ne 'primary') { + pop @cursor; + } } sub repomd_handle_location { - my $p = shift; - my $el = shift; + my $p = shift; + my $el = shift; - my $attr = map_attrs(@_); - if(exists $attr->{'href'}) { - push @primaryfiles, { location => $attr->{'href'} }; - } + my $attr = map_attrs(@_); + if(exists $attr->{'href'}) { + push @primaryfiles, { location => $attr->{'href'} }; + } } sub generic_handle_start { - my $p = shift; - my $el = shift; - - if(exists $cursor[-1]->[1]->{$el}) - { - my $h = $cursor[-1]->[1]->{$el}; - push @cursor, [$el, $h]; - if(exists $h->{'_start'}) { - &{$h->{'_start'}}($p, $el, @_); - } - } + my $p = shift; + my $el = shift; + + if(exists $cursor[-1]->[1]->{$el}) + { + my $h = $cursor[-1]->[1]->{$el}; + push @cursor, [$el, $h]; + if(exists $h->{'_start'}) { + &{$h->{'_start'}}($p, $el, @_); + } + } } sub generic_handle_char { - my $p = shift; - my $text = shift; + my $p = shift; + my $text = shift; - my $h = $cursor[-1]->[1]; + my $h = $cursor[-1]->[1]; - if(exists $h->{'_text'}) { - &{$h->{'_text'}}($p, $text); - } + if(exists $h->{'_text'}) { + &{$h->{'_text'}}($p, $text); + } } sub generic_handle_end { - my $p = shift; - my $el = shift; + my $p = shift; + my $el = shift; - if(!defined $cursor[-1]->[0] || $cursor[-1]->[0] eq $el) - { - my $h = $cursor[-1]->[1]; + if(!defined $cursor[-1]->[0] || $cursor[-1]->[0] eq $el) + { + my $h = $cursor[-1]->[1]; - if(exists $h->{'_end'}) { - &{$h->{'_end'}}($p, $el); - } + if(exists $h->{'_end'}) { + &{$h->{'_end'}}($p, $el); + } - pop @cursor; - } + pop @cursor; + } } sub map_attrs { - my %h; - while(@_) { - my $k = shift; - $h{$k} = shift; - } + my %h; + while(@_) { + my $k = shift; + $h{$k} = shift; + } - return \%h; + return \%h; } # expat does not guarantee that character data doesn't get split up @@ -147,10 +147,10 @@ sub map_attrs my $textbuf = ''; sub primary_collect_text { - my $p = shift; - my $text = shift; + my $p = shift; + my $text = shift; - $textbuf .= $text; + $textbuf .= $text; } sub primary_store_text @@ -164,185 +164,184 @@ sub primary_store_text sub primary_handle_package_start { - my $p = shift; - my $el = shift; + my $p = shift; + my $el = shift; - my $attr = map_attrs(@_); + my $attr = map_attrs(@_); - push @packages, { type => $attr->{'type'}, baseurl => $baseurl }; + push @packages, { type => $attr->{'type'}, baseurl => $baseurl }; } sub primary_handle_package_end { - my $p = shift; - my $el = shift; - - if($opt_bc) { - printasbuildcachefile(@packages); - shift @packages; - } elsif ($opt_old) { - foreach my $pkg (@packages) { - my $arch = $pkg->{'arch'}; - $arch = 'src' if $pkg->{'arch'} eq 'nosrc'; - next if ($arch eq 'src' && $opt_nosrc); - if(exists($old_seen->{$pkg->{'name'}}->{$arch})) { - my $pv = $old_seen->{$pkg->{'name'}}->{$arch}->{'ver'}; - my $rv = $pkg->{'ver'}.'-'.$pkg->{'rel'}; - my $vv = Build::Rpm::verscmp($pv, $rv, 0); - if($vv < 0) - { - print $old_seen->{$pkg->{'name'}}->{$arch}->{'loc'}."\n"; - $old_seen->{$pkg->{'name'}}->{$arch}->{'ver'} = $pkg->{'ver'}.'-'.$pkg->{'rel'}; - $old_seen->{$pkg->{'name'}}->{$arch}->{'loc'} = $pkg->{'baseurl'} . $pkg->{'location'}; - } else { - print $pkg->{'baseurl'} . $pkg->{'location'}."\n"; - } - } else { - $old_seen->{$pkg->{'name'}}->{$arch}->{'ver'} = $pkg->{'ver'}.'-'.$pkg->{'rel'}; - $old_seen->{$pkg->{'name'}}->{$arch}->{'loc'} = $pkg->{'baseurl'} . $pkg->{'location'}; - } - } - shift @packages; - } + my $p = shift; + my $el = shift; + + if($opt_bc) { + printasbuildcachefile(@packages); + shift @packages; + } elsif ($opt_old) { + foreach my $pkg (@packages) { + my $arch = $pkg->{'arch'}; + $arch = 'src' if $pkg->{'arch'} eq 'nosrc'; + next if ($arch eq 'src' && $opt_nosrc); + if(exists($old_seen->{$pkg->{'name'}}->{$arch})) { + my $pv = $old_seen->{$pkg->{'name'}}->{$arch}->{'ver'}; + my $rv = $pkg->{'ver'}.'-'.$pkg->{'rel'}; + my $vv = Build::Rpm::verscmp($pv, $rv, 0); + if($vv < 0) + { + print $old_seen->{$pkg->{'name'}}->{$arch}->{'loc'}."\n"; + $old_seen->{$pkg->{'name'}}->{$arch}->{'ver'} = $pkg->{'ver'}.'-'.$pkg->{'rel'}; + $old_seen->{$pkg->{'name'}}->{$arch}->{'loc'} = $pkg->{'baseurl'} . $pkg->{'location'}; + } else { + print $pkg->{'baseurl'} . $pkg->{'location'}."\n"; + } + } else { + $old_seen->{$pkg->{'name'}}->{$arch}->{'ver'} = $pkg->{'ver'}.'-'.$pkg->{'rel'}; + $old_seen->{$pkg->{'name'}}->{$arch}->{'loc'} = $pkg->{'baseurl'} . $pkg->{'location'}; + } + } + shift @packages; + } } sub primary_handle_version { - my $p = shift; - my $el = shift; + my $p = shift; + my $el = shift; - my $attr = map_attrs(@_); - $packages[-1]->{'ver'} = $attr->{'ver'}; - $packages[-1]->{'rel'} = $attr->{'rel'}; + my $attr = map_attrs(@_); + $packages[-1]->{'ver'} = $attr->{'ver'}; + $packages[-1]->{'rel'} = $attr->{'rel'}; } sub primary_handle_time { - my $p = shift; - my $el = shift; + my $p = shift; + my $el = shift; - my $attr = map_attrs(@_); - $packages[-1]->{'filetime'} = $attr->{'file'}; - $packages[-1]->{'buildtime'} = $attr->{'build'}; + my $attr = map_attrs(@_); + $packages[-1]->{'filetime'} = $attr->{'file'}; + $packages[-1]->{'buildtime'} = $attr->{'build'}; } sub primary_handle_package_location { - my $p = shift; - my $el = shift; + my $p = shift; + my $el = shift; - my $attr = map_attrs(@_); - $packages[-1]->{'location'} = $attr->{'href'}; + my $attr = map_attrs(@_); + $packages[-1]->{'location'} = $attr->{'href'}; } sub primary_handle_file_start { - my $p = shift; - my $el = shift; + my $p = shift; + my $el = shift; - my $attr = map_attrs(@_); - if(exists $attr->{'type'}) { - pop @cursor; - } + my $attr = map_attrs(@_); + if(exists $attr->{'type'}) { + pop @cursor; + } } sub primary_handle_file_end { - my $p = shift; - my $text = shift; + my $p = shift; + my $text = shift; - primary_handle_package_deps('provides', 'name', $textbuf); - $textbuf = ''; + primary_handle_package_deps('provides', 'name', $textbuf); + $textbuf = ''; } my %flagmap = ( - EQ => '=', - LE => '<=', - GE => '>=', - GT => '>', - LT => '<', - NE => '!=', + EQ => '=', + LE => '<=', + GE => '>=', + GT => '>', + LT => '<', + NE => '!=', ); sub primary_handle_package_deps { - my $dep = shift; - my $attr = map_attrs(@_); - - if(exists $attr->{'flags'}) { - if(!exists($flagmap{$attr->{'flags'}})) { - print STDERR "bogus relation: ", $attr->{'flags'}, "\n"; - return; - } - $attr->{'flags'} = $flagmap{$attr->{'flags'}}; - } - return if($attr->{'name'} =~ /^rpmlib\(/); - push @{$packages[-1]->{$dep}}, $attr; + my $dep = shift; + my $attr = map_attrs(@_); + + if(exists $attr->{'flags'}) { + if(!exists($flagmap{$attr->{'flags'}})) { + print STDERR "bogus relation: ", $attr->{'flags'}, "\n"; + return; + } + $attr->{'flags'} = $flagmap{$attr->{'flags'}}; + } + return if($attr->{'name'} =~ /^rpmlib\(/); + push @{$packages[-1]->{$dep}}, $attr; } sub primary_handle_package_conflicts { - shift;shift; primary_handle_package_deps('conflicts', @_); + shift;shift; primary_handle_package_deps('conflicts', @_); } sub primary_handle_package_obsoletes { - shift;shift; primary_handle_package_deps('obsoletes', @_); + shift;shift; primary_handle_package_deps('obsoletes', @_); } sub primary_handle_package_requires { - shift;shift; primary_handle_package_deps('requires', @_); + shift;shift; primary_handle_package_deps('requires', @_); } sub primary_handle_package_provides { - shift;shift; primary_handle_package_deps('provides', @_); + shift;shift; primary_handle_package_deps('provides', @_); } sub deps2string { - return join(' ', map { - my $s = $_->{'name'}; - if(exists $_->{'flags'}) { - $s .= ' '.$_->{'flags'}.' '; - $s .= $_->{'epoch'}.':' if(exists $_->{'epoch'} && $_->{'epoch'} != 0); - $s .= $_->{'ver'}; - $s .= '-'.$_->{'rel'} if exists $_->{'rel'}; - } - $s - } @_); + return join(' ', map { + my $s = $_->{'name'}; + if(exists $_->{'flags'}) { + $s .= ' '.$_->{'flags'}.' '; + $s .= $_->{'epoch'}.':' if(exists $_->{'epoch'} && $_->{'epoch'} != 0); + $s .= $_->{'ver'}; + $s .= '-'.$_->{'rel'} if exists $_->{'rel'}; + } + $s + } @_); } sub printasbuildcachefile(@) { - foreach my $pkg (@_) { - next if $pkg->{'arch'} eq 'src' || $pkg->{'arch'} eq 'nosrc'; - my $id = sprintf("%s.%s-%d/%d/%d: ", - $pkg->{'name'}, - $pkg->{'arch'}, - $pkg->{'buildtime'}, - $pkg->{'filetime'}, - 0); - print "F:".$id. $pkg->{'baseurl'} . $pkg->{'location'} . "\n"; - - my $deps = deps2string(@{$pkg->{'provides'}}); - print "P:$id$deps\n"; - - $deps = deps2string(@{$pkg->{'requires'}}); - print "R:$id$deps\n"; - - my $tag = sprintf("%s-%s-%s %s", - $pkg->{'name'}, - $pkg->{'ver'}, - $pkg->{'rel'}, -# $pkg->{'rpm:buildhost'}, - $pkg->{'buildtime'}); - print "I:$id$tag\n"; - } + foreach my $pkg (@_) { + next if $pkg->{'arch'} eq 'src' || $pkg->{'arch'} eq 'nosrc'; + my $id = sprintf("%s.%s-%d/%d/%d: ", + $pkg->{'name'}, + $pkg->{'arch'}, + $pkg->{'buildtime'}, + $pkg->{'filetime'}, + 0); + print "F:".$id. $pkg->{'baseurl'} . $pkg->{'location'} . "\n"; + + my $deps = deps2string(@{$pkg->{'provides'}}); + print "P:$id$deps\n"; + + $deps = deps2string(@{$pkg->{'requires'}}); + print "R:$id$deps\n"; + + my $tag = sprintf("%s-%s-%s %s", + $pkg->{'name'}, + $pkg->{'ver'}, + $pkg->{'rel'}, +# $pkg->{'rpm:buildhost'}, + $pkg->{'buildtime'}); + print "I:$id$tag\n"; + } } - ### main GetOptions ( @@ -354,35 +353,35 @@ GetOptions ( $opt_bc = 1 unless ($opt_dump || $opt_old); my $p = new XML::Parser( - Handlers => { - Start => \&generic_handle_start, - End => \&generic_handle_end, - Char => \&generic_handle_char - }); + Handlers => { + Start => \&generic_handle_start, + End => \&generic_handle_end, + Char => \&generic_handle_char + }); #my $url = '/mounts/mirror/SuSE/ftp.suse.com/pub/suse/update/10.1/'; foreach my $url (@ARGV) { - $url .= '/' unless $url =~ /\/$/; + $url .= '/' unless $url =~ /\/$/; - $baseurl = $url; - @primaryfiles = (); - @cursor = ([undef, $repomdparser]); + $baseurl = $url; + @primaryfiles = (); + @cursor = ([undef, $repomdparser]); - $p->parsefile($url . 'repodata/repomd.xml'); + $p->parsefile($url . 'repodata/repomd.xml'); -# print Dumper(\@primaryfiles); +# print Dumper(\@primaryfiles); - foreach my $f (@primaryfiles) { - @cursor = ([undef, $primaryparser]); + foreach my $f (@primaryfiles) { + @cursor = ([undef, $primaryparser]); - my $u = $url . $f->{'location'}; - $u = 'gzip -cd ' . $u . '|' if ($u =~ /\.gz$/); # XXX + my $u = $url . $f->{'location'}; + $u = 'gzip -cd ' . $u . '|' if ($u =~ /\.gz$/); # XXX - my $fh; - open($fh, $u) or next; - $p->parse($fh); - close($fh); - } + my $fh; + open($fh, $u) or next; + $p->parse($fh); + close($fh); + } } if ($opt_dump) { @@ -394,20 +393,20 @@ if ($opt_dump) { # my $packages = do $rpmdepdump or die $!; # # foreach my $pkg (@$packages) { -# next if exists $packs{$pkg->{'name'}}; -# next unless exists $amap{$pkg->{'arch'}}; -# next if $pkg->{'arch'} eq 'src' || $pkg->{'arch'} eq 'nosrc'; -# next if $pkg->{'location'} =~ /\.(?:patch|delta)\.rpm$/; +# next if exists $packs{$pkg->{'name'}}; +# next unless exists $amap{$pkg->{'arch'}}; +# next if $pkg->{'arch'} eq 'src' || $pkg->{'arch'} eq 'nosrc'; +# next if $pkg->{'location'} =~ /\.(?:patch|delta)\.rpm$/; # -# my $pa = $pkg->{'name'}.'.'.$pkg->{'arch'}; -# $packs{$pkg->{'name'}} = $pa; -# $fn{$pa} = $pkg->{'baseurl'}.$pkg->{'location'}; -# my $r = {}; -# # flags and version ignored -# my @pr = map { $_->{'name'} } @{$pkg->{'provides'}}; -# my @re = map { $_->{'name'} } @{$pkg->{'requires'}}; -# $r->{'provides'} = \@pr; -# $r->{'requires'} = \@re; -# $repo{$pkg->{'name'}} = $r; +# my $pa = $pkg->{'name'}.'.'.$pkg->{'arch'}; +# $packs{$pkg->{'name'}} = $pa; +# $fn{$pa} = $pkg->{'baseurl'}.$pkg->{'location'}; +# my $r = {}; +# # flags and version ignored +# my @pr = map { $_->{'name'} } @{$pkg->{'provides'}}; +# my @re = map { $_->{'name'} } @{$pkg->{'requires'}}; +# $r->{'provides'} = \@pr; +# $r->{'requires'} = \@re; +# $repo{$pkg->{'name'}} = $r; # } #} |