use Getopt::Long;
use File::Path;
use IO::Dir;
+use File::Temp qw/ tempfile tempdir /;
my $suser="nsu";
my $rootbase="/var/lib/mock/";
my @newrpms;
sub findKernels {
- my ($root, $uname, @modules) = @_;
+ my ($root, $platform, $uname, @modules) = @_;
+ my ($fh, $tmpconf) = tempfile( "yum.confXXXX", DIR => "/tmp");
+ open(OLDCONF, "$root/etc/yum.conf");
+ while(<OLDCONF>) {
+ $_ =~ s#/var/cache/yum#/var/cache/mock/${platform}/yum_cache#;
+ print $fh $_;
+ }
+ close(OLDCONF);
+ my $archv = "";
+ open(PLATCONF, "/etc/mock/${platform}.cfg");
+ while (<PLATCONF>) {
+ if ($_ =~ "legal_host_arches") {
+ $_ =~ s/ //g;
+ $_ =~ /\(([\S]*)\)/;
+ $_ = $1;
+ if ($platform =~ "i386") {
+ $_ =~ s/\'x86_64\'//;
+ $_ =~ s/\,\,/\,/;
+ $_ =~ s/\,\$//;
+ }
+ if ($_ ne "") {
+ $archv="--archlist=$_";
+ }
+ }
+ }
+ close(PLATCONF);
my $modlist = join(" ", @modules);
-
my @kernels;
if ($uname) {
- @kernels = `repoquery --whatprovides kernel-devel-uname-r --qf "%{name}.%{arch} %{version}-%{release}" -c $root/etc/yum.conf`;
+ @kernels = `repoquery $archv --whatprovides kernel-devel-uname-r --qf "%{name}.%{arch} %{version}-%{release}" -c $tmpconf`;
} else {
- @kernels = `repoquery --whatprovides $modlist --qf "%{name}.%{arch} %{version}-%{release}" -c $root/etc/yum.conf`;
+ @kernels = `repoquery $archv --show-duplicates --whatprovides $modlist --qf "%{name}.%{arch} %{version}-%{release}" -c $tmpconf`;
}
+ unlink $tmpconf;
return @kernels;
}
-my %platconf = ( "fedora-5-i386" => { osver => "fc5",
- kmod => '1',
- basearch => 'i386',
- updaterepo => 'updates-released',
- results => 'fedora-5/i386' },
- "fedora-5-x86_64" => { osver => "fc5",
+my %platconf = ( "centos-4-i386" => { osver => "el4",
+ kmod => '1',
+ basearch => 'i386',
+ updaterepo => 'update',
+ results => 'rhel4/i386' },
+ "centos-4-x86_64" => { osver => "el4",
kmod => '1',
basearch => 'x86_64',
- updaterepo => 'updates-released',
- results => 'fedora-5/x86_64' },
- "fedora-6-i386" => { osver => "fc6",
- kmod => '1',
- basearch => 'i386',
- updaterepo => 'updates-released',
- results => "fedora-6/i386" },
- "fedora-6-x86_64" => { osver => "fc6",
- kmod => '1',
- basearch => 'x86_64',
- updaterepo => 'updates-released',
- results => "fedora-6/x86_64" },
- "fedora-7-i386" => { osver => "fc7",
+ updaterepo => 'update',
+ results => "rhel4/x86_64" },
+ "centos-5-i386" => { osver => "el5",
kmod => '1',
basearch => 'i386',
- updaterepo => 'updates-released',
- results => "fedora-7/i386" },
- "fedora-7-x86_64" => { osver => "fc7",
+ updaterepo => 'update',
+ results => "rhel5/i386" },
+ "centos-5-x86_64" => { osver => "el5",
kmod => '1',
- basearch => 'x86_64',
- updaterepo => 'updates-released',
- results => "fedora-7/x86_64" },
- "fedora-8-i386" => { osver => "fc8",
+ basearch => 'x86_64',
+ updaterepo => 'update',
+ results => "rhel5/x86_64" },
+ "centos-6-i386" => { osver => "el6",
kmod => '1',
- basearch => 'i386',
- updaterepo => 'updates-released',
- results => "fedora-8/i386" },
- "fedora-8-x86_64" => { osver => "fc8",
+ basearch => 'i686',
+ updaterepo => 'update',
+ results => "rhel6/i686" },
+ "centos-6-x86_64" => { osver => "el6",
kmod => '1',
- basearch => 'x86_64',
- updaterepo => 'updates-released',
- results => "fedora-8/x86_64" },
- "centos-4-i386" => { osver => "el4",
+ basearch => 'x86_64',
+ updaterepo => 'update',
+ results => "rhel6/x86_64" },
+ "epel-4-i386" => { osver => "el4",
kmod => '1',
basearch => 'i386',
updaterepo => 'update',
results => 'rhel4/i386' },
- "centos-4-x86_64" => { osver => "el4",
+ "epel-4-x86_64" => { osver => "el4",
kmod => '1',
basearch => 'x86_64',
updaterepo => 'update',
results => "rhel4/x86_64" },
- "centos-5-i386" => { osver => "el5",
+ "epel-5-i386" => { osver => "el5",
kmod => '1',
basearch => 'i386',
updaterepo => 'update',
results => "rhel5/i386" },
- "centos-5-x86_64" => { osver => "el5",
+ "epel-5-x86_64" => { osver => "el5",
kmod => '1',
basearch => 'x86_64',
updaterepo => 'update',
results => "rhel5/x86_64" },
- "fedora-9-i386" => { osver => "fc9",
- kmod => '1',
- basearch => 'i386',
- updaterepo => "updates-released",
- results => 'fedora-9/i386' },
- "fedora-9-x86_64" => { osver => "fc9",
- kmod => "1",
- basearch => "x86_64",
- updaterepo => "updates-released",
- results => "fedora-9/x86_64" },
- "fedora-10-i386" => { osver => "fc10",
- kmod => '1',
- basearch => 'i386',
- updaterepo => "updates-released",
- results => 'fedora-10/i386' },
- "fedora-10-x86_64" => { osver => "fc10",
- kmod => "1",
- basearch => "x86_64",
- updaterepo => "updates-released",
- results => "fedora-10/x86_64" },
- "fedora-11-i386" => { osver => "fc11",
- kmod => '1',
- basearch => 'i386',
-# updaterepo => "updates-released",
- results => 'fedora-11/i386' },
- "fedora-11-x86_64" => { osver => "fc11",
- kmod => "1",
- basearch => "x86_64",
-# updaterepo => "updates-released",
- results => "fedora-11/x86_64" },
- "fedora-12-i386" => { osver => "fc12",
- kmod => '1',
- basearch => 'i386',
-# updaterepo => "updates-released",
- results => 'fedora-12/i386' },
- "fedora-12-x86_64" => { osver => "fc12",
- kmod => "1",
- basearch => "x86_64",
-# updaterepo => "updates-released",
- results => "fedora-12/x86_64" },
- "fedora-13-i386" => { osver => "fc13",
+ "epel-6-i386" => { osver => "el6",
+ kmod => '1',
+ basearch => 'i686',
+ updaterepo => 'update',
+ results => "rhel6/i686" },
+ "epel-6-x86_64" => { osver => "el6",
+ kmod => '1',
+ basearch => 'x86_64',
+ updaterepo => 'update',
+ results => "rhel6/x86_64" },
+ "fedora-14-i386" => { osver => "fc14",
kmod => "1",
- basearch => "i386",
-# updaterepo => "updates-released",
- results => "fedora-13/i386" },
- "fedora-13-x86_64" => { osver => "fc13",
+ basearch => "i686",
+ results => "fedora-14/i686" },
+ "fedora-14-x86_64" => { osver => "fc14",
kmod => "1",
basearch => "x86_64",
-# updaterepo => "updates-released",
- results => "fedora-13/x86_64" },
-
+ results => "fedora-14/x86_64" },
+ "fedora-15-i386" => { osver => "fc15",
+ kmod => "1",
+ basearch => "i686",
+ results => "fedora-15/i686" },
+ "fedora-15-x86_64" => { osver => "fc15",
+ kmod => "1",
+ basearch => "x86_64",
+ results => "fedora-15/x86_64" },
"fedora-development-i386" => { osver => "fcd",
kmod => '1',
basearch => 'i386',
my @kernels;
if ($platform=~/fedora-development/) {
- @kernels = findKernels($root, 0, "kernel-devel");
+ @kernels = findKernels($root, $platform, 0, "kernel-devel");
} elsif ($platform=~/centos-4/) {
- @kernels = findKernels($root, 0, "kernel-devel", "kernel-smp-devel",
+ @kernels = findKernels($root, $platform, 0, "kernel-devel", "kernel-smp-devel",
"kernel-hugemem-devel", "kernel-xenU-devel");
} else {
- @kernels = findKernels($root, 0, 'kernel-devel');
+ @kernels = findKernels($root, $platform, 0, 'kernel-devel');
}
foreach my $kernel (@kernels) {
next if ($arch eq "noarch");
next
if (exists($badkernels{$version}) && ($badkernels{$version}{$variant}));
- if ($platform=~/fedora-5/) {
- next if ($variant eq "xen0"); # Fedora 5 has some bad xen0 kernel-devels
- next if ($variant eq "smp");
- }
- next if ($variant =~/debug$/); # Fedora 8 debug kernels are bad
+ next if ($variant =~/debug$/); # Fedora debug kernels are bad
+ next if ($kernel !~ /$osver/ ); # fc15 kernel in fc14 repo?
print "$arch : $variant : $version\n";
$modulelist{$arch} ={} if !$modulelist{$arch};