/[smeserver]/builds_bin/checkrpms
ViewVC logotype

Contents of /builds_bin/checkrpms

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


Revision 1.5 - (show annotations) (download)
Tue Jan 16 18:18:19 2007 UTC (17 years, 10 months ago) by slords
Branch: MAIN
Changes since 1.4: +4 -4 lines
Update tools

1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use RPM2;
6 use Data::Dumper;
7
8 my $rpm_flags = RPM2->vsf_nodsa;
9 my $build_dir = "/builds/RPMS";
10 my @repositories = qw(
11 /mirrors/centos/4/fasttrack/i386/RPMS/
12 /mirrors/centos/4/updates/i386/RPMS/
13 /mirrors/centos/4/os/i386/CentOS/RPMS/
14 /mirrors/centos/4/extras/i386/RPMS/
15 /mirrors/rpmforge/dag/redhat/el4/en/i386/dag/RPMS/
16 /mirrors/atrpms/el4-i386/atrpms/stable/
17 /mirrors/rpmforge/dag/dries/redhat/el4/en/i386/RPMS.dries/
18 /mirrors/fedora-legacy/fedora/3/updates/i386/
19 /mirrors/fedora-legacy/fedora/3/os/i386/
20 /builds/rpms/RPMS/i686/
21 /builds/rpms/RPMS/i586/
22 /builds/rpms/RPMS/i386/
23 /builds/rpms/RPMS/noarch/
24 );
25
26 opendir RPMS, $build_dir or die "Couldn't opendir $build_dir";
27 my %rpms = map { my $x = RPM2->open_package("$build_dir/$_", $rpm_flags); $x->tag('NAME') => $x; } grep { /\.rpm$/ } readdir RPMS;
28 closedir RPMS;
29
30 my %repos;
31 foreach my $repo (reverse @repositories)
32 {
33 my %temp_repo = map { $_ => $repo } grep { /\.rpm$/ } readdir RPMS if ( opendir RPMS, $repo );
34 closedir RPMS;
35 %repos = (%repos, %temp_repo);
36 }
37
38 foreach my $rpm ( sort keys %rpms )
39 {
40 my (@headers, $header);
41
42 my $rpmfix = $rpm;
43 $rpmfix =~ s@\+@\\+@g;
44 @headers = ();
45 foreach my $file ( grep { /^$rpmfix-[0-9].*\.rpm$/ } keys %repos )
46 {
47 $header = RPM2->open_package("$repos{$file}/$file", $rpm_flags);
48 if ($header ge $rpms{$rpm} || $header->filename =~ m#/centos/[\d.]+/(os|updates|fasttrack|extras)/#)
49 {
50 push @headers, $header;
51 }
52 }
53 @headers = reverse sort { $a cmp $b } @headers;
54 if (grep { $_->filename =~ m#/centos/[\d.]+/(updates|fasttrack)/# } @headers)
55 {
56 @headers = grep { $_->filename !~ m#/centos/[\d.]+/os/# || $_ eq $rpms{$rpm} } @headers;
57 }
58 if (grep { $_->filename =~ m#/centos/[\d.]+/(os|updates|fasttrack|extras)/# || $_->filename =~ m#/dag/[^d]# } @headers)
59 {
60 @headers = grep { $_->filename !~ m#/atrpms/# || $_ eq $rpms{$rpm} } @headers;
61 @headers = grep { $_->filename !~ m#/fedora/# || $_ eq $rpms{$rpm} } @headers;
62 @headers = grep { $_->filename !~ m#/fedora-legacy/# || $_ eq $rpms{$rpm} } @headers;
63 }
64 if ($#headers < 0)
65 {
66 print "$rpm\n";
67 print " ***** can't find $rpm in any repository *****\n";
68 }
69 elsif ( $headers[0]->filename !~ m#/centos/[\d.]+/(os|updates|fastrrack|extras)/# || $headers[0] ne $rpms{$rpm} )
70 {
71 if (grep { $_ ne $rpms{$rpm} } @headers)
72 {
73 print "$rpm\n";
74 foreach $header ( @headers)
75 {
76 my $path = $header->filename;
77 $path =~ s@^(.*)/.*@$1@;
78 my $filename = $rpms{$rpm}->filename;
79 $filename =~ s@^.*/(.*)@$1@;
80 print " " . ($header eq $rpms{$rpm} ? "** " : "-- ") . $header->as_nvre . " ($path)\n";
81 #print " - rm $build_dir/$filename; cp ". $header->filename . " $build_dir\n";
82 }
83 }
84 }
85 }

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