python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / spdk / default.nix
blob23464990d86993432734832794aad710364e888b
1 { lib, stdenv
2 , fetchpatch
3 , fetchFromGitHub
4 , ncurses
5 , python3
6 , cunit
7 , dpdk
8 , libaio
9 , libbsd
10 , libuuid
11 , numactl
12 , openssl
13 , fetchurl
16 let
17   # The old version has some CVEs howver they should not affect SPDK's usage of the framework: https://github.com/NixOS/nixpkgs/pull/171648#issuecomment-1121964568
18   dpdk' = dpdk.overrideAttrs (old: rec {
19     name = "dpdk-21.11";
20     src = fetchurl {
21       url = "https://fast.dpdk.org/rel/${name}.tar.xz";
22       sha256 = "sha256-Mkbj7WjuKzaaXYviwGzxCKZp4Vf01Bxby7sha/Wr06E=";
23     };
24   });
25 in stdenv.mkDerivation rec {
26   pname = "spdk";
27   version = "21.10";
29   src = fetchFromGitHub {
30     owner = "spdk";
31     repo = "spdk";
32     rev = "v${version}";
33     sha256 = "sha256-pFynTbbSF1g58VD9bOhe3c4oCozeqE+35kECTQwDBDM=";
34   };
36   patches = [
37     # Backport of upstream patch for ncurses-6.3 support.
38     # Will be in next release after 21.10.
39     ./ncurses-6.3.patch
41     # DPDK 21.11 compatibility.
42     (fetchpatch {
43       url = "https://github.com/spdk/spdk/commit/f72cab94dd35d7b45ec5a4f35967adf3184ca616.patch";
44       sha256 = "sha256-sSetvyNjlM/hSOUsUO3/dmPzAliVcteNDvy34yM5d4A=";
45     })
46   ];
48   nativeBuildInputs = [
49     python3
50   ];
52   buildInputs = [
53     cunit dpdk' libaio libbsd libuuid numactl openssl ncurses
54   ];
56   postPatch = ''
57     patchShebangs .
58   '';
60   enableParallelBuilding = true;
62   configureFlags = [ "--with-dpdk=${dpdk'}" ];
64   NIX_CFLAGS_COMPILE = "-mssse3"; # Necessary to compile.
65   # otherwise does not find strncpy when compiling
66   NIX_LDFLAGS = "-lbsd";
68   meta = with lib; {
69     description = "Set of libraries for fast user-mode storage";
70     homepage = "https://spdk.io/";
71     license = licenses.bsd3;
72     platforms =  [ "x86_64-linux" ];
73     maintainers = with maintainers; [ orivej ];
74   };