diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix index 5a153393ccdba..b96de3ce99886 100644 --- a/pkgs/tools/compression/zstd/default.nix +++ b/pkgs/tools/compression/zstd/default.nix @@ -1,7 +1,8 @@ -{ stdenv, fetchFromGitHub, gnugrep +{ stdenv, fetchFromGitHub, fetchpatch, cmake, gnugrep , fixDarwinDylibNames , file -, legacySupport ? false }: +, legacySupport ? false +, static ? false }: stdenv.mkDerivation rec { pname = "zstd"; @@ -14,34 +15,42 @@ stdenv.mkDerivation rec { owner = "facebook"; }; + outputs = [ "out" "lib" "dev" ]; + buildInputs = stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames; - makeFlags = [ - "ZSTD_LEGACY_SUPPORT=${if legacySupport then "1" else "0"}" + nativeBuildInputs = [ cmake ]; + patches = [(fetchpatch { + url = "https://github.com/facebook/zstd/commit/bda4669edc38c61e033bcf3905932e6d79c9d64a.diff"; + sha256 = "0asnslwb5k6g8yfr263fddarfmawsmvpdvbfyww773na2mmvhk66"; + })]; + cmakeFlags = [ + "-DZSTD_BUILD_SHARED:BOOL=${if static then "OFF" else "ON"}" + "-DZSTD_LEGACY_SUPPORT:BOOl=${if legacySupport then "ON" else "OFF"}" + "-DZSTD_BUILD_TESTS:BOOL=ON" ]; + cmakeDir = "../build/cmake"; + dontUseCmakeBuildDir = true; + preConfigure = '' + mkdir -p build_ && cd $_ + ''; checkInputs = [ file ]; doCheck = true; preCheck = '' - substituteInPlace tests/playTests.sh \ + substituteInPlace ../tests/playTests.sh \ --replace 'MD5SUM="md5 -r"' 'MD5SUM="md5sum"' ''; - installFlags = [ - "PREFIX=$(out)" - ]; - - preInstall = '' - substituteInPlace programs/zstdgrep \ + preInstall = stdenv.lib.optionalString (!static) '' + substituteInPlace ../programs/zstdgrep \ --replace ":-grep" ":-${gnugrep}/bin/grep" \ --replace ":-zstdcat" ":-$out/bin/zstdcat" - substituteInPlace programs/zstdless \ + substituteInPlace ../programs/zstdless \ --replace "zstdcat" "$out/bin/zstdcat" ''; - enableParallelBuilding = true; - meta = with stdenv.lib; { description = "Zstandard real-time compression algorithm"; longDescription = '' diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix index d17080960329a..8ccb1c87f8148 100644 --- a/pkgs/top-level/static.nix +++ b/pkgs/top-level/static.nix @@ -181,6 +181,10 @@ in { staticOnly = true; }; + zstd = super.zstd.override { + static = true; + }; + llvmPackages_8 = super.llvmPackages_8 // { libraries = super.llvmPackages_8.libraries // rec { libcxxabi = super.llvmPackages_8.libraries.libcxxabi.override {