Commit graph

3166 commits

Author SHA1 Message Date
Jason Yundt d54262911c nixos/systemd: fix run0 failing to run commands
Fixes #361592.

I was able to test this change by doing the following:

1. Create a file named “test-systemd-run0.nix” that contains this Nix
expression:

    let
      nixpkgs = /path/to/nixpkgs;
      pkgs = import nixpkgs { };
    in
    pkgs.testers.runNixOSTest {
      name = "test-systemd-run0";
      nodes.machine = {
        security.polkit.enable = true;
      };
      testScript = ''
        start_all()
        machine.succeed("run0 env")
      '';
    }

2. Replace “/path/to/nixpkgs” with the actual path to an actual copy of
Nixpkgs.

3. Run the integration test by running this command:

    nix-build <path to test-systemd-run0.nix>
2025-06-24 10:18:56 -04:00
Masum Reza a2b5af4710
limine-install: cleanup, improve type hinting (#416188) 2025-06-23 23:08:45 +05:30
r-vdp c28b3143da
nixos/systemd-oomd: use the correct name for the top-level user slice
`user-.slice` does not seem to exist, and the config we generate for it is
rejected by systemd (see `systemctl status user-.slice`).
I suppose that what was really intended here, was to configure
`user.slice`, which is the one that is documented in `man systemd.special`.

Reported-by: Ian Sollars <Ian.Sollars@brussels.msf.org>
2025-06-20 18:53:16 +02:00
Emily dc90d27011
treewide: remove Perl-based switch-to-configuration (#414882) 2025-06-19 20:30:55 +01:00
K900 458a0d727d Merge remote-tracking branch 'origin/master' into staging-next 2025-06-16 12:41:22 +03:00
nikstur 50d0a81800 nixos/nix-store-veritysetup: init 2025-06-16 10:28:53 +02:00
Jared Baur c59d4343f9
treewide: remove Perl-based switch-to-configuration 2025-06-11 08:56:42 -07:00
K900 c9dd2063b7 Merge remote-tracking branch 'origin/master' into staging-next 2025-06-06 09:28:07 +03:00
Philip Taron 1755d9399b
nixos/networkd: update valid KeepConfiguration values (#395621) 2025-06-05 16:17:48 -07:00
nixpkgs-ci[bot] 1c8c1864d6
Merge master into staging-next 2025-06-03 18:06:20 +00:00
Masum Reza 4c902775b8
nixos/limine: make the install script more resilent (#413390) 2025-06-03 20:40:14 +05:30
nixpkgs-ci[bot] 3a906e9756
Merge master into staging-next 2025-05-31 06:05:28 +00:00
Jörg Thalheim 51ecd58047 system.etc.overlay: build erofs also locally
images in etc tends to be small in size (mostly contains symlinks)
so it's not worth it to reach out to a remote builder for that.
2025-05-30 18:52:30 +02:00
nixpkgs-ci[bot] 146a746157
Merge staging-next into staging 2025-05-30 12:07:33 +00:00
nixpkgs-ci[bot] c25ea8ef9b
Merge master into staging-next 2025-05-30 12:06:47 +00:00
Josh Hoffer 57c6e3bbe4 nixos/stage-1.init.sh: only remount bind fsType
We should not remount all filesystem types since not all filesystems
are safe to remount and some (nfs) return errors if remounted with
certain mount options.
2025-05-30 12:13:13 +05:30
Josh Hoffer 07f46bea64 nixos/stage-1.init.sh: remove trailing , from mount options 2025-05-30 12:13:13 +05:30
nixpkgs-ci[bot] aabaf9f281
Merge staging-next into staging 2025-05-29 18:06:18 +00:00
nixpkgs-ci[bot] bc2e6e0ae4
Merge master into staging-next 2025-05-29 18:05:35 +00:00
Florian Klink 9dd801dea7
nixos/systemd-initrd: honor the enable option in contents (#411800) 2025-05-29 18:06:12 +03:00
nixpkgs-ci[bot] 97fff3a232
Merge staging-next into staging 2025-05-29 12:07:37 +00:00
nixpkgs-ci[bot] 96ecef502b
Merge master into staging-next 2025-05-29 12:06:54 +00:00
Florian Klink 2d03d70e9d
nixos/systemd-stage-1: follow systemd /run propagation (#405687) 2025-05-29 12:21:50 +03:00
isabel 00b6b1ffcc
nixos/etc-overlay: mark EROFS_FS kernel configuration option as required (#365450) 2025-05-29 09:42:43 +01:00
Fiona Behrens 99da5ec2bc nixos/systemd-initrd: honor the enable option in contents
The enable attribute of `boot.initrd.systemd.contents.<name>` was
ignored for building initrd storePaths. This resulted in building
derivations for the initrd even if it was disabled.

Found while testing a to build a nixos system with a kernel without
lodable modules[0]

[0]: https://github.com/NixOS/nixpkgs/pull/411792
2025-05-28 17:10:02 +00:00
Peter Marshall 7d36daa76a
nixos/systemd-stage-1: follow systemd /run propagation
We currently bypass systemd's switch-root logic by premounting
/sysroot/run. Make sure to propagate its sub-mounts with the recursive
flag, in accordance with the default switch-root logic.

This is required for creds at /run/credentials to survive the transition
from initrd -> host.
2025-05-28 13:02:39 -04:00
nixpkgs-ci[bot] fe00466a98
Merge staging-next into staging 2025-05-28 12:08:06 +00:00
nixpkgs-ci[bot] 61b02cb4be
Merge master into staging-next 2025-05-28 12:07:03 +00:00
Florian Klink 6be6061a7c
nixos/systemd/networkd: allow passing flow control fields to link (#402587) 2025-05-28 09:39:16 +03:00
nixpkgs-ci[bot] 3f5733a8f9
Merge staging-next into staging 2025-05-26 18:06:16 +00:00
nixpkgs-ci[bot] cc7ffdded8
Merge master into staging-next 2025-05-26 18:05:25 +00:00
Jörg Thalheim 131462b962
emergencyMode, emergencyAccess: cross reference options in docs. (#410418) 2025-05-26 14:12:41 +02:00
nixpkgs-ci[bot] 8afc7d1f62
Merge staging-next into staging 2025-05-26 12:07:27 +00:00
nixpkgs-ci[bot] a5ddfccbf2
Merge master into staging-next 2025-05-26 12:06:38 +00:00
programmerlexi 2c673b6e67
nixos/limine: fix boot entry not being created properly (#410935) 2025-05-26 13:19:36 +05:30
Luj b16c62d24e
nixos/clevis: fix clevis in scripted initrd (#410661) 2025-05-26 09:04:17 +02:00
nixpkgs-ci[bot] 6650fae47a
Merge master into staging-next 2025-05-25 12:06:03 +00:00
Vladimír Čunát 3d7372384d
Merge branch 'master' into staging 2025-05-25 09:51:57 +02:00
Julien Malka 9655143028
nixos/clevis: fix clevis in scripted initrd
Fixes #389750
2025-05-25 01:34:06 +02:00
LuoChen af93b70ddc nixos/boot: add boot.tmp.useZram options 2025-05-24 23:01:41 +08:00
DavHau d5d323a907 emergencyMode, emergencyAccess: cross reference options in docs.
I was confused why I could not get an emergency access console despite setting systemd.emergencyMode=true.

Turns out there is another similar option `boot.initrd.systemd.emergencyAccess` that I should have used.

This is confusing and this change should make it more clear vie the docs of both these options.
2025-05-24 14:01:22 +07:00
nixpkgs-ci[bot] 5c675c14a4
Merge staging-next into staging 2025-05-23 17:49:42 +00:00
nixpkgs-ci[bot] 542c7ef677
Merge master into staging-next 2025-05-23 17:48:46 +00:00
John Titor 88d5e40fcb
limine, nixos/limine, nixosTests.limine: inherit pkgs.limine maintainers
also adds @programmerlexi to limine package maintainers

Signed-off-by: John Titor <50095635+JohnRTitor@users.noreply.github.com>
2025-05-23 15:06:50 +05:30
Morgan Jones ff7b4ccdff
nixos/stage-2-init: support nosuid/nodev mount options for /nix/store (#406184) 2025-05-22 19:16:54 -07:00
nixpkgs-ci[bot] c18eaf47ec
Merge master into staging-next 2025-05-22 18:05:39 +00:00
hustlerone de6905ee37 nixos/limine: tidy up the boot menu 2025-05-22 20:45:00 +05:30
nixpkgs-ci[bot] 0870c6fca2
Merge master into staging-next 2025-05-22 00:16:45 +00:00
Paul Haerle 190ee55caa
systemd-boot: improve error message if no previous systemd boot is fo… (#409073) 2025-05-22 00:54:16 +02:00
nixpkgs-ci[bot] f71fa930ff
Merge master into staging-next 2025-05-21 18:06:02 +00:00
programmerlexi 95030d7eb3 nixos/limine: don't modify boot order on bootloader update 2025-05-21 23:17:42 +05:30
programmerlexi 36ecfe6216 nixos/limine: add support for secure boot
Signed-off-by: John Titor <50095635+JohnRTitor@users.noreply.github.com>
2025-05-21 21:59:23 +05:30
nixpkgs-ci[bot] 4d9655a56c
Merge master into staging-next 2025-05-21 12:07:14 +00:00
programmerlexi a094b5d8cc nixos/limine: carefully remove files instead of nuking them 2025-05-21 15:22:45 +05:30
programmerlexi 2c7659b1ff nixos/limine: atomically copy files 2025-05-21 15:22:45 +05:30
nixpkgs-ci[bot] 7ac4ee7b2a
Merge master into staging-next 2025-05-20 18:05:35 +00:00
Jörg Thalheim b6c1663986 systemd-boot: improve error message if no previous systemd boot is found. 2025-05-20 15:39:07 +02:00
benaryorg e434130d0b
nixos/systemd: unconditional systemd-journald-audit.socket
Containers did not have *systemd-journald-audit.socket* in *additionalUpstreamSystemUnits*, which meant that the unit was not provided.
However the *wantedBy* was added without any additional check, therefore creating an empty unit with just the *WantedBy* on *boot.isContainer* machines.
This caused `systemd-analyze verify` to fail:

```text
systemd-journald-audit.socket: Unit has no Listen setting (ListenStream=, ListenDatagram=, ListenFIFO=, ...). Refusing.
systemd-journald-audit.socket: Cannot add dependency job, ignoring: Unit systemd-journald-audit.socket has a bad unit file setting.
systemd-journald-audit.socket: Cannot add dependency job, ignoring: Unit systemd-journald-audit.socket has a bad unit file setting.
```

The upstream unit already contains the following, which should make it safe to include regardless:

```ini
[Unit]
ConditionSecurity=audit
ConditionCapability=CAP_AUDIT_READ
```

For reference, this popped up in the context of #[360426](https://redirect.github.com/NixOS/nixpkgs/issues/360426) as well as #[407696](https://redirect.github.com/NixOS/nixpkgs/pull/407696).

Co-authored-by: Bruce Toll <4109762+tollb@users.noreply.github.com>
Signed-off-by: benaryorg <binary@benary.org>
2025-05-18 19:58:59 +00:00
Grimmauld aa3e5a2738
nixos/stage-2-init: remove 'readOnlyNixStore' option
The `boot.readOnlyNixStore` option can be removed,
now that the more flexible `boot.nixStoreMountOpts` option exists.
2025-05-18 12:08:03 +02:00
Grimmauld 4e440ec124
nixos/stage-2-init: support nosuid/nodev mount options for /nix/store
This is part of security-in-depth.
No suid binaries or devices should ever be in the nix store.
If they are, something is seriously wrong.
Disallowing this from a file system level should be non-breaking.
2025-05-18 12:07:10 +02:00
nixpkgs-ci[bot] 7e279a7b17
Merge master into staging-next 2025-05-18 00:18:27 +00:00
nikstur 3f4a4ffa18
nixos/etc-overlay: mount etc with nodev,nosuid (#406397) 2025-05-17 20:32:38 +02:00
Ramses c0f89cb69e
nixos/limine: substituteAll -> replaceVarsWith (#406872) 2025-05-17 20:08:31 +02:00
nixpkgs-ci[bot] 202ff56cc6
Merge master into staging-next 2025-05-17 18:04:53 +00:00
Ramses 139080c304
nixos/specialisation: escape and restrict specialisation names (#405393) 2025-05-17 19:47:05 +02:00
nixpkgs-ci[bot] 4ee3bd3150
Merge master into staging-next 2025-05-16 18:05:48 +00:00
Sandro c0cd90d343
nixos/etc: remove rogue continue (#399915) 2025-05-16 15:08:17 +02:00
Robert Hensing 3dd811c4b9 lib.types.attrNamesToTrue: unpublish temporarily
Thank you for making this change.
Unfortunately, and I take blame for this, this change to the module
system was not reviewed and approved by the module system maintainers.
I'm supportive of this change, but extending it on the staging-next
branch is not the right place.
This commit is also here to make sure that we don't run into conflicts
or other git trouble with the staging workflow.

Review:
It looks alright, but it didn't have tests yet, and it should be
considered in a broader context where the existence of this type
creates an incentive to be used in cases where the `<attr> = false;`
case is undesirable. I'd like to complement this with an type that
has `<attr> = {};` only.

My apologies for the lack of a timely and clear review. Often we
recommend to define the type outside the module system until
approved. This commit puts us back in that state.

attrNamesToTrue was introduced in 98652f9a90
2025-05-16 11:52:36 +02:00
Winter b7ea2eaa7d
nixos/kernel: Module inclusion improvements (#375975) 2025-05-16 01:44:53 -04:00
Arian van Putten 871526be1f
nixos/image/repart: Use own assertions / warnings. (#406940) 2025-05-15 19:14:53 +02:00
Will Fancher 96fb55514f nixos/stage-1: Add option for allowing missing modules 2025-05-15 00:00:56 -04:00
Will Fancher 028b3e1411 nixos: Use common modulesClosure in scripted and systemd initrd 2025-05-15 00:00:56 -04:00
Will Fancher 98652f9a90 nixos/kernel: Allow controlling modules with attrsets 2025-05-15 00:00:56 -04:00
Vladimír Čunát bf7544999c
Merge master into staging-next 2025-05-14 08:12:15 +02:00
Will Fancher 4b0d1225f5 lib/asserts: Factor out NixOS's toplevel assertion / warning logic. 2025-05-14 01:21:10 -04:00
nat e51e0da386
nixos/limine: substituteAll -> replaceVarsWith 2025-05-13 23:14:43 +02:00
Berk D. Demir e4bf5ce70d nixos/activation: Fix shellcheck test failure
lib/test.nix relies on `fileset.toSource` which creates a source dir
with the files of interest. `testers.shellcheck` passes all the files in
the source dir to shellcheck. The issue is related to relative path
sourcing, i.e. `source ./lib.sh` where shellcheck cannot make any
assumptions about the working directory.

Options were:
1) Disable this warning with a directive
   Prior disabling in the tree:
    - pkgs/tools/nix/info/info.sh
    - nixos/modules/testing/test-instrumentation.nix

2) Set source-path to SCRIPTDIR with a directive
   https://github.com/koalaman/shellcheck/wiki/Directive#source-path

   Even though we don't enable external script following for shellcheck
   with `-x` flag given every file in the source dir is passed, this
   directive seems to capture the intent to help shellcheck a bit
   better.

Went with option 2.
2025-05-12 09:58:28 -07:00
r-vdp a2f3516c24
nixos/etc-overlay: mount etc with nodev,nosuid 2025-05-12 10:35:18 +02:00
nixpkgs-ci[bot] 673efed879
Merge master into staging-next 2025-05-11 00:17:35 +00:00
Martin Weinelt 9da9474d63
nixos/boot/tmp: introduce adaptive huge memory pages (#404514) 2025-05-11 01:23:32 +02:00
Florian Klink 180f5a2593
nixos/systemd-initrd: deprecate strip (#404512) 2025-05-10 19:11:16 +03:00
Colin 62cab5dbe8
pkgs/buffybox: 3.2.0-unstable-2025-03-16 -> 3.3.0-unstable-2025-05-06 (#403179) 2025-05-09 02:04:39 +00:00
Gerg-L 98313e2b81
nixos/systemd-initrd: deprecate strip
It only saved ~1MiB of initramfs size, but caused a few issues
like unloadable kernel modules.
2025-05-08 19:08:14 -04:00
hustlerone 90ff6dc49e nixos/unl0kr: fix touchpads 2025-05-09 00:29:43 +02:00
toborwinner 2b9fc0ccc5
nixos/specialisation: escape and restrict specialisation names
Prevent the specialisation names from containing a forward slash.
Also escape them to allow for spaces in specialisation names.
2025-05-09 00:10:54 +02:00
PAEPCKE, Michael b8eb81e873
nixos/boot/tmp: introduce adaptive huge memory pages 2025-05-05 22:52:02 +00:00
Yureka 3b42616f4b nixos/initrd-ssh: include sshd-auth binary in initrd 2025-05-05 17:23:47 +02:00
Charlie Moog 5781ef6de9
nixos/systemd/networkd: allow passing flow control fields to link 2025-05-03 18:18:30 +00:00
Sandro 55e8dc37a3
nixos/luksroot: remove useless $new_k_luks (#115832) 2025-04-30 16:51:33 +02:00
nikstur bf2bc08b37
repart: Enable discard option (#397906) 2025-04-28 13:34:32 +02:00
Paul Haerle 86a1af8a7b
nixos/systemd: clarify what enableStrictShellChecks checks (#401460) 2025-04-27 14:15:15 +02:00
Scott Edlund 02555cd0bd nixos/systemd: clarify what enableStrictShellChecks checks
the specifics of this option are in the release notes, but bring
them into the documentation.
2025-04-26 01:46:12 +08:00
Raito Bezarius 139bfb5b5e nixos/system/activation/bootspec: generalize the bootspec tooling package
After RFC-0125 implementation, Determinate Systems was pinged multiple
times to transfer the repository ownership of the tooling to a
vendor-neutral repository.

Unfortunately, this never manifested. Additionally, the leadership of
the NixOS project was too dysfunctional to deal with this sort of
problem. It might even still be the case up to this day.

Nonetheless, nixpkgs is about enabling end users to enact their own
policies. It would be better to live in a world where there is one
obvious choice of bootspec tooling, in the meantime, we can live in a
world where people can choose their bootspec tooling.

The Lix forge possess one fork of the Bootspec tooling:
https://git.lix.systems/lix-community/bootspec which will live its own
life from now on.

Change-Id: I00c4dd64e00b4c24f6641472902e7df60ed13b55
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2025-04-24 18:22:02 +02:00
Nico Felbinger e0d1b49a46
chore: move meta option to top level in many modules 2025-04-19 18:27:48 +02:00
Sandro Jäckel 484b00be20
nixos/etc: remove rogue continue 2025-04-19 03:01:40 +02:00
Martin Weinelt fbf76bf72b
make-initrd-ng: Restore stripped file permissions (#398396) 2025-04-13 18:11:19 +02:00
Will Fancher c9ea864d6f nixos/shutdown: Create /run/initramfs with mode 0700 2025-04-13 12:02:16 -04:00
Markus Sütter c6476ca119 repart: Enable discard option
systemd-repart can be configured to not automatically issue BLKDISCARD commands
to the underlying hardware.

This PR exposes this option in the repart module.
2025-04-11 12:46:50 +02:00
Hugo Lageneste 1599c37a6b nixos/luksroot: remove useless $new_k_luks
Remove the variable new_k_luks used only once in the code.
2025-04-04 23:39:29 +02:00
Jared Baur d8f9c63512
nixos/networkd: update valid KeepConfiguration values
These changed with the release of systemd v257 from "dhcp*" to
"dynamic*".
2025-04-02 16:27:33 -07:00