diff --git a/nixos/lib/test-driver/src/test_driver/__init__.py b/nixos/lib/test-driver/src/test_driver/__init__.py index 774f3afdf49e..568ac5758d05 100644 --- a/nixos/lib/test-driver/src/test_driver/__init__.py +++ b/nixos/lib/test-driver/src/test_driver/__init__.py @@ -89,6 +89,11 @@ def main() -> None: type=Path, required=True, ) + arg_parser.add_argument( + "--test-script", + help="path to a test script to run, taking precedence over the one defined in the config file", + type=Path, + ) arg_parser.add_argument( "--keep-vm-state", help=argparse.SUPPRESS, @@ -163,8 +168,12 @@ def main() -> None: if args.debug_hook_attach is not None: debugger = Debug(logger, args.debug_hook_attach) + config = load_driver_configuration(args.config) + if args.test_script is not None: + config.test_script = args.test_script + with Driver( - config=load_driver_configuration(args.config), + config=config, out_dir=output_directory, logger=logger, keep_machine_state=args.keep_machine_state, diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix index 240020c19374..c6e0bee172e8 100644 --- a/nixos/modules/security/pam.nix +++ b/nixos/modules/security/pam.nix @@ -1422,7 +1422,6 @@ let modulePath = config.security.pam.pam_unixModulePath; settings = { nullok = true; - yescrypt = lib.mkIf config.security.pam.enableLegacySettings true; }; } { diff --git a/nixos/modules/services/display-managers/gdm.nix b/nixos/modules/services/display-managers/gdm.nix index ea912d70b0af..3f8501f1ece5 100644 --- a/nixos/modules/services/display-managers/gdm.nix +++ b/nixos/modules/services/display-managers/gdm.nix @@ -577,7 +577,6 @@ in control = "requisite"; modulePath = config.security.pam.pam_unixModulePath; settings.nullok = true; - settings.yescrypt = true; } ]; diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index d0d2d8de4411..c5f881c9eb84 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -458,7 +458,6 @@ in control = "requisite"; modulePath = config.security.pam.pam_unixModulePath; settings.nullok = true; - settings.yescrypt = true; } ]; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index f892390cefd5..a74e80ca39e8 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -153,6 +153,7 @@ in console-log = runTest ./nixos-test-driver/console-log.nix; containers = runTest ./nixos-test-driver/containers.nix; nspawn-daemon-reexec-dbus = runTest ./nspawn-daemon-reexec-dbus.nix; + multi-arch-test = runTest ./nixos-test-driver/multi-arch-test.nix; skip-typecheck = runTest ./nixos-test-driver/skip-typecheck.nix; console-timeout = runTest ./nixos-test-driver/console-timeout.nix; options-doc-regression = import ./nixos-test-driver/options-doc-regression.nix { inherit pkgs; }; diff --git a/nixos/tests/login-nosuid.nix b/nixos/tests/login-nosuid.nix index f5582382891f..bf1299a00654 100644 --- a/nixos/tests/login-nosuid.nix +++ b/nixos/tests/login-nosuid.nix @@ -57,6 +57,7 @@ with subtest("create user"): machine.succeed("useradd -m alice") machine.succeed("(echo foobar; echo foobar) | passwd alice") + machine.succeed("grep -F 'alice:$y$' /etc/shadow") with subtest("Check whether switching VTs works"): machine.fail("pgrep -f 'agetty.*tty2'") diff --git a/nixos/tests/login.nix b/nixos/tests/login.nix index bd0d3b7bc005..0eb0f8bf6ee3 100644 --- a/nixos/tests/login.nix +++ b/nixos/tests/login.nix @@ -28,6 +28,7 @@ with subtest("create user"): machine.succeed("useradd -m alice") machine.succeed("(echo foobar; echo foobar) | passwd alice") + machine.succeed("grep -F 'alice:$y$' /etc/shadow") with subtest("Check whether switching VTs works"): machine.fail("pgrep -f 'agetty.*tty2'") diff --git a/nixos/tests/nixos-test-driver/multi-arch-test.nix b/nixos/tests/nixos-test-driver/multi-arch-test.nix new file mode 100644 index 000000000000..33b9973c7f89 --- /dev/null +++ b/nixos/tests/nixos-test-driver/multi-arch-test.nix @@ -0,0 +1,55 @@ +{ pkgs, lib, ... }: +{ + name = "multi-arch-test"; + meta.maintainers = with pkgs.lib.maintainers; [ tfc ]; + + node.pkgsReadOnly = false; + + nodes = { + # Setting build = host platform because such standard VM setups + # are well-cached by the multi-arch build infrastructure of the + # project. + vmIntel = { + nixpkgs.buildPlatform = "x86_64-linux"; + nixpkgs.hostPlatform = "x86_64-linux"; + }; + vmArm = { + nixpkgs.buildPlatform = "aarch64-linux"; + nixpkgs.hostPlatform = "aarch64-linux"; + }; + }; + + defaults = { + # not needed for this test and shrinks the closure + # because we dont' need qemu for all architectures + virtualisation.qemu.guestAgent.enable = false; + + # the test is already very slow but we don't need DHCP anyway + networking.dhcpcd.enable = false; + + # fix the network-online target, otherwise it doesn't work + # properly as a synchronization mechanism. + systemd.network.wait-online.enable = true; + systemd.network.wait-online.anyInterface = true; + }; + + # slow due to SW emulation but shouldn't be slower than that + globalTimeout = 5 * 60; + + testScript = { nodes, ... }: /* python */ '' + start_all() + + vmIntel.systemctl("start network-online.target") + vmArm.systemctl("start network-online.target") + vmIntel.wait_for_unit("network-online.target") + vmArm.wait_for_unit("network-online.target") + + vmIntel.succeed("ping -c 1 vmArm") + vmArm.succeed("ping -c 1 vmIntel") + + archIntel = vmIntel.succeed("uname -m") + t.assertIn("${nodes.vmIntel.nixpkgs.hostPlatform.qemuArch}", archIntel, "machine1 is an intel VM") + archArm = vmArm.succeed("uname -m") + t.assertIn("${nodes.vmArm.nixpkgs.hostPlatform.qemuArch}", archArm, "machine1 is an ARM VM") + ''; +} diff --git a/pkgs/build-support/replace-vars/replace-vars-with.nix b/pkgs/build-support/replace-vars/replace-vars-with.nix index abbb9a1cc1a0..d4e126157c7f 100644 --- a/pkgs/build-support/replace-vars/replace-vars-with.nix +++ b/pkgs/build-support/replace-vars/replace-vars-with.nix @@ -122,7 +122,8 @@ in stdenvNoCC.mkDerivation ( { - name = baseNameOf src; + name = + if (attrs ? pname && attrs ? version) then "${attrs.pname}-${attrs.version}" else baseNameOf src; } // optionalAttrs // forcedAttrs diff --git a/pkgs/by-name/bt/btrfs-progs/package.nix b/pkgs/by-name/bt/btrfs-progs/package.nix index e5034da09c2e..52d1d0bb827c 100644 --- a/pkgs/by-name/bt/btrfs-progs/package.nix +++ b/pkgs/by-name/bt/btrfs-progs/package.nix @@ -21,11 +21,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "btrfs-progs"; - version = "7.0"; + version = "7.1"; src = fetchurl { url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${finalAttrs.version}.tar.xz"; - hash = "sha256-wobWh2y81yMnoLQX5M/SgDU+wj43tUn9vNeACoMtmpk="; + hash = "sha256-0fVcwpcTmMkULqp50gPmPVhqO0uGf5VmZKHWgyLNTjQ="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/op/openresolv/package.nix b/pkgs/by-name/op/openresolv/package.nix index b487493675ce..35922bde47ca 100644 --- a/pkgs/by-name/op/openresolv/package.nix +++ b/pkgs/by-name/op/openresolv/package.nix @@ -13,8 +13,8 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "NetworkConfiguration"; repo = "openresolv"; - rev = "v${finalAttrs.version}"; - sha256 = "sha256-I86BHiSI3G4xlYRJC99elHw8RyUd3eHdkV5kiEGRXNE="; + tag = "v${finalAttrs.version}"; + hash = "sha256-I86BHiSI3G4xlYRJC99elHw8RyUd3eHdkV5kiEGRXNE="; }; nativeBuildInputs = [ makeWrapper ]; @@ -38,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: { ''; meta = { + changelog = "https://github.com/NetworkConfiguration/openresolv/releases/tag/${finalAttrs.src.tag}"; description = "Program to manage /etc/resolv.conf"; mainProgram = "resolvconf"; homepage = "https://roy.marples.name/projects/openresolv"; diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 08c27feddb44..df3b586a2b0f 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -5,38 +5,38 @@ "lts": false }, "6.1": { - "version": "6.1.177", - "hash": "sha256:0c0ayz4nygcmz4865r7mcgmh7hic4fi7zysnj6vdlyj53bz9nlpn", + "version": "6.1.178", + "hash": "sha256:03vjdk7lk9zgydzamhwvrg066f8748vrfjggqqd2n0vmr9kzm0vx", "lts": true }, "5.15": { - "version": "5.15.211", - "hash": "sha256:0qfry534wl5sbm6b4hf6fxqrr6mzf1k9pa2435sqp4hp6vjm9fdy", + "version": "5.15.212", + "hash": "sha256:1zk51f3pv7ghz68hxkxhds9cjwmk35651pxbyyvyqyhcr7msx5n3", "lts": true }, "5.10": { - "version": "5.10.260", - "hash": "sha256:113bka32apz5pfqjfnv97k9hf9arkn5asfcd6cw7snsh65qjka27", + "version": "5.10.261", + "hash": "sha256:1i6pzaib30r1nmyxsrhqmfsdxy1jvvlmzc9f8lxzv9a00q8a3751", "lts": true }, "6.6": { - "version": "6.6.144", - "hash": "sha256:1hzcax2ypzhrjzmq4b0jyqyc4al0ncyfcj9pq36phl29gcqbh6gc", + "version": "6.6.145", + "hash": "sha256:09h1pzcai0i10pdyyfbsmq03rgk1x5wv2d937m5nz2xdv0rhw46y", "lts": true }, "6.12": { - "version": "6.12.96", - "hash": "sha256:1hapz6xz7plq56jc0drbzcsfcm1amlnphwbfhl0klsxkb9finbkx", + "version": "6.12.97", + "hash": "sha256:0vswyjh91x52ay99mqrdfhwnvd6nnzv4hpncywk908njpfixzgbc", "lts": true }, "6.18": { - "version": "6.18.39", - "hash": "sha256:1c4c3wf00pb8x4kxxrmn46n7mgpnnm78sfi2jx0yg5cxmv9f79x7", + "version": "6.18.40", + "hash": "sha256:0cd42fb4390x73jdzbhacm9g9s0ji58whxhik2ndmr1rr0ggq4ip", "lts": true }, "7.1": { - "version": "7.1.4", - "hash": "sha256:0blfl34vi6vlcdjxd7mbhskl2p7i0zpgdy707a7d6xcn24m94qqw", + "version": "7.1.5", + "hash": "sha256:1rs162gcf6hsafrrmp3y8k9myn20s3s62xdp4zf39pxw7imik812", "lts": false } } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c33b87cd6b67..1f4fd275b8e4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7981,7 +7981,6 @@ with pkgs; qemu_test = lowPrio ( qemu.override { - hostCpuOnly = true; nixosTestRunner = true; } );