Unverified Commit fac5f272 authored by Maximilian Bosch's avatar Maximilian Bosch Committed by GitHub
Browse files

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

nixVersions.unstable: build from master, re-init at 2.22.0.pre20240321_6fd2f42c
parents abc69efa 4ccf49b1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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; },
}:

+4 −0
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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;
+16 −2
Original line number Diff line number Diff line
@@ -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.";
  }
)))
+53 −13
Original line number Diff line number Diff line
@@ -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";
}
})