From d916f1663fc8ea2ee5cddc218d7a428bba634018 Mon Sep 17 00:00:00 2001 From: "Bruno Bzeznik Bruno.Bzeznik@imag.fr" Date: Tue, 15 Mar 2016 23:01:50 +0100 Subject: [PATCH] libibverbs: added mlx4 and mthca userspace driver plugins --- .../libraries/libibverbs/default.nix | 60 +++++++++++++++++-- 1 file 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 ]; }; } +