about summary refs log tree commit diff
path: root/pkgs/tools/package-management/nix
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2024-05-02 00:13:10 +0000
committerGitHub <noreply@github.com>2024-05-02 00:13:10 +0000
commit2918b2c876b74d0ba5e333676ee86228f51c24e8 (patch)
tree3aa9efd04a7b013474abd0e659f2978ef07bddfa /pkgs/tools/package-management/nix
parenta48f3268c7b745ffe9a057b3c5e5a2b97ef68c7a (diff)
parente32981ab32c921f0506a3a560512e3a34726eafe (diff)
Merge master into haskell-updates
Diffstat (limited to 'pkgs/tools/package-management/nix')
-rw-r--r--pkgs/tools/package-management/nix/default.nix18
-rw-r--r--pkgs/tools/package-management/nix/nix-perl.nix66
2 files changed, 69 insertions, 15 deletions
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 3eb49fb62b3d7..f36497cda34d3 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -179,6 +179,19 @@ in lib.makeExtensible (self: ({
     hash = "sha256-Ugcc+lSq8nJP+mddMlGFnoG4Ix1lRFHWOal3299bqR8=";
   };
 
+  git = common rec {
+    version = "2.23.0";
+    suffix = "pre20240426_${lib.substring 0 8 src.rev}";
+    src = fetchFromGitHub {
+      owner = "NixOS";
+      repo = "nix";
+      rev = "2f678331d59451dd6f1d9512cb6d92e4ecb9750f";
+      hash = "sha256-4AwaLB/gTRgvZG4FmFY6OY52yeLAnj0a6rtJCz7TRXA=";
+    };
+  };
+
+  latest = self.nix_2_21;
+
   # The minimum Nix version supported by Nixpkgs
   # Note that some functionality *might* have been backported into this Nix version,
   # making this package an inaccurate representation of what features are available
@@ -197,8 +210,6 @@ in lib.makeExtensible (self: ({
       nix;
 
   stable = addFallbackPathsCheck self.nix_2_18;
-
-  unstable = self.nix_2_22;
 } // lib.optionalAttrs config.allowAliases (
   lib.listToAttrs (map (
     minor:
@@ -207,4 +218,7 @@ in lib.makeExtensible (self: ({
     in
     lib.nameValuePair attr (throw "${attr} has been removed")
   ) (lib.range 4 17))
+  // {
+    unstable = throw "nixVersions.unstable has been removed. For bleeding edge (Nix master, roughly weekly updated) use nixVersions.git, otherwise use nixVersions.latest.";
+  }
 )))
diff --git a/pkgs/tools/package-management/nix/nix-perl.nix b/pkgs/tools/package-management/nix/nix-perl.nix
index 0796a0914f1f5..8fc2657657afb 100644
--- a/pkgs/tools/package-management/nix/nix-perl.nix
+++ b/pkgs/tools/package-management/nix/nix-perl.nix
@@ -9,35 +9,75 @@
 , autoreconfHook
 , autoconf-archive
 , nlohmann_json
+, xz
 , Security
+, meson
+, ninja
+, bzip2
 }:
 
-stdenv.mkDerivation {
+let
+  atLeast223 = lib.versionAtLeast nix.version "2.23";
+
+  mkConfigureOption = { mesonOption, autoconfOption, value }:
+    let
+      setFlagTo = if atLeast223
+        then lib.mesonOption mesonOption
+        else lib.withFeatureAs true autoconfOption;
+    in
+    setFlagTo value;
+in stdenv.mkDerivation (finalAttrs: {
   pname = "nix-perl";
   inherit (nix) version src;
 
   postUnpack = "sourceRoot=$sourceRoot/perl";
 
-  buildInputs = lib.optional (stdenv.isDarwin) Security;
-
-  # This is not cross-compile safe, don't have time to fix right now
-  # but noting for future travellers.
-  nativeBuildInputs = [
-    autoconf-archive
-    autoreconfHook
+  buildInputs = [
     boost
+    bzip2
     curl
     libsodium
     nix
-    nlohmann_json
     perl
+    xz
+  ] ++ lib.optional (stdenv.isDarwin) Security;
+
+  # Not cross-safe since Nix checks for curl/perl via
+  # NEED_PROG/find_program, but both seem to be needed at runtime
+  # as well.
+  nativeBuildInputs = [
     pkg-config
+    perl
+    curl
+  ] ++ (if atLeast223 then [
+    meson
+    ninja
+  ] else [
+    autoconf-archive
+    autoreconfHook
+  ]);
+
+  # `perlPackages.Test2Harness` is marked broken for Darwin
+  doCheck = !stdenv.isDarwin;
+
+  nativeCheckInputs = [
+    perl.pkgs.Test2Harness
   ];
 
-  configureFlags = [
-    "--with-dbi=${perl.pkgs.DBI}/${perl.libPrefix}"
-    "--with-dbd-sqlite=${perl.pkgs.DBDSQLite}/${perl.libPrefix}"
+  ${if atLeast223 then "mesonFlags" else "configureFlags"} = [
+    (mkConfigureOption {
+      mesonOption = "dbi_path";
+      autoconfOption = "dbi";
+      value = "${perl.pkgs.DBI}/${perl.libPrefix}";
+    })
+    (mkConfigureOption {
+      mesonOption = "dbd_sqlite_path";
+      autoconfOption = "dbd-sqlite";
+      value = "${perl.pkgs.DBDSQLite}/${perl.libPrefix}";
+    })
+  ] ++ lib.optionals atLeast223 [
+    (lib.mesonEnable "tests" finalAttrs.doCheck)
   ];
 
   preConfigure = "export NIX_STATE_DIR=$TMPDIR";
-}
+})