about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorjoachifm <joachifm@users.noreply.github.com>2016-04-18 15:30:00 +0200
committerjoachifm <joachifm@users.noreply.github.com>2016-04-18 15:30:00 +0200
commitc7f9b6c440fcbe7ca02d92de0c64c31188a45638 (patch)
tree6ffd71aaa343f6ce9fbd12e4ccb539c4e54cb3d2 /pkgs/development
parent302f3a3f5596b1a8708f0a17e1667145d217797a (diff)
parentd916f1663fc8ea2ee5cddc218d7a428bba634018 (diff)
downloadnixlib-c7f9b6c440fcbe7ca02d92de0c64c31188a45638.tar
nixlib-c7f9b6c440fcbe7ca02d92de0c64c31188a45638.tar.gz
nixlib-c7f9b6c440fcbe7ca02d92de0c64c31188a45638.tar.bz2
nixlib-c7f9b6c440fcbe7ca02d92de0c64c31188a45638.tar.lz
nixlib-c7f9b6c440fcbe7ca02d92de0c64c31188a45638.tar.xz
nixlib-c7f9b6c440fcbe7ca02d92de0c64c31188a45638.tar.zst
nixlib-c7f9b6c440fcbe7ca02d92de0c64c31188a45638.zip
Merge pull request #13968 from bzizou/libibverbs
libibverbs: added mlx4 and mthca userspace driver plugins
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/libibverbs/default.nix60
1 files changed, 54 insertions, 6 deletions
diff --git a/pkgs/development/libraries/libibverbs/default.nix b/pkgs/development/libraries/libibverbs/default.nix
index 5ce1e5cbdf6c..8e37648adfcc 100644
--- a/pkgs/development/libraries/libibverbs/default.nix
+++ b/pkgs/development/libraries/libibverbs/default.nix
@@ -1,17 +1,65 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation rec {
-  name = "libibverbs-1.1.8";
+let
 
-  src = fetchurl {
-    url = "https://www.openfabrics.org/downloads/verbs/${name}.tar.gz";
-    sha256 = "13w2j5lrrqxxxvhpxbqb70x7wy0h8g329inzgfrvqv8ykrknwxkw";
+  verbs = rec {
+      version = "1.1.8";
+      name = "libibverbs-${version}";
+      url = "http://downloads.openfabrics.org/verbs/${name}.tar.gz";
+      sha256 = "13w2j5lrrqxxxvhpxbqb70x7wy0h8g329inzgfrvqv8ykrknwxkw";
   };
 
+  drivers = {
+      libmlx4 = rec { 
+          version = "1.0.6";
+          name = "libmlx4-${version}"; 
+          url = "http://downloads.openfabrics.org/mlx4/${name}.tar.gz";
+          sha256 = "f680ecbb60b01ad893490c158b4ce8028a3014bb8194c2754df508d53aa848a8";
+      };
+      libmthca = rec { 
+          version = "1.0.6"; 
+          name = "libmthca-${version}"; 
+          url = "http://downloads.openfabrics.org/mthca/${name}.tar.gz";
+          sha256 = "cc8ea3091135d68233d53004e82b5b510009c821820494a3624e89e0bdfc855c";
+      };
+  };
+
+in stdenv.mkDerivation rec {
+
+  inherit (verbs) name version ;
+
+  srcs = [
+    ( fetchurl { inherit (verbs) url sha256 ; } )
+    ( fetchurl { inherit (drivers.libmlx4) url sha256 ; } )
+    ( fetchurl { inherit (drivers.libmthca) url sha256 ; } )
+  ];
+
+  sourceRoot = name;
+
+  # Install userspace drivers
+  postInstall = ''
+    for dir in ${drivers.libmlx4.name} ${drivers.libmthca.name} ; do
+      cd ../$dir
+      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$out/include"
+      export NIX_LDFLAGS="-rpath $out/lib $NIX_LDFLAGS -L$out/lib"
+      ./configure $configureFlags
+      make -j$NIX_BUILD_CORES
+      make install
+    done
+  '';
+
+  # Re-add the libibverbs path into runpath of the library
+  # to enable plugins to be found by dlopen
+  postFixup = ''
+    RPATH=$(patchelf --print-rpath $out/lib/libibverbs.so)
+    patchelf --set-rpath $RPATH:$out/lib $out/lib/libibverbs.so.1.0.0
+  '';
+
   meta = with stdenv.lib; {
     homepage = https://www.openfabrics.org/;
     license = licenses.bsd2;
     platforms = with platforms; linux ++ freebsd;
-    maintainers = with maintainers; [ wkennington ];
+    maintainers = with maintainers; [ wkennington bzizou ];
   };
 }
+