From ead868553bb3e9b7ef6834843050299e297dd746 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Sun, 9 Jun 2024 14:02:12 +0200 Subject: [PATCH 1/4] lz4: use CMake to build Signed-off-by: Sefa Eyeoglu --- pkgs/tools/compression/lz4/default.nix | 44 ++++++++------------------ 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/pkgs/tools/compression/lz4/default.nix b/pkgs/tools/compression/lz4/default.nix index f745f4f091ab..72a822fdae88 100644 --- a/pkgs/tools/compression/lz4/default.nix +++ b/pkgs/tools/compression/lz4/default.nix @@ -1,6 +1,5 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, valgrind -, enableStatic ? stdenv.hostPlatform.isStatic -, enableShared ? !stdenv.hostPlatform.isStatic +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake +, valgrind }: stdenv.mkDerivation rec { @@ -14,6 +13,15 @@ stdenv.mkDerivation rec { owner = pname; }; + nativeBuildInputs = [ + cmake + ]; + + buildInputs = lib.optional finalAttrs.doCheck valgrind; + + # TODO(@Ericson2314): Separate binaries and libraries + outputs = [ "bin" "out" "dev" ]; + patches = [ (fetchpatch { # https://github.com/lz4/lz4/pull/1162 name = "build-shared-no.patch"; @@ -22,38 +30,12 @@ stdenv.mkDerivation rec { }) ]; - # TODO(@Ericson2314): Separate binaries and libraries - outputs = [ "bin" "out" "dev" ]; - - buildInputs = lib.optional doCheck valgrind; - - enableParallelBuilding = true; - - makeFlags = [ - "PREFIX=$(out)" - "INCLUDEDIR=$(dev)/include" - "BUILD_STATIC=${if enableStatic then "yes" else "no"}" - "BUILD_SHARED=${if enableShared then "yes" else "no"}" - "WINDRES:=${stdenv.cc.bintools.targetPrefix}windres" - ] - # TODO make full dictionary - ++ lib.optional stdenv.hostPlatform.isMinGW "TARGET_OS=MINGW" - ++ lib.optional stdenv.hostPlatform.isLinux "TARGET_OS=Linux" - ; + cmakeDir = "../build/cmake"; + cmakeBuildDir = "build-dist"; doCheck = false; # tests take a very long time checkTarget = "test"; - # TODO(@Ericson2314): Make resusable setup hook for this issue on Windows. - postInstall = - lib.optionalString stdenv.hostPlatform.isWindows '' - mv $out/bin/*.dll $out/lib - ln -s $out/lib/*.dll - '' - + '' - moveToOutput bin "$bin" - ''; - meta = with lib; { description = "Extremely fast compression algorithm"; longDescription = '' From 59238b728ca666478123c95e591aff727d0ae141 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Sun, 9 Jun 2024 14:07:44 +0200 Subject: [PATCH 2/4] lz4: use finalAttrs Signed-off-by: Sefa Eyeoglu --- pkgs/tools/compression/lz4/default.nix | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/tools/compression/lz4/default.nix b/pkgs/tools/compression/lz4/default.nix index 72a822fdae88..8b530025811c 100644 --- a/pkgs/tools/compression/lz4/default.nix +++ b/pkgs/tools/compression/lz4/default.nix @@ -2,22 +2,24 @@ , valgrind }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "lz4"; version = "1.9.4"; src = fetchFromGitHub { - sha256 = "sha256-YiMCD3vvrG+oxBUghSrCmP2LAfAGZrEaKz0YoaQJhpI="; - rev = "v${version}"; - repo = pname; - owner = pname; + repo = "lz4"; + owner = "lz4"; + rev = "v${finalAttrs.version}"; + hash = "sha256-YiMCD3vvrG+oxBUghSrCmP2LAfAGZrEaKz0YoaQJhpI="; }; nativeBuildInputs = [ cmake ]; - buildInputs = lib.optional finalAttrs.doCheck valgrind; + buildInputs = lib.optionals finalAttrs.doCheck [ + valgrind + ]; # TODO(@Ericson2314): Separate binaries and libraries outputs = [ "bin" "out" "dev" ]; @@ -26,7 +28,7 @@ stdenv.mkDerivation rec { (fetchpatch { # https://github.com/lz4/lz4/pull/1162 name = "build-shared-no.patch"; url = "https://github.com/lz4/lz4/commit/851ef4b23c7cbf4ceb2ba1099666a8b5ec4fa195.patch"; - sha256 = "sha256-P+/uz3m7EAmHgXF/1Vncc0uKKxNVq6HNIsElx0rGxpw="; + hash = "sha256-P+/uz3m7EAmHgXF/1Vncc0uKKxNVq6HNIsElx0rGxpw="; }) ]; @@ -49,4 +51,4 @@ stdenv.mkDerivation rec { license = with licenses; [ bsd2 gpl2Plus ]; platforms = platforms.all; }; -} +}) From 6772b7822fbbfad90ff2a84d9f17e9e6ad0b0424 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Sun, 9 Jun 2024 21:42:22 +0200 Subject: [PATCH 3/4] lz4: separate binaries and libraries Signed-off-by: Sefa Eyeoglu --- pkgs/tools/compression/lz4/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/tools/compression/lz4/default.nix b/pkgs/tools/compression/lz4/default.nix index 8b530025811c..5eac9b4b102f 100644 --- a/pkgs/tools/compression/lz4/default.nix +++ b/pkgs/tools/compression/lz4/default.nix @@ -21,8 +21,7 @@ stdenv.mkDerivation (finalAttrs: { valgrind ]; - # TODO(@Ericson2314): Separate binaries and libraries - outputs = [ "bin" "out" "dev" ]; + outputs = [ "dev" "lib" "man" "out" ]; patches = [ (fetchpatch { # https://github.com/lz4/lz4/pull/1162 From 216e8c8ce7641d5880f1987109f8059d88e56f43 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Sun, 9 Jun 2024 21:43:11 +0200 Subject: [PATCH 4/4] lz4: add tests Signed-off-by: Sefa Eyeoglu --- pkgs/tools/compression/lz4/default.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/compression/lz4/default.nix b/pkgs/tools/compression/lz4/default.nix index 5eac9b4b102f..a2069c4fb64f 100644 --- a/pkgs/tools/compression/lz4/default.nix +++ b/pkgs/tools/compression/lz4/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, fetchFromGitHub, fetchpatch, cmake -, valgrind +, valgrind, testers }: stdenv.mkDerivation (finalAttrs: { @@ -37,6 +37,17 @@ stdenv.mkDerivation (finalAttrs: { doCheck = false; # tests take a very long time checkTarget = "test"; + passthru.tests = { + version = testers.testVersion { + package = finalAttrs.finalPackage; + version = "v${finalAttrs.version}"; + }; + pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + moduleNames = [ "liblz4" ]; + }; + }; + meta = with lib; { description = "Extremely fast compression algorithm"; longDescription = '' @@ -49,5 +60,6 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://lz4.github.io/lz4/"; license = with licenses; [ bsd2 gpl2Plus ]; platforms = platforms.all; + mainProgram = "lz4"; }; })