X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Fpackaging%2FRedHat%2Fmockbuild.pl;h=d632acc97c1278883e6b5601085a5f2f31e06062;hp=ace74ca6b9222ca8e76b6d720cdab8e3108f349c;hb=d18f5104f57152dfb6d1125a2d3a8bf17a266f44;hpb=1495088e4168a2ddf35135db872777b9e51823b3 diff --git a/src/packaging/RedHat/mockbuild.pl b/src/packaging/RedHat/mockbuild.pl index ace74ca..d632acc 100755 --- a/src/packaging/RedHat/mockbuild.pl +++ b/src/packaging/RedHat/mockbuild.pl @@ -20,6 +20,50 @@ my $buildall = 0; my $ignorerelease = 1; my @newrpms; +# Words cannot describe how gross this is. Yum no longer provides usable +# output, so we need to call the python interface. At some point this +# probably means this script should be entirely rewritten in python, +# but this is not that point. + +sub findKernelModules { + my ($root, $uname, @modules) = @_; + + my $modlist = join(",",map { "'".$_."'" } @modules); + my $python = < { osver => "fc5", kmod => '1', basearch => 'i386', @@ -80,21 +124,21 @@ my %platconf = ( "fedora-5-i386" => { osver => "fc5", basearch => 'x86_64', updaterepo => 'update', results => "el5/x86_64" }, -# "fedora-development-i386" => { osver => "fcd", -# kmod => '1', -# basearch => 'i386', -# results => 'fedora-devel/i386'}, -# "fedora-development-x86_64" => { osver => "fcd", -# kmod => '1', -# basearch => 'x86_64', -# results => 'fedora-devel/x86_64'} + "fedora-development-i386" => { osver => "fcd", + kmod => '1', + basearch => 'i386', + results => 'fedora-devel/i386'}, + "fedora-development-x86_64" => { osver => "fcd", + kmod => '1', + basearch => 'x86_64', + results => 'fedora-devel/x86_64'} ); # The following are kernels that we can't successfully build modules against # due to issues in the packaged kernel-devel RPM. my %badkernels = ( - "2.6.21-2950.fc8" => { "xen" => 1} # Missing build ID + "2.6.21-2950.fc8" => { "xen" => 1}, # Missing build ID ); my $help; @@ -155,21 +199,19 @@ foreach my $platform (@platforms) { print "Finding available kernel modules\n"; my $arbitraryversion = ""; - my $modules=`$suser -c 'yum --installroot $root provides kernel-devel'`; - if ($modules eq "") { - $modules=`$suser -c 'yum -d 2 --installroot $root provides kernel-devel'`; - my $modulen; - my %modulel; - foreach $modulen (split(/\n/, $modules)) { - my ($pk, $colon, $comment)=split(/\s+/, $modulen); - if ($pk =~ /^kernel/) { - $modulel{$pk} = "$pk"; - } - } - $modulen=join(" ", keys(%modulel)); - $modules=`$suser -c 'yum --installroot $root list $modulen'`; + + my $modules; + if ($platform=~/fedora-development/) { + $modules = findKernelModules($root, 0, "kernel-devel"); + } elsif ($platform=~/centos-4/) { + $modules = findKernelModules($root, 0, "kernel-devel", "kernel-smp-devel", + "kernel-hugemem-devel", "kernel-xenU-devel"); + } else { + $modules = findKernelModules($root, 0, 'kernel-devel'); } + foreach my $module (split(/\n/, $modules)) { + chomp $module; my ($package, $version, $repo)=split(/\s+/, $module); my ($arch) = ($package=~/\.(.*)$/); my ($variant) = ($package=~/kernel-(.*)-devel/); @@ -182,7 +224,7 @@ foreach my $platform (@platforms) { next if ($variant eq "xen0"); # Fedora 5 has some bad xen0 kernel-devels next if ($variant eq "smp"); } - if ($platform=~/fedora-8/) { + if ($platform=~/fedora-8/ || $platform=~/fedora-9/ || $platform=~/fedora-development/) { next if ($variant =~/debug$/); # Fedora 8 debug kernels are bad } print "$arch : $variant : $version\n";