Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at release-18.03 79 lines 2.3 kB view raw
1{ stdenv, fetchurl }: 2 3let 4 5 verbs = rec { 6 version = "1.1.8"; 7 name = "libibverbs-${version}"; 8 url = "http://downloads.openfabrics.org/verbs/${name}.tar.gz"; 9 sha256 = "13w2j5lrrqxxxvhpxbqb70x7wy0h8g329inzgfrvqv8ykrknwxkw"; 10 }; 11 12 drivers = { 13 libmlx4 = rec { 14 version = "1.0.6"; 15 name = "libmlx4-${version}"; 16 url = "http://downloads.openfabrics.org/mlx4/${name}.tar.gz"; 17 sha256 = "f680ecbb60b01ad893490c158b4ce8028a3014bb8194c2754df508d53aa848a8"; 18 }; 19 libmthca = rec { 20 version = "1.0.6"; 21 name = "libmthca-${version}"; 22 url = "http://downloads.openfabrics.org/mthca/${name}.tar.gz"; 23 sha256 = "cc8ea3091135d68233d53004e82b5b510009c821820494a3624e89e0bdfc855c"; 24 }; 25 }; 26 27in stdenv.mkDerivation rec { 28 29 inherit (verbs) name version ; 30 31 srcs = [ 32 ( fetchurl { inherit (verbs) url sha256 ; } ) 33 ( fetchurl { inherit (drivers.libmlx4) url sha256 ; } ) 34 ( fetchurl { inherit (drivers.libmthca) url sha256 ; } ) 35 ]; 36 37 sourceRoot = name; 38 39 # Install userspace drivers 40 postInstall = '' 41 for dir in ${drivers.libmlx4.name} ${drivers.libmthca.name} ; do 42 cd ../$dir 43 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$out/include" 44 export NIX_LDFLAGS="-rpath $out/lib $NIX_LDFLAGS -L$out/lib" 45 ./configure $configureFlags 46 make -j$NIX_BUILD_CORES 47 make install 48 done 49 50 mkdir -p $out/lib/pkgconfig 51 cat >$out/lib/pkgconfig/ibverbs.pc <<EOF 52 prefix=$out 53 exec_prefix=\''${prefix} 54 libdir=\''${exec_prefix}/lib 55 includedir=\''${prefix}/include 56 57 Name: IB verbs 58 Version: ${version} 59 Description: Library for direct userspace use of RDMA (InfiniBand/iWARP) 60 Libs: -L\''${libdir} -libverbs 61 Cflags: -I\''${includedir} 62 EOF 63 ''; 64 65 # Re-add the libibverbs path into runpath of the library 66 # to enable plugins to be found by dlopen 67 postFixup = '' 68 RPATH=$(patchelf --print-rpath $out/lib/libibverbs.so) 69 patchelf --set-rpath $RPATH:$out/lib $out/lib/libibverbs.so.1.0.0 70 ''; 71 72 meta = with stdenv.lib; { 73 homepage = https://www.openfabrics.org/; 74 license = licenses.bsd2; 75 platforms = with platforms; linux ++ freebsd; 76 maintainers = with maintainers; [ wkennington bzizou ]; 77 }; 78} 79