Merge pull request #305951 from Ma27/nix-unstable-testing
nixVersions.unstable: build from master, re-init at 2.22.0.pre20240321_6fd2f42c
This commit is contained in:
commit
fac5f2721d
5 changed files with 75 additions and 17 deletions
|
@ -2,7 +2,7 @@
|
|||
# Don't test properties of pkgs.lib, but rather the lib in the parent directory
|
||||
pkgs ? import ../.. {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; },
|
||||
nix ? pkgs-nixVersions.stable,
|
||||
nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.unstable ],
|
||||
nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.latest ],
|
||||
pkgs-nixVersions ? import ./nix-for-tests.nix { inherit pkgs; },
|
||||
}:
|
||||
|
||||
|
|
|
@ -30,6 +30,10 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
To disable this, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
|
||||
|
||||
- `nixVersions.unstable` was removed. Instead the following attributes are provided:
|
||||
- `nixVersions.git` which tracks the latest Nix master and is roughly updated once a week. This is intended to enable people to easily test unreleased changes of Nix to catch regressions earlier.
|
||||
- `nixVersions.latest` which points to the latest Nix version packaged in nixpkgs.
|
||||
|
||||
- Julia environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
|
||||
|
||||
- The PipeWire and WirePlumber modules have removed support for using
|
||||
|
|
|
@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
|
|||
cargoHash = "sha256-lyKPmzuZB9rCBI9JxhxlyDtNHLia8FXGnSgV+D/dwgo=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
(lib.getBin nixVersions.unstable)
|
||||
(lib.getBin nixVersions.latest)
|
||||
];
|
||||
|
||||
env.CFG_RELEASE = version;
|
||||
|
|
|
@ -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.";
|
||||
}
|
||||
)))
|
||||
|
|
|
@ -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";
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue