diff --git a/bsc/rdma-core/default.nix b/bsc/rdma-core/default.nix new file mode 100644 index 0000000..a23cd14 --- /dev/null +++ b/bsc/rdma-core/default.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, docutils +, pandoc, ethtool, iproute, libnl, udev, python, perl +, makeWrapper +} : + +let + version = "31.1"; + +in stdenv.mkDerivation { + pname = "rdma-core"; + inherit version; + + src = fetchFromGitHub { + owner = "linux-rdma"; + repo = "rdma-core"; + rev = "v${version}"; + sha256 = "1xkmdix6mgv6kjjj6wi844bfddhl0ybalrp5g8pf5izasc43brg7"; + }; + + nativeBuildInputs = [ cmake pkgconfig pandoc docutils makeWrapper ]; + buildInputs = [ libnl ethtool iproute udev python perl ]; + + cmakeFlags = [ + "-DCMAKE_INSTALL_RUNDIR=/run" + "-DCMAKE_INSTALL_SHAREDSTATEDIR=/var/lib" + ]; + + postPatch = '' + substituteInPlace srp_daemon/srp_daemon.sh.in \ + --replace /bin/rm rm + ''; + + postInstall = '' + # cmake script is buggy, move file manually + mkdir -p $out/${perl.libPrefix} + mv $out/share/perl5/* $out/${perl.libPrefix} + ''; + + postFixup = '' + for pls in $out/bin/{ibfindnodesusing.pl,ibidsverify.pl}; do + echo "wrapping $pls" + chmod +x "$pls" + wrapProgram $pls --prefix PERL5LIB : "$out/${perl.libPrefix}" + done + + # Remove any non-library as we are not using them + rm -rf $out/etc + rm -rf $out/lib/systemd + rm -rf $out/bin + rm -rf $out/sbin + ''; + + meta = with stdenv.lib; { + description = "RDMA Core Userspace Libraries and Daemons"; + homepage = "https://github.com/linux-rdma/rdma-core"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ markuskowa ]; + }; +} diff --git a/overlay.nix b/overlay.nix index b80bc83..b31e0d9 100644 --- a/overlay.nix +++ b/overlay.nix @@ -138,6 +138,8 @@ let dummy = callPackage ./bsc/dummy/default.nix { }; + rdma-core = callPackage ./bsc/rdma-core/default.nix { }; + clangOmpss2Unwrapped = callPackage ./bsc/llvm-ompss2/clang.nix { stdenv = self.llvmPackages_10.stdenv; enableDebug = false;