nixVersions.git: 2.22.0.pre20240421_6fd2f42c -> 2.23.0pre20240426_2f678331

Had to rework the nix-perl build a little bit since it's now based on
meson. Confirmed that everything from Nix 2.3 works fine with it
(confirmed that the `isValidPath` operation is behaving correctly from
Perl).

This doesn't fix cross though, neither for 2.22 nor later: both
configuration systems check for a `curl` & `perl` in the builder's
$PATH even though both are only in `buildInputs` in upstream's build.
OTOH a native Perl is probably needed for `xsubpp`.
This commit is contained in:
Maximilian Bosch 2024-04-28 23:33:22 +02:00
parent 2b4e18f3d4
commit 4ccf49b112
No known key found for this signature in database
2 changed files with 57 additions and 17 deletions

View File

@ -180,13 +180,13 @@ in lib.makeExtensible (self: ({
};
git = common rec {
version = "2.22.0";
suffix = "pre20240421_${lib.substring 0 8 src.rev}";
version = "2.23.0";
suffix = "pre20240426_${lib.substring 0 8 src.rev}";
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix";
rev = "6fd2f42c2defd210e17ec95653110fc58858dba9";
hash = "sha256-DjkxYMcG52APiADdEtXL1FNVSxNXRBw78LYctly93j0=";
rev = "2f678331d59451dd6f1d9512cb6d92e4ecb9750f";
hash = "sha256-4AwaLB/gTRgvZG4FmFY6OY52yeLAnj0a6rtJCz7TRXA=";
};
};

View File

@ -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";
}
})