Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 cmake, 6 testers, 7 8 static ? stdenv.hostPlatform.isStatic, 9 10 lz4, 11 zlib, 12 zstd, 13}: 14 15stdenv.mkDerivation (finalAttrs: { 16 pname = "c-blosc"; 17 version = "1.21.6"; 18 19 src = fetchFromGitHub { 20 owner = "Blosc"; 21 repo = "c-blosc"; 22 rev = "v${finalAttrs.version}"; 23 sha256 = "sha256-YelKkEXAh27J0Mq1BExGuKNCYBgJCc3nwmmWLr4ZfVI="; 24 }; 25 26 # https://github.com/NixOS/nixpkgs/issues/144170 27 postPatch = '' 28 sed -i -E \ 29 -e '/^libdir[=]/clibdir=@CMAKE_INSTALL_FULL_LIBDIR@' \ 30 -e '/^includedir[=]/cincludedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@' \ 31 blosc.pc.in 32 ''; 33 34 nativeBuildInputs = [ cmake ]; 35 36 buildInputs = [ 37 lz4 38 zlib 39 zstd 40 ]; 41 42 cmakeFlags = [ 43 "-DBUILD_STATIC=${if static then "ON" else "OFF"}" 44 "-DBUILD_SHARED=${if static then "OFF" else "ON"}" 45 46 "-DPREFER_EXTERNAL_LZ4=ON" 47 "-DPREFER_EXTERNAL_ZLIB=ON" 48 "-DPREFER_EXTERNAL_ZSTD=ON" 49 50 "-DBUILD_EXAMPLES=OFF" 51 "-DBUILD_BENCHMARKS=OFF" 52 "-DBUILD_TESTS=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}" 53 ]; 54 55 doCheck = !static; 56 57 passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; 58 59 meta = with lib; { 60 description = "Blocking, shuffling and loss-less compression library"; 61 homepage = "https://www.blosc.org"; 62 changelog = "https://github.com/Blosc/c-blosc/releases/tag/v${finalAttrs.version}"; 63 pkgConfigModules = [ "blosc" ]; 64 license = licenses.bsd3; 65 platforms = platforms.all; 66 maintainers = with maintainers; [ ris ]; 67 }; 68})