diff options
Diffstat (limited to 'pkgs/tools/compression')
-rw-r--r-- | pkgs/tools/compression/lz4/default.nix | 17 | ||||
-rw-r--r-- | pkgs/tools/compression/zstd/default.nix | 30 | ||||
-rw-r--r-- | pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch | 13 |
3 files changed, 53 insertions, 7 deletions
diff --git a/pkgs/tools/compression/lz4/default.nix b/pkgs/tools/compression/lz4/default.nix index 3f2497cd8d22..3ce0eac3fc5c 100644 --- a/pkgs/tools/compression/lz4/default.nix +++ b/pkgs/tools/compression/lz4/default.nix @@ -21,6 +21,7 @@ stdenv.mkDerivation rec { }) ]; + # TODO(@Ericson2314): Separate binaries and libraries outputs = [ "out" "dev" ]; buildInputs = stdenv.lib.optional doCheck valgrind; @@ -33,17 +34,27 @@ stdenv.mkDerivation rec { # TODO do this instead #"BUILD_STATIC=${if enableStatic then "yes" else "no"}" #"BUILD_SHARED=${if enableShared then "yes" else "no"}" + #"WINDRES:=${stdenv.cc.bintools.targetPrefix}windres" ] # TODO delete and do above ++ stdenv.lib.optional (enableStatic) "BUILD_STATIC=yes" ++ stdenv.lib.optional (!enableShared) "BUILD_SHARED=no" + ++ stdenv.lib.optional stdenv.hostPlatform.isMinGW "WINDRES:=${stdenv.cc.bintools.targetPrefix}windres" + # TODO make full dictionary + ++ stdenv.lib.optional stdenv.hostPlatform.isMinGW "TARGET_OS=MINGW" ; doCheck = false; # tests take a very long time checkTarget = "test"; - # TODO remove - postInstall = stdenv.lib.optionalString (!enableStatic) "rm $out/lib/*.a"; + # TODO(@Ericson2314): Make resusable setup hook for this issue on Windows. + postInstall = + stdenv.lib.optionalString stdenv.hostPlatform.isWindows '' + mv $out/bin/*.dll $out/lib + ln -s $out/lib/*.dll + '' + # TODO remove + + stdenv.lib.optionalString (!enableStatic) "rm $out/lib/*.a"; meta = with stdenv.lib; { description = "Extremely fast compression algorithm"; @@ -56,6 +67,6 @@ stdenv.mkDerivation rec { ''; homepage = https://lz4.github.io/lz4/; license = with licenses; [ bsd2 gpl2Plus ]; - platforms = platforms.unix; + platforms = platforms.all; }; } diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix index 01e8525fe8fb..a3aecf88c907 100644 --- a/pkgs/tools/compression/zstd/default.nix +++ b/pkgs/tools/compression/zstd/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, gnugrep +{ stdenv, fetchFromGitHub, fetchpatch, gnugrep , fixDarwinDylibNames , file , legacySupport ? false }: @@ -14,11 +14,33 @@ stdenv.mkDerivation rec { owner = "facebook"; }; - buildInputs = stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames; + patches = [ + # All 3 from https://github.com/facebook/zstd/pull/1883 + (fetchpatch { + url = "https://github.com/facebook/zstd/commit/106278e7e5fafaea3b7deb4147bdc8071562d2f0.diff"; + sha256 = "13z7id1qbc05cv1rmak7c8xrchp7jh1i623bq5pwcihg57wzcyr8"; + }) + (fetchpatch { + url = "https://github.com/facebook/zstd/commit/0ede342acc2c26f87ae962fa88e158904d4198c4.diff"; + sha256 = "12l5xbvnzkvr76mvl1ls767paqfwbd9q1pzq44ckacfpz4f6iaap"; + excludes = [ + # I think line endings are causing problems, or something like that + "programs/windres/generate_res.bat" + ]; + }) + (fetchpatch { + url = "https://github.com/facebook/zstd/commit/10552eaffef84c011f67af0e04f0780b50a5ab26.diff"; + sha256 = "1s27ravar3rn7q8abybp9733jhpsfcaci51k04da94ahahvxwiqw"; + }) + ] # This I didn't upstream because if you use posix threads with MinGW it will + # work find, and I'm not sure how to write the condition. + ++ stdenv.lib.optional stdenv.hostPlatform.isWindows ./mcfgthreads-no-pthread.patch; + + nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames; makeFlags = [ "ZSTD_LEGACY_SUPPORT=${if legacySupport then "1" else "0"}" - ]; + ] ++ stdenv.lib.optional stdenv.hostPlatform.isWindows "OS=Windows"; checkInputs = [ file ]; doCheck = true; @@ -56,7 +78,7 @@ stdenv.mkDerivation rec { homepage = https://facebook.github.io/zstd/; license = with licenses; [ bsd3 ]; # Or, at your opinion, GPL-2.0-only. - platforms = platforms.unix; + platforms = platforms.all; maintainers = with maintainers; [ orivej ]; }; } diff --git a/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch b/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch new file mode 100644 index 000000000000..69921c0c7bad --- /dev/null +++ b/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch @@ -0,0 +1,13 @@ +diff --git a/programs/Makefile b/programs/Makefile +index 7882fe8c..1e8237bb 100644 +--- a/programs/Makefile ++++ b/programs/Makefile +@@ -107,7 +107,7 @@ HAVE_THREAD := $(shell [ "$(HAVE_PTHREAD)" -eq "1" -o -n "$(filter Windows%,$(OS + ifeq ($(HAVE_THREAD), 1) + THREAD_MSG := ==> building with threading support + THREAD_CPP := -DZSTD_MULTITHREAD +-THREAD_LD := -pthread ++THREAD_LD := + else + THREAD_MSG := $(NO_THREAD_MSG) + endif |