]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Red Hat: use repoquery to find kernels in build script
authorKen Dreyer <kdreyer@usgs.gov>
Thu, 7 Jul 2011 14:39:10 +0000 (10:39 -0400)
committerDerrick Brashear <shadow@dementia.org>
Wed, 13 Jul 2011 04:29:08 +0000 (21:29 -0700)
Remove the custom yum Python code in favor of repoquery.

Reviewed-on: http://gerrit.openafs.org/4926
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 1accef4e77c8cad518d728d15fbd194bebd49f33)

Change-Id: Ie68a006852d1564fa2da226a006a4e137d7cd5ed
Reviewed-on: http://gerrit.openafs.org/4979
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/packaging/RedHat/mockbuild.pl

index 79d4c733b12614022110f3fc68fd080066eab8e5..d0706b28797d93b21dcaf3f5d0a6ded37604069a 100755 (executable)
@@ -21,47 +21,19 @@ 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 {
+sub findKernels {
   my ($root, $uname, @modules) = @_;
 
-  my $modlist = join(",",map { "'".$_."'" } @modules);
-  my $python = <<EOS;
-import yum;
-import sys;
-base = yum.YumBase();
-base.doConfigSetup('$root/etc/yum.conf', '$root');
-base.doRepoSetup();
-base.doSackSetup();
-EOS
+  my $modlist = join(" ", @modules);
 
+  my @kernels;
   if ($uname) {
-    $python.= <<EOS;
-
-for pkg, values in base.searchPackageProvides(['kernel-devel-uname-r']).items():
-  if values[0].find('kernel-devel-uname-r = ') != -1:
-    print '%s.%s %s' % (pkg.name, pkg.arch, values[0].replace('kernel-devel-uname-r = ',''));
-
-EOS
+    @kernels = `repoquery --whatprovides kernel-devel-uname-r --qf "%{name}.%{arch} %{version}-%{release}" -c $root/etc/yum.conf`;
   } else {
-    $python.= <<EOS;
-
-print '\\n'.join(['%s.%s %s' % (x.name, x.arch, x.printVer()) for x in base.searchPackageProvides([$modlist]).keys()]);
-
-EOS
+    @kernels = `repoquery --whatprovides $modlist --qf "%{name}.%{arch} %{version}-%{release}" -c $root/etc/yum.conf`;
   }
 
-#  my $output = `$suser -c "python -c \\\"$python\\\"" `;
-  my $output = `python -c "$python"`;
-
-  die "Python script to figure out available kernels failed : $output" 
-    if $?;
-
-  return $output;
+  return @kernels;
 }
 
 
@@ -265,19 +237,19 @@ foreach my $platform (@platforms) {
 
   my $arbitraryversion = "";
 
-  my $modules;
+  my @kernels;
   if ($platform=~/fedora-development/) {
-    $modules = findKernelModules($root, 0, "kernel-devel");
+    @kernels = findKernels($root, 0, "kernel-devel");
   } elsif ($platform=~/centos-4/) {
-    $modules = findKernelModules($root, 0, "kernel-devel", "kernel-smp-devel", 
+    @kernels = findKernels($root, 0, "kernel-devel", "kernel-smp-devel", 
                                 "kernel-hugemem-devel", "kernel-xenU-devel");
   } else {
-    $modules = findKernelModules($root, 0, 'kernel-devel');
+    @kernels = findKernels($root, 0, 'kernel-devel');
   }
 
-  foreach my $module (split(/\n/, $modules)) {
-      chomp $module;
-      my ($package, $version, $repo)=split(/\s+/, $module);
+  foreach my $kernel (@kernels) {
+      chomp $kernel;
+      my ($package, $version)=split(/\s+/, $kernel);
       my ($arch) = ($package=~/\.(.*)$/);
       my ($variant) = ($package=~/kernel-(.*)-devel/);
       $variant = "" if !defined($variant);