/[smeserver]/builds_bin/linksource
ViewVC logotype

Contents of /builds_bin/linksource

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


Revision 1.7 - (show annotations) (download)
Mon Jan 22 16:37:24 2007 UTC (17 years, 10 months ago) by slords
Branch: MAIN
Changes since 1.6: +1 -1 lines
Update tools

1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use RPM2;
6 use File::Copy;
7 use Getopt::Std;
8
9 my %opts;
10 getopts( "s:d:", \%opts );
11 my $src = $opts{s} || '/builds/RPMS';
12 my $dest = $opts{d} || '/builds/SRPMS';
13
14 my $rpm_flags = RPM2->vsf_nodsa;
15 my @repositories = qw(
16 /mirrors/centos/4/fasttrack/SRPMS
17 /mirrors/centos/4/updates/SRPMS
18 /mirrors/centos/4/os/SRPMS
19 /mirrors/centos/4/extras/SRPMS
20 /mirrors/rpmforge/dag/source/
21 /mirrors/atrpms/src/el4-i386/atrpms/stable/
22 /mirrors/fedora-legacy/fedora/3/updates/SRPMS/
23 /mirrors/fedora-legacy/fedora/3/os/SRPMS/
24 /builds/rpms/SRPMS/
25 );
26
27 opendir RPMS, "$src" or die "Couldn't opendir $src";
28 my @rpms = map { RPM2->open_package("$src/$_", $rpm_flags) } grep { /\.rpm$/ } readdir RPMS;
29 closedir RPMS;
30
31 opendir SRPMS, "$dest" or die "Couldn't opendir $dest";
32 my %srpms = map { $_ => 0 } grep { /\.rpm$/ } readdir SRPMS;
33 closedir SRPMS;
34
35 my %repos;
36 foreach my $repo (reverse @repositories)
37 {
38 my %temp_repo = map { $_ => $repo } grep { /\.rpm$/ } readdir RPMS if ( opendir RPMS, $repo );
39 closedir RPMS;
40
41 %repos = (%repos, %temp_repo);
42 }
43
44 foreach my $rpm ( sort @rpms )
45 {
46 my (@headers, $header);
47
48 my $rpmfix = $rpm;
49 $rpmfix =~ s@\+@\\+@g;
50
51 my @sources;
52 my $src = $rpm->tag('SOURCERPM');
53 push @sources, $src;
54 push @sources, $src if ($src =~ s/\.2\.el4\.rf\./\.rf\./);
55 push @sources, $src if ($src =~ s/\.el4\.rf\./\.rf\./);
56 push @sources, $src if ($src =~ s/\.el4\.at\./\.at\./);
57 push @sources, $src if ($src =~ s/\.rf\./\.dag\./);
58
59 my $found = 0;
60 foreach my $source ( @sources )
61 {
62 if( -f "$dest/$source" )
63 {
64 $found = 1;
65 $srpms{$source}++;
66 last;
67 } else {
68 if ($repos{$source})
69 {
70 my $fromfile = $repos{$source} . "/$source";
71 $fromfile =~ s#//#/#g;
72 print "copying $source\n";
73 system(qw(cp --preserve=timestamps), $fromfile, "$dest/");
74 $found = 1;
75 $srpms{$source}++;
76 last;
77 }
78
79 }
80 }
81 print "can't find SRPM ($sources[0]) for ", $rpm->as_nvre(), "\n" unless $found;
82 }
83
84 foreach my $srpm ( grep { $srpms{$_} == 0 } keys %srpms ) {
85 print "removing unused SRPM ($srpm)\n";
86 unlink "$dest/$srpm";
87 }

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