Merge pull request #305951 from Ma27/nix-unstable-testing

nixVersions.unstable: build from master, re-init at 2.22.0.pre20240321_6fd2f42c

Changed files
+75 -17
lib
tests
nixos
doc
manual
release-notes
pkgs
development
tools
language-servers
tools
package-management
+1 -1
lib/tests/release.nix
···
# 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; },
}:
+4
nixos/doc/manual/release-notes/rl-2405.section.md
···
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
+1 -1
pkgs/development/tools/language-servers/nil/default.nix
···
cargoHash = "sha256-lyKPmzuZB9rCBI9JxhxlyDtNHLia8FXGnSgV+D/dwgo=";
nativeBuildInputs = [
-
(lib.getBin nixVersions.unstable)
+
(lib.getBin nixVersions.latest)
];
env.CFG_RELEASE = version;
+16 -2
pkgs/tools/package-management/nix/default.nix
···
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
···
nix;
stable = addFallbackPathsCheck self.nix_2_18;
-
-
unstable = self.nix_2_22;
} // lib.optionalAttrs config.allowAliases (
lib.listToAttrs (map (
minor:
···
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.";
+
}
)))
+53 -13
pkgs/tools/package-management/nix/nix-perl.nix
···
, 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";
-
}
+
})