/[smeserver]/builds_bin/checkrpms
ViewVC logotype

Diff of /builds_bin/checkrpms

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

Revision 1.7 by slords, Fri Apr 27 21:38:49 2007 UTC Revision 1.18 by slords, Mon Jun 4 16:39:15 2007 UTC
# Line 7  use Data::Dumper; Line 7  use Data::Dumper;
7  use Getopt::Std;  use Getopt::Std;
8    
9  my %opts;  my %opts;
10  getopts( "s:", \%opts );  getopts( "als:", \%opts );
11  my $src = $opts{s} || '/builds/RPMS';  my $src = $opts{s} || '/builds/RPMS';
12    
13  my $rpm_flags =  RPM2->vsf_nodsa;  my $centosrel = '4';
14  my @repositories = qw(  my $fedorarel = '3';
15          /mirrors/centos/4/fasttrack/i386/RPMS/  my $builds = '/builds/rpms';
16          /mirrors/centos/4/updates/i386/RPMS/  my $arch = `uname -i`;
17          /mirrors/centos/4/os/i386/CentOS/RPMS/  chomp $arch;
18          /mirrors/centos/4/extras/i386/RPMS/  
19          /mirrors/rpmforge/dag/redhat/el4/en/i386/dag/RPMS/  my $rpm_flags = RPM2->vsf_nodsaheader | RPM2->vsf_nodsa;
20          /mirrors/atrpms/el4-i386/atrpms/stable/  my @repos = (
21          /mirrors/rpmforge/dag/dries/redhat/el4/en/i386/RPMS.dries/                "/mirrors/centos/$centosrel/fasttrack/$arch/RPMS",
22          /mirrors/fedora-legacy/fedora/3/updates/i386/                "/mirrors/centos/$centosrel/updates/$arch/RPMS",
23          /mirrors/fedora-legacy/fedora/3/os/i386/                "/mirrors/centos/$centosrel/os/$arch/CentOS/RPMS",
24          /builds/rpms/RPMS/i686/                "/mirrors/centos/$centosrel/os/$arch/SME/RPMS",
25          /builds/rpms/RPMS/i586/                "/mirrors/centos/$centosrel/os/$arch/RPMS",
26          /builds/rpms/RPMS/i386/                "/mirrors/centos/$centosrel/os/$arch/CentOS",
27          /builds/rpms/RPMS/noarch/                "/mirrors/centos/$centosrel/os/$arch/SME",
28          );                "/mirrors/centos/$centosrel/extras/$arch/RPMS",
29                  "/mirrors/fedora/epel/$centosrel/$arch",
30                  "/mirrors/rpmforge/dag/redhat/el$centosrel/en/$arch/dag/RPMS",
31                  "/mirrors/atrpms/el$centosrel-$arch/atrpms/stable",
32                  "/mirrors/atrpms/el$centosrel-$arch/atrpms/testing",
33                  "/mirrors/fedora/core/updates/$fedorarel/$arch",
34                  "/mirrors/fedora/core/$fedorarel/$arch/os/Fedora/RPMS",
35                  "/mirrors/fedora/extras/$fedorarel/$arch",
36                  "$builds/RPMS/i686",
37                  "$builds/RPMS/i586",
38                  "$builds/RPMS/$arch",
39                  "$builds/RPMS/noarch",
40                );
41    
42  opendir RPMS, $src or die "Couldn't opendir $src";  opendir RPMS, $src or die "Couldn't opendir $src";
43  my %rpms = map { my $x = RPM2->open_package("$src/$_", $rpm_flags); $x->tag('NAME') => $x; } grep { /\.rpm$/ } readdir RPMS;  my %rpms = map { my $x = RPM2->open_package("$src/$_", $rpm_flags); $x->tag('NAME') => $x; } grep { /\.rpm$/ } readdir RPMS;
44  closedir RPMS;  closedir RPMS;
45    
46  my %repos;  my %repos;
47  foreach my $repo (reverse @repositories)  foreach my $repo (reverse @repos)
48  {  {
49      my %temp_repo = map { $_ => $repo } grep { /\.rpm$/ } readdir RPMS if ( opendir RPMS, $repo );      my %temp_repo = map { $_ => $repo } grep { /\.rpm$/ } readdir RPMS if ( opendir RPMS, $repo );
50      closedir RPMS;      closedir RPMS;
# Line 49  foreach my $rpm ( sort keys %rpms ) Line 61  foreach my $rpm ( sort keys %rpms )
61      foreach my $file ( grep { /^$rpmfix-[0-9].*\.rpm$/ } keys %repos )      foreach my $file ( grep { /^$rpmfix-[0-9].*\.rpm$/ } keys %repos )
62      {      {
63          $header = RPM2->open_package("$repos{$file}/$file", $rpm_flags);          $header = RPM2->open_package("$repos{$file}/$file", $rpm_flags);
64          if ($header ge $rpms{$rpm} || $header->filename =~ m#/centos/[\d.]+/(os|updates|fasttrack|extras)/#i)          if ($header ge $rpms{$rpm} || $header->filename =~ m#/centos/[\d.]+/(os|updates|fasttrack|extras)/#i || $opts{a})
65          {          {
66              push @headers, $header;              push @headers, $header;
67          }          }
68      }      }
69      @headers = reverse sort { $a cmp $b } @headers;      @headers = reverse sort { $a cmp $b } @headers;
70      if (grep { $_->filename =~ m#/centos/[\d.]+/(updates|fasttrack)/#i } @headers)      if (grep { $_->filename =~ m#/centos/[\d.]+/(os|updates|fasttrack|extras)/#i } @headers)
71      {      {
72          @headers = grep { $_->filename !~ m#/centos/[\d.]+/os/#i || $_ eq $rpms{$rpm} } @headers;          @headers = grep { $_->filename !~ m#/fedora/#i || $_->filename =~ m#/epel/#i || $_ eq $rpms{$rpm} } @headers;
73      }      }
74      if (grep { $_->filename =~ m#/centos/[\d.]+/(os|updates|fasttrack|extras)/#i || $_->filename =~ m#/dag/[^d]#i } @headers)      unless ($opts{a}) {
75      {          if (grep { $_->filename =~ m#/centos/[\d.]+/(updates|fasttrack)/#i } @headers)
76          @headers = grep { $_->filename !~ m#/atrpms/#i || $_ eq $rpms{$rpm} } @headers;          {
77          @headers = grep { $_->filename !~ m#/fedora/#i || $_ eq $rpms{$rpm} } @headers;              @headers = grep { $_->filename !~ m#/centos/[\d.]+/os/#i || $_ eq $rpms{$rpm} } @headers;
78            }
79            if (grep { $_->filename =~ m#/centos/[\d.]+/(os|updates|fasttrack|extras)/#i || $_->filename =~ m#/(dag|epel)/[^d]#i } @headers)
80            {
81                @headers = grep { $_->filename !~ m#/atrpms/#i || $_ eq $rpms{$rpm} } @headers;
82            }
83      }      }
84      if ($#headers < 0)      if ($#headers < 0)
85      {      {
# Line 71  foreach my $rpm ( sort keys %rpms ) Line 88  foreach my $rpm ( sort keys %rpms )
88      }      }
89      elsif ( $headers[0]->filename !~ m#/centos/[\d.]+/(os|updates|fastrrack|extras)/#i  || $headers[0] ne $rpms{$rpm} )      elsif ( $headers[0]->filename !~ m#/centos/[\d.]+/(os|updates|fastrrack|extras)/#i  || $headers[0] ne $rpms{$rpm} )
90      {      {
91            next if $headers[0] eq $rpms{$rpm} && $opts{l};
92          if (grep { $_ ne $rpms{$rpm} } @headers)          if (grep { $_ ne $rpms{$rpm} } @headers)
93          {          {
94              print "$rpm\n";              print "$rpm\n";
# Line 80  foreach my $rpm ( sort keys %rpms ) Line 98  foreach my $rpm ( sort keys %rpms )
98                  $path =~ s@^(.*)/.*@$1@;                  $path =~ s@^(.*)/.*@$1@;
99                  my $filename = $rpms{$rpm}->filename;                  my $filename = $rpms{$rpm}->filename;
100                  $filename =~ s@^.*/(.*)@$1@;                  $filename =~ s@^.*/(.*)@$1@;
101                  print " " . ($header eq $rpms{$rpm} ? "** " : "-- ") . $header->as_nvre . " ($path)\n";                  print " " . ( $header eq $rpms{$rpm} ? "** " : ( $path =~ m#/centos/# ? "-- " : ".. " ) ) . $header->as_nvre . " ($path)\n";
102                  #print "     - rm -f $src/$filename; cp ". $header->filename . " $src\n";                  #print "     - rm -f $src/$filename; cp ". $header->filename . " $src\n";
103                    last if $header eq $rpms{$rpm}  && $opts{l};
104              }              }
105          }          }
106      }      }


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed