This is a modification to the section in the patch for the file install.pl
The pupose of the change is to allow ofed.conf to contain lines of the form
vendor_script* (e.g. vendor_config_fix_something=yes). 
When install.pl parses the configuration file it silently ignores lines that
start with vendor_config.


--- a/install.pl        2007-12-12 13:43:57.000000000 +0200
+++ b/install.pl        2008-01-06 18:03:55.000000000 +0200
@@ -59,6 +59,11 @@
 my $clear_string = `clear`;
 my $upgrade_open_iscsi = 0;
 
+my $vendor_pre_install = "";
+my $vendor_post_install = "";
+my $vendor_pre_uninstall = "";
+my $vendor_post_uninstall = "";
+
 my $distro;
 
 my $build32 = 0;
@@ -2041,6 +2046,54 @@
                     next;
                 }
 
+                if (substr($package,0,length("vendor_config")) eq 
"vendor_config") {
+                       next;
+               }
+
+                if ($package eq "vendor_pre_install") {
+                   if ( -f $selected ) {
+                       $vendor_pre_install = dirname($selected) . '/' . 
basename($selected);
+                   }
+                   else {
+                       print RED "\nVendor script $selected is not found", 
RESET "\n" if (not $quiet);
+                       exit 1
+                   }
+                    next;
+                }
+
+                if ($package eq "vendor_post_install") {
+                   if ( -f $selected ) {
+                       $vendor_post_install = dirname($selected) . '/' . 
basename($selected);
+                   }
+                   else {
+                       print RED "\nVendor script $selected is not found", 
RESET "\n" if (not $quiet);
+                       exit 1
+                   }
+                    next;
+                }
+
+                if ($package eq "vendor_pre_uninstall") {
+                   if ( -f $selected ) {
+                       $vendor_pre_uninstall = dirname($selected) . '/' . 
basename($selected);
+                   }
+                   else {
+                       print RED "\nVendor script $selected is not found", 
RESET "\n" if (not $quiet);
+                       exit 1
+                   }
+                    next;
+                }
+
+                if ($package eq "vendor_post_uninstall") {
+                   if ( -f $selected ) {
+                       $vendor_post_uninstall = dirname($selected) . '/' . 
basename($selected);
+                   }
+                   else {
+                       print RED "\nVendor script $selected is not found", 
RESET "\n" if (not $quiet);
+                       exit 1
+                   }
+                    next;
+                }
+
                 if ($package eq "kernel_configure_options" or $package eq 
"OFA_KERNEL_PARAMS") {
                     $kernel_configure_options = $selected;
                     next;
@@ -3662,7 +3715,33 @@
     
     # Uninstall the previous installations
     uninstall();
+    my $vendor_ret;
+    if (length($vendor_pre_install) > 0) {
+           print BLUE "\nRunning vendor pre install script: 
$vendor_pre_install", RESET "\n" if (not $quiet);
+           $vendor_ret = system ( "$vendor_pre_install", "CONFIG=$config",
+               "RPMS=$RPMS", "SRPMS=$SRPMS", "PREFIX=$prefix", 
"TOPDIR=$TOPDIR", "QUIET=$quiet" );
+           if ($vendor_ret != 0) {
+                   print RED "\nExecution of vendor pre install script 
failed.", RESET "\n" if (not $quiet);
+                   exit 1;
+           }
+    }
     install();
+    if (length($vendor_pre_uninstall) > 0) {
+           system "cp $vendor_pre_uninstall 
$prefix/sbin/vendor_pre_uninstall.sh";
+    }
+    if (length($vendor_post_uninstall) > 0) {
+           system "cp $vendor_post_uninstall 
$prefix/sbin/vendor_post_uninstall.sh";
+    }
+    if (length($vendor_post_install) > 0) {
+           print BLUE "\nRunning vendor post install script: 
$vendor_post_install", RESET "\n" if (not $quiet);
+           $vendor_ret = system ( "$vendor_post_install", "CONFIG=$config",
+               "RPMS=$RPMS", "SRPMS=$SRPMS", "PREFIX=$prefix", 
"TOPDIR=$TOPDIR", "QUIET=$quiet");
+           if ($vendor_ret != 0) {
+                   print RED "\nExecution of vendor post install script 
failed.", RESET "\n" if (not $quiet);
+                   exit 1;
+           }
+    }
+
     if ($kernel_modules_info{'ipoib'}{'selected'}) {
         ipoib_config();
     }

_______________________________________________
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to