]> git.openfabrics.org - ~tnikolova/ofed_scripts/.git/commitdiff
install: set existing kernel dependent RPMs according to the required kernel
authorVladimir Sokolovsky <vlad@mellanox.co.il>
Sun, 21 Oct 2007 08:20:50 +0000 (10:20 +0200)
committerVladimir Sokolovsky <vlad@mellanox.co.il>
Sun, 21 Oct 2007 08:21:21 +0000 (10:21 +0200)
version.

Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.co.il>
install.pl

index d8e04b2945a07a8e64cc3032aa6d6f21a2d06b00..bf55a0c72529d16dc043b4baec285875bf0baacf 100755 (executable)
@@ -1313,6 +1313,11 @@ sub get_rpm_name_arch
     return `rpm --queryformat "[%{NAME}] [%{ARCH}]" -qp @_`;
 }
 
+sub get_rpm_release
+{
+    return `rpm --queryformat "[%{RELEASE}]" -qp @_`;
+}
+
 # Get RPM name and version of the INSTALLED package
 sub get_rpm_version
 {
@@ -1497,13 +1502,21 @@ sub set_existing_rpms
 {
     for my $binrpm ( <$RPMS/*.rpm> ) {
         my ($rpm_name, $rpm_arch) = (split ' ', get_rpm_name_arch($binrpm));
-        if ($rpm_arch eq $target_cpu) {
-            $packages_info{$rpm_name}{'rpm_exist'} = 1;
-            print "$rpm_name RPM exist\n" if ($verbose2);
+        if ($rpm_name =~ /kernel-ib|ib-bonding/) {
+            if (($rpm_arch eq $target_cpu) and (get_rpm_release($binrpm) eq $kernel_rel)) {
+                $packages_info{$rpm_name}{'rpm_exist'} = 1;
+                print "$rpm_name RPM exist\n" if ($verbose2);
+            }
         }
-        elsif ($rpm_arch eq $target_cpu32) {
-            $packages_info{$rpm_name}{'rpm_exist32'} = 1;
-            print "$rpm_name 32-bit RPM exist\n" if ($verbose2);
+        else {
+            if ($rpm_arch eq $target_cpu) {
+                $packages_info{$rpm_name}{'rpm_exist'} = 1;
+                print "$rpm_name RPM exist\n" if ($verbose2);
+            }
+            elsif ($rpm_arch eq $target_cpu32) {
+                $packages_info{$rpm_name}{'rpm_exist32'} = 1;
+                print "$rpm_name 32-bit RPM exist\n" if ($verbose2);
+            }
         }
     }
 }