]> git.openfabrics.org - ~aditr/ofed_scripts.git/commitdiff
Added support for rdma-core new packaging format
authorVladimir Sokolovsky <vlad@mellanox.com>
Wed, 20 Sep 2017 17:05:09 +0000 (20:05 +0300)
committerVladimir Sokolovsky <vlad@mellanox.com>
Mon, 25 Sep 2017 18:13:02 +0000 (21:13 +0300)
Now rdma-core creates different binary RPMs per Distro
Some RPMs have loop dependencies so, added workaround for this.

Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>
install.pl
uninstall.sh

index ac2bf9347a2efc07e3f980d8b77b99e8ee055b43..191cf6b1ae25205b0fa458fe4c4e97af76d6d1e1 100755 (executable)
@@ -600,7 +600,7 @@ my @prev_ofed_packages = (
                        "libvmw_pvrdma", "libvmw_pvrdma-devel",
                        "libqedr",
                        "libbnxt_re",
-                        "rdma-core", "rdma-core-compat",
+                        "rdma-core", "rdma-core-devel", "rdma-core-compat",
                         "mvapich", "openmpi", "mvapich2"
                         );
 
@@ -610,7 +610,7 @@ my @distro_ofed_packages = (
                         "mvapich-devel", "libboost_mpi1_36_0", "boost-devel", "boost-doc", "libmthca-rdmav2", "libcxgb3-rdmav2", "libcxgb4-rdmav2",
                         "libmlx4-rdmav2", "libnes-rdmav2", "libi40iw-rdmav2", "libqedr-rdmav2", "libbnxt_re-rdmav2", "libibverbs1", "libibmad1", "libibumad1", "libibcommon1", "ofed",
                         "ofa", "libibdm1", "libibcm1", "libibnetdisc5", "scsi-target-utils", "rdma-ofa-agent", "libibumad3", "libibmad5",
-                        "libibverbs-runtime", "librdmacm1"
+                        "libibverbs-runtime", "librdmacm1", "libi40iw",
                         );
 
 my @mlnx_en_packages = (
@@ -648,8 +648,14 @@ my @misc_packages = ("ofed-docs", "ofed-scripts");
 
 my @xeon_phi_user = ("ibpd", "libibscif");
 my @non_xeon_phi_user = ("infinipath-psm", "infinipath-psm-devel");
-
-my @user_packages = ("rdma-core",
+my @rdma_core_packages = ("libibverbs", "libibverbs1", "libibverbs-utils",
+                          "librdmacm", "librdmacm1", "librdmacm-utils",
+                          "libmlx5-1", "libmlx4-1",
+                          "libibumad", "libibumad3", "libibcm", "libibcm1",
+                          "ibacm", "iwpmd", "srp_daemon", "rdma-ndd", "rsocket"
+                         );
+
+my @user_packages = ("rdma-core", "rdma-core-devel", @rdma_core_packages,
                      "libibmad", "libibmad-devel", "libibmad-static", "libibmad-debuginfo",
                      "ibsim", "ibsim-debuginfo",
                      "opensm", "opensm-libs", "opensm-devel", "opensm-debuginfo", "opensm-static",
@@ -664,7 +670,7 @@ my @user_packages = ("rdma-core",
                      );
 
 my @basic_kernel_packages = ("compat-rdma");
-my @basic_user_packages = ("rdma-core",
+my @basic_user_packages = ("rdma-core", "rdma-core-devel", @rdma_core_packages,
                             "libiwpm", "mstflint", @misc_packages);
 
 my @hpc_kernel_packages = ("compat-rdma", "ib-bonding");
@@ -825,6 +831,13 @@ my %packages_info = (
             ofa_req_build => [],
             ofa_req_inst => ["ofed-scripts"],
             install32 => 1, exception => 0 },
+        'rdma-core-devel' =>
+            { name => "rdma-core-devel", parent => "rdma-core",
+            selected => 0, installed => 0, rpm_exist => 0, rpm_exist32 => 0,
+            available => 1, mode => "user", dist_req_build => [],
+            dist_req_inst => [], ofa_req_build => [],
+            ofa_req_inst => ["rdma-core"],
+            install32 => 1, exception => 0, configure_options => '' },
         'libfabric' =>
             { name => "libfabric", parent => "libfabric",
             selected => 0, installed => 0, rpm_exist => 0, rpm_exist32 => 0,
@@ -955,7 +968,7 @@ my %packages_info = (
             { name => "opensm", parent => "opensm",
             selected => 0, installed => 0, rpm_exist => 0, rpm_exist32 => 0,
             available => 1, mode => "user", dist_req_build => ["bison", "flex"],
-            dist_req_inst => [],ubuntu_dist_req_build => ["bison", "flex"],ubuntu_dist_req_inst => [], ofa_req_build => ["rdma-core"],
+            dist_req_inst => [],ubuntu_dist_req_build => ["bison", "flex"],ubuntu_dist_req_inst => [], ofa_req_build => ["rdma-core-devel"],
             ofa_req_inst => ["opensm-libs"],
             install32 => 0, exception => 0, configure_options => '' },
         'opensm-devel' =>
@@ -1213,6 +1226,23 @@ my %packages_info = (
         );
 
 
+for my $rdma_core_p (@rdma_core_packages) {
+    $packages_info{$rdma_core_p}{'name'} = $rdma_core_p;
+    $packages_info{$rdma_core_p}{'parent'} = "rdma-core";
+    $packages_info{$rdma_core_p}{'selected'} = 0;
+    $packages_info{$rdma_core_p}{'installed'} = 0;
+    $packages_info{$rdma_core_p}{'install32'} = 0;
+    $packages_info{$rdma_core_p}{'rpm_exist'} = 0;
+    $packages_info{$rdma_core_p}{'rpm_exist32'} = 0;
+    $packages_info{$rdma_core_p}{'mode'} = "user";
+    $packages_info{$rdma_core_p}{'exception'} = 0;
+    $packages_info{$rdma_core_p}{'dist_req_build'} = [];
+    $packages_info{$rdma_core_p}{'dist_req_inst'} = [];
+    $packages_info{$rdma_core_p}{'ofa_req_build'} = [];
+    $packages_info{$rdma_core_p}{'ofa_req_inst'} = [];
+    $packages_info{$rdma_core_p}{'available'} = 1;
+}
+
 my @hidden_packages = ("ibvexdmtools", "qlgc_vnic_daemon");
 
 my $TOPDIR = $builddir . '/' . $PACKAGE . "_topdir";
@@ -1386,6 +1416,21 @@ sub set_cfg
 # Set packages availability depending OS/Kernel/arch
 sub set_availability
 {
+       if ($DISTRO =~ /SLES/) {
+        $packages_info{'librdmacm'}{'available'} = 0;
+        $packages_info{'libibumad'}{'available'} = 0;
+        $packages_info{'libibcm'}{'available'} = 0;
+       } else {
+        $packages_info{'libibverbs1'}{'available'} = 0;
+        $packages_info{'libibcm1'}{'available'} = 0;
+        $packages_info{'libmlx4-1'}{'available'} = 0;
+        $packages_info{'libmlx5-1'}{'available'} = 0;
+        $packages_info{'librdmacm1'}{'available'} = 0;
+        $packages_info{'libibumad3'}{'available'} = 0;
+        $packages_info{'rsocket'}{'available'} = 0;
+        $packages_info{'rdma-ndd'}{'available'} = 0;
+       }
+
     if ($kernel =~ m/^4\.8/) {
             $kernel_modules_info{'rds'}{'available'} = 1;
             $packages_info{'rds-tools'}{'available'} = 1;
@@ -1827,12 +1872,12 @@ sub module_in_rpm
     }
 
     if ($module eq "nfsrdma") {
-        $module = "xprtrdma";
+        $module = "rpcrdma";
     }
 
     open(LIST, "rpm -qlp $package |") or die "Can't run 'rpm -qlp $package': $!\n";
     while (<LIST>) {
-        if (/$module[a-z_]*.ko/) {
+        if (/$module[a-z_]*.ko/ or ($module =~ /firmware/ and /$module/)) {
             print "is_module_in_rpm: $module $_\n" if ($verbose3);
             $ret = 0;
             last;
@@ -2644,7 +2689,11 @@ sub install_rpm
     }
     $cmd = "rpm -iv $rpminstall_flags";
 
-    if ($name eq "rdma-core" and $DISTRO =~ m/SLES/) {
+    if ($name =~ /rdma-core/) {
+        $cmd .= " --nodeps";
+    }
+
+    if ($name ~~ @rdma_core_packages and $DISTRO =~ m/SLES/) {
         $cmd .= " --nodeps";
     }
 
index ef61c05e70616be83a659206211f543ee1a7a6ce..b6bb3bc702eb7300d5b01a04997f3616a76bc526 100755 (executable)
@@ -71,7 +71,7 @@ sub usage
    print "\n Usage: $0 [--unload-modules] [-v|--verbose] [-q|--quiet] [--dry-run]\n";
 
    print "\n           --unload-modules     Run /etc/init.d/openibd stop before uninstall";
-   print "\n           --force              Force uninstallation and remove packages that depends on MLNX_OFED";
+   print "\n           --force              Force uninstallation and remove packages that depends on OFED";
    print "\n           -v|--verbose         Increase verbosity level";
    print "\n           --dry-run            Print the list of packages to be uninstalled without actually uninstalling them";
    print "\n           -q                   Set quiet - no messages will be printed";
@@ -173,7 +173,7 @@ sub uninstall
     my $sig = 0;
     my $cnt = 0;
     my @installed_rpms = `ofed_info | grep -A999 '^-' 2> /dev/null | grep -v '^-'`;
-    my @other_ofed_rpms = `rpm -qa 2> /dev/null | grep -wE "compat-rdma|libibverbs|rdma|ofed|openib|kernel-ib|rds|ib-bonding|infiniband|libfabric|fabtests|libvmw_pvrdma"`;
+    my @other_ofed_rpms = `rpm -qa 2> /dev/null | grep -E "libibverbs|libmlx|rdma|ofed|openib|kernel-ib|rds-tools|rds-devel|ib-bonding|infiniband|libfabric|fabtests|srp_daemon"`;
     my $cmd = "rpm -e --allmatches --nodeps $rpm_flags";
 
     for my $package (@other_ofed_rpms) {
@@ -205,7 +205,7 @@ sub uninstall
     }
 
     if (not $force and keys %non_ofed_for_uninstall) {
-        print "\nError: One or more packages depends on MLNX_OFED.\nThose packages should be removed before uninstalling MLNX_OFED:\n\n";
+        print "\nError: One or more packages depends on OFED.\nThose packages should be removed before uninstalling OFED:\n\n";
         print join(" ", (keys %non_ofed_for_uninstall)) . "\n\n";
         print "To force uninstallation use '--force' flag.\n";
         exit $NONOFEDRPMS;