From b2b9257186c568bae937c09b36067cd6b3448f2a Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 21 Nov 2023 16:42:27 -0500 Subject: rapidcheck: Build shared/static following defaults CMake defaults to static which is not what we want. It is especially dangerous because this library has global variables --- embedding multiple copies in downstream shared objects used by the same final executable will cause problems. --- pkgs/development/libraries/rapidcheck/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/rapidcheck/default.nix b/pkgs/development/libraries/rapidcheck/default.nix index 4d8f34f58c8c..fe94f5dce959 100644 --- a/pkgs/development/libraries/rapidcheck/default.nix +++ b/pkgs/development/libraries/rapidcheck/default.nix @@ -18,6 +18,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; + cmakeFlags = [ + (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) + ]; + # Install the extras headers postInstall = '' cp -r $src/extras $out -- cgit 1.4.1 From 98bdc2b3bb7ac42173cbe2033b91f849307a4737 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 21 Nov 2023 23:35:38 -0500 Subject: nix: Fix build now that rapidcheck is a shared library Backporting https://github.com/NixOS/nix/pull/9431 --- pkgs/tools/package-management/nix/default.nix | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index dd5d35375e30..aeb2a182336e 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -113,6 +113,13 @@ let hash = "sha256-s1ybRFCjQaSGj7LKu0Z5g7UiHqdJGeD+iPoQL0vaiS0="; }; + patch-rapidcheck-shared = fetchpatch2 { + # https://github.com/NixOS/nix/pull/9431 + name = "fix-requires-non-existing-output.patch"; + url = "https://github.com/NixOS/nix/commit/46131567da96ffac298b9ec54016b37114b0dfd5.patch"; + hash = "sha256-lShYxYKRDWwBqCysAFmFBudhhAL1eendWcL8sEFLCGg="; + }; + # Intentionally does not support overrideAttrs etc # Use only for tests that are about the package relation to `pkgs` and/or NixOS. addTestsShallowly = tests: pkg: pkg // { @@ -194,26 +201,41 @@ in lib.makeExtensible (self: ({ nix_2_14 = common { version = "2.14.1"; hash = "sha256-5aCmGZbsFcLIckCDfvnPD4clGPQI7qYAqHYlttN/Wkg="; + patches = [ + patch-rapidcheck-shared + ]; }; nix_2_15 = common { version = "2.15.3"; hash = "sha256-sfFXbjC5iIdSAbctZIuFozxX0uux/KFBNr9oh33xINs="; + patches = [ + patch-rapidcheck-shared + ]; }; nix_2_16 = common { version = "2.16.2"; hash = "sha256-VXIYCDkvAWeMoU0W2ZI0TeOszCZA1o8trz6YCPFD5ac="; + patches = [ + patch-rapidcheck-shared + ]; }; nix_2_17 = common { version = "2.17.1"; hash = "sha256-Q5L+rHzjp0bYuR2ogg+YPCn6isjmlQ4CJVT0zpn/hFc="; + patches = [ + patch-rapidcheck-shared + ]; }; nix_2_18 = common { version = "2.18.1"; hash = "sha256-WNmifcTsN9aG1ONkv+l2BC4sHZZxtNKy0keqBHXXQ7w="; + patches = [ + patch-rapidcheck-shared + ]; }; # The minimum Nix version supported by Nixpkgs -- cgit 1.4.1