lol
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 numactl,
6 pkg-config,
7 udevCheckHook,
8}:
9
10stdenv.mkDerivation rec {
11 pname = "libpsm2";
12 version = "12.0.1";
13
14 preConfigure = ''
15 export UDEVDIR=$out/etc/udev
16 substituteInPlace ./Makefile --replace "udevrulesdir}" "prefix}/etc/udev";
17 '';
18
19 enableParallelBuilding = true;
20
21 nativeBuildInputs = [
22 pkg-config
23 udevCheckHook
24 ];
25 buildInputs = [ numactl ];
26
27 makeFlags = [
28 # Disable blanket -Werror to avoid build failures
29 # on fresh toolchains like gcc-11.
30 "WERROR="
31 ];
32
33 doInstallCheck = true;
34
35 installFlags = [
36 "DESTDIR=$(out)"
37 "UDEVDIR=/etc/udev"
38 "LIBPSM2_COMPAT_CONF_DIR=/etc"
39 ];
40
41 src = fetchFromGitHub {
42 owner = "intel";
43 repo = "opa-psm2";
44 rev = "PSM2_${version}";
45 sha256 = "sha256-MzocxY+X2a5rJvTo+gFU0U10YzzazR1IxzgEporJyhI=";
46 };
47
48 postInstall = ''
49 mv $out/usr/* $out
50 rmdir $out/usr
51 '';
52
53 meta = with lib; {
54 homepage = "https://github.com/intel/opa-psm2";
55 description = "PSM2 library supports a number of fabric media and stacks";
56 license = with licenses; [
57 gpl2Only
58 bsd3
59 ];
60 platforms = [ "x86_64-linux" ];
61 maintainers = [ maintainers.bzizou ];
62 # uses __off64_t, srand48_r, lrand48_r, drand48_r
63 broken = stdenv.hostPlatform.isMusl;
64 };
65}