Commit graph

3039 commits

Author SHA1 Message Date
r-vdp 4c26c97d21
nixos/networkd: add missing UseGateway key in the DHCPv4 section 2024-03-08 10:54:03 +01:00
Viktor Kleen 0aed32b9dd
nixos/systemd: Only include systemd-boot-random-seed if the unit exists
The unit file is only present if systemd was built with bootloader support.
2024-03-08 08:52:11 +00:00
Fabian Möller f753e58e6e
nixos/networkd: allow RoutingPolicyRule port ranges
Linux and Systemd allow port ranges to be used in routing policy rules.

https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html#SourcePort=
2024-03-06 09:11:54 +01:00
r-vdp a8ab8b59a7
systemd-boot: introduce options to set a sort-key for systemd-boot entries
Without sort-keys specified on entries, the entries are sorted only by
file name (in decreasing order, so starting at the end of the alphabet!),
without taking any other fields into account (see
[the boot loader specification reference][1]).
Moreover, entries without a sort-key are always ordered after all
entries with a sort-key, so by not adding a sort-key to the NixOS ones,
we cannot add a sort-key to any other entry while keeping it below the
NixOS entries.

So currently we have options to set the file names for additional entries like
memtest and netbootxyz.
However, as mentioned above, the sorting by file name is not very intuitive and
actually sorts in the opposite order of what is currently mentioned in the option
descriptions.

With this commit, we set a configurable sort-key on all NixOS entries,
and add options for setting the sort-keys for the memtest and netbootxyz
entries.
The sorting by sort-key is more intuitive (it starts at the start of the
alphabet) and also takes into account the machine-id and version for entries
with identical sort-keys.

We use a bootspec extension to store the sort keys, which allows us to
redefine the sort key for individual specialisations without needing any
special casing.

[1]: https://uapi-group.org/specifications/specs/boot_loader_specification/#sorting
2024-03-02 02:11:32 +01:00
nikstur 1df98b23f6
Merge pull request #292061 from nikstur/systemd-random-seed
nixos/systemd: include systemd-boot-random-seed.service
2024-03-01 21:46:39 +01:00
Silvan Mosberger cd5dc76d83 substitute: Deprecate replacements, introduce replacementsList
Also:
- Add tests
- Treewide update
- Improve docs
2024-02-29 00:35:27 +01:00
nikstur 380f36f350 nixos/systemd: include systemd-boot-random-seed.service
This is necessary to properly refresh the boot loader random seed.
See https://www.freedesktop.org/software/systemd/man/latest/systemd-boot-random-seed.service.html#
2024-02-28 12:14:06 +01:00
nikstur bd4c49f29b nixos/systemd: remove a superfluous override
This is already the upstream default.
2024-02-28 11:45:39 +01:00
Will Fancher b9fe04d671
Merge pull request #291825 from WilliButz/repart/max-label-length
nixos/systemd-repart: add assertion for partition label length
2024-02-27 20:37:02 -05:00
aleksana ec87671bd1 nixos/plymouth: improving documentation of logo option 2024-02-28 09:35:44 +08:00
Will Fancher a587a6a357
Merge pull request #285401 from sdht0/systemd-boot-xbootldr
nixos/systemd-boot: Add support for an XBOOTLDR partition
2024-02-27 20:35:03 -05:00
Will Fancher 031978580c
Merge pull request #291882 from philiptaron/systemd-networkd/boolValuesPlus
nixos/networkd: accept `true` and `false` in addition to "yes" and "no" for DHCP= and LinkLocalAddressing=
2024-02-27 20:33:08 -05:00
Sandro 9c1ea5e3a2
Merge pull request #267012 from alois31/plymouth-unbloat
nixos/plymouth: drop the X11 renderer in the initrd
2024-02-27 22:28:27 +01:00
Philip Taron 27d6c242ea
nixos/networkd: accept true and false in addition to "yes" and "no" for DHCP= and LinkLocalAddressing=
These were the only two systemd configuration values that were missing the `boolValues ++` treatment, according to my `rg` through the codebase.
2024-02-27 08:53:32 -08:00
WilliButz 4d59ace14f
nixos/systemd-repart: add assertion for partition label length
The maximum length for a GPT label supported by systemd is 36
characters. When a repart definition contains a label that is longer
than the supported maximum length, it is ignored by systemd-repart and
a log message is produced.

The new assertion makes this obvious to the user at evaluation time,
allowing them to either drop the property entirely or choose a supported
label within the length limit instead.
2024-02-27 17:38:14 +01:00
Siddhartha b470b4432d nixos/systemd-boot: Add support for an XBOOTLDR partition 2024-02-26 21:55:49 -05:00
Julien Malka d882852f8b
Merge pull request #291160 from jmbaur/systemd-boot-builder-cross 2024-02-26 21:43:23 +01:00
Ryan Lahfa 077d41f9d8
Merge pull request #289856 from pennae/supfs-set
nixos/filesystems: make supportedFilesystems an attrset
2024-02-25 18:05:29 +01:00
Jared Baur a786cc0227
nixos/systemd-boot: fix cross for lint check
Since we are not in a `callPackage` context, dependencies in
`nativeBuildInputs` don't get spliced to the buildPlatform, causing a
cross-compiled nixos system to fail at this step when running mypy built
for the hostPlatform.
2024-02-24 08:58:57 -06:00
Harold 4f1dc4bfb7 nixos/modprobe: Added boot.modprobeConfig.useUbuntuModuleBlacklist.
Allowing disable of the Ubuntu blacklist.
2024-02-22 02:51:23 +00:00
Jörg Thalheim 87f6f1fcbd
Merge pull request #290490 from nikstur/idempotent-etc-activation
nixos/etc: make re-mounting /etc overlay idempotent
2024-02-22 07:23:22 +07:00
nikstur 5df8caced4 nixos/etc: make re-mounting /etc overlay idempotent 2024-02-21 22:54:00 +01:00
nikstur 911e22e80d
Merge pull request #288277 from WilliButz/uki/boot-counting-suffix
nixos/boot.uki: add tries option for automatic boot assessment
2024-02-20 22:50:45 +01:00
Florian Klink 8b025e80dc
Merge pull request #288690 from maralorn/drop-unused-fs-binding
nixos: Drop unused variable in systemd/initrd.nix
2024-02-20 14:12:58 +07:00
Sandro Jäckel 191e258e6c
nixos/boot: move name overwrite to pkgs.aggregateModules to option
Before there was a kernel modules path named kernel-modules which then got turned
into linux-X.X.XX-modules-shrunk. Now the unshrunk package is called linux-X.X.XX-modules
and gets turned into X.X.XX-modules-shrunk.
2024-02-20 00:13:16 +01:00
Dominik Xaver Hörl 97d6166176 nixos/etc: fix payload in build-composefs-dump for the file case 2024-02-19 23:27:34 +01:00
pennae 258b935d70 nixos/filesystems: make supportedFilesystems an attrset
this lets us *dis*able filesystem explicitly, as is required by e.g. the
zfs-less installer images. currently that specifically is only easily
possible by adding an overlay that stubs out `zfs`, with the obvious
side-effect of also removing tooling that could run without the kernel
module loaded.
2024-02-19 11:46:52 +01:00
Majiir Paktu 58a373809a nixos/systemd/initrd: follow init param symlinks 2024-02-18 14:57:12 -05:00
Adam Stephens 1012b2a368 nixos/boot/kernel: add kernelPatches example of using kernel mailing list mbox url 2024-02-17 21:21:52 +11:00
WilliButz fbaf7446ec
nixos/boot.uki: add tries option for automatic boot assessment
See https://uapi-group.org/specifications/specs/boot_loader_specification/#boot-counting
and https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/ .

Related to #284135.
2024-02-16 11:31:40 +01:00
Jade Lovelace 5d1feba540 nixos/systemd.oomd: set the memory pressure thresholds as mkDefault
These should be defaults as they're pretty reasonable to want to
override as a user. Unsure how to change the slice defaults to be
overridable, that should probably be a later conversation.
2024-02-15 09:41:26 -08:00
Michele Guerini Rocco c1f27ae1d3
Merge pull request #199515 from MangoIV/mangoiv/add-note-to-boot-initrd-secrets
Add documentation for moved secrets in stage 1
2024-02-14 14:35:04 +01:00
maralorn 6634b86601 nixos: Drop unused variable in systemd/initrd.nix 2024-02-14 01:22:58 +01:00
nikstur 4d2c5b722a
Merge pull request #285114 from WilliButz/improve-uki-settings-merging
nixos/boot.uki: allow partial overrides of default UKI settings
2024-02-08 21:15:08 +01:00
Will Fancher ee9becfdfb
Merge pull request #285315 from jmbaur/sysupdate-fixes
nixos/sysupdate: allow lists in sysupdate config
2024-02-07 03:01:49 -05:00
Florian Klink 7c0a129076
Merge pull request #256652 from giorgiga/rateLimitBurst-documentation
Clarify journal size limit defaults in documentaiton of services.journald.rateLimitBurst
2024-02-06 13:26:35 +01:00
Linus Heckemann 9f571cb4ef
Merge pull request #284508 from nikstur/etc-overlay-leading-slash
nixos/etc: remove leading slash from paths
2024-02-03 18:01:01 +01:00
Sven Friedrich cd75ec216a
nixos/networkd: allow configuring RTTSec for CAKE qdisc 2024-02-02 09:23:13 +01:00
Nick Cao 0850ee016b
nixos/networkd: drop upstreamed stage-1 unit dependencies
Reference: https://github.com/systemd/systemd/pull/27791
2024-01-31 22:52:52 -05:00
Jared Baur 50866dc20f
nixos/sysupdate: allow lists in sysupdate config
Lists are convenient to have in sysupdate configuration when using
multiple `MatchPattern` under `Target` when the target can have multiple
filenames. This use-case is helpful for BootLoaderSpec bootcounting where the target file on
disk can have multiple filenames, and in order for sysupdate to properly
ensure only N number of instances of this target exist at one time, we
need to have multiple match patterns.
2024-01-31 09:12:28 -08:00
Jörg Thalheim 202e697233 nixos/systemd-boot: fix editor option 2024-01-31 10:46:30 +07:00
WilliButz ccff749532
nixos/boot.uki: allow partial overrides of default UKI settings
Previously any user-provided config for boot.uki.settings would need to
either specify a full set of config for ukify or a combination of
mkOptionDefault to merge the "settings" attribute set with the module's
defaults and then mkOverride or mkForce to override a contained
attribute.

Now it is possible to trivially override parts of the module's default
config, such as the initrd or kernel command line, but overriding the
full set of settings now requires mkOverride / mkForce.
2024-01-30 23:54:40 +01:00
Zhong Jianxin cbac4e9b89 nixos/grub: Remove > from submenu title, unbreak grub-reboot
Grub default or next boot entry can be set by GRUB_DEFAULT/grub-set-default/grub-reboot,
and `>` is the separator between submenu and menuentry title[1].

Using `>` in submenu or menuentry title will break this functionality.

After this change, any boot entry (include specialisation) can be boot only once using command like this:

```
grub-reboot 'NixOS - All configurations>NixOS - Configuration 532 (2024-01-30 - 24.05.20231225.e1fa12d)>NixOS - Configuration 532 - (nvidia - 1970-01-01 - nvidia-24.05.20231225.e1fa12d)'
```

[1]: https://www.gnu.org/software/grub/manual/grub/grub.html#default
2024-01-29 19:09:57 +08:00
nikstur a9161ceb5a nixos/etc: remove leading slash from target paths in build-composefs-dump.py
This is necessary so that duplicates in the composefs dump are avoided.
2024-01-28 13:37:23 +01:00
Will Fancher 6f1b17d4b8 systemd-stage-1: Fix hibernate-resume with systemd v255 2024-01-28 06:52:21 -05:00
nikstur 92b98478a8 nixos/etc: fix type checking of build-composefs-dump.py 2024-01-28 01:58:56 +01:00
Julien Malka ceeddc5b15 nixos/systemd-boot: move builder script in bin folder 2024-01-27 01:29:40 +00:00
Lorenz Brun b8b53fdf37 nixos/kernel: add hid_corsair to initrd modules
Same as all the other HID drivers, otherwise Corsair keyboards do not
work before the switch to stage2 without custom configuration.
2024-01-27 02:11:57 +01:00
Will Fancher 0d85bf0efe nixos/systemd: Temporarily bring back multi-user -> network-online
There were several modules, critically including NetworkManager, which
were not prepared for this change. Most of the change was good,
however. Let's bring back the dependency and change the assertion to a
warning for now.
2024-01-25 15:53:52 -05:00
github-actions[bot] 8c2ba7797a
Merge master into staging-next 2024-01-25 12:01:19 +00:00
Julien Malka 39a2e0bb03
Merge pull request #283396 from newAM/clevis-clarify 2024-01-25 08:52:44 +01:00
github-actions[bot] 5af80acc9a
Merge master into staging-next 2024-01-25 06:01:04 +00:00
Jörg Thalheim 559ddda570
Merge pull request #279852 from Madouura/pr/bcachefs
bcachefs: update comments, release-notes, only use IFS for bcachefs, update bcachefs-tools and module
2024-01-25 01:11:04 +01:00
Alex Martens c37de24b78 nixos/clevis: clairify secret creation 2024-01-23 20:46:52 -08:00
github-actions[bot] 01a65d81f3
Merge master into staging-next 2024-01-23 18:00:56 +00:00
Niklas Hambüchen aa6c8ae3a6
Merge pull request #253488 from nh2/install-grub-dont-stat-network-fs
install-grub.pl: Do stat() last to not hang on hanging network FS
2024-01-23 16:36:49 +01:00
Niklas Hambüchen b9ba9df3e8 install-grub.pl: Do stat() last to not hang on hanging network FS 2024-01-23 15:34:40 +00:00
github-actions[bot] 3c7375b75c
Merge master into staging-next 2024-01-22 18:00:55 +00:00
nikstur 733c8ee469
Merge pull request #282086 from nikstur/uki
nixos/uki: init
2024-01-22 17:43:09 +01:00
github-actions[bot] 3a8094730e
Merge master into staging-next 2024-01-22 12:01:10 +00:00
Linus Heckemann 18e5176621
Merge pull request #270727 from nikstur/nixos-perlless-activation
Perlless Activation
2024-01-22 10:11:44 +01:00
nikstur 60f529fc82 nixos/etc: optionally mount etc as an overlay 2024-01-22 00:54:13 +01:00
github-actions[bot] 4dea63e421
Merge master into staging-next 2024-01-20 18:01:02 +00:00
h7x4 e7069e4aa2
Merge pull request #281055 from majiru/resolved-dns-over-tls
nixos/resolved: add dnsovertls option
2024-01-20 15:21:45 +01:00
Jacob Moody dfc87b9048 nixos/resolved: add dnsovertls option 2024-01-19 21:29:22 -06:00
github-actions[bot] 650e10b010
Merge master into staging-next 2024-01-20 00:02:16 +00:00
Julien Malka 42ad0d80ce
Merge pull request #281639 from Mic92/systemd-refactoring 2024-01-19 19:42:32 +01:00
github-actions[bot] 331c789712
Merge master into staging-next 2024-01-19 18:01:00 +00:00
nikstur 985bafa5fc nixos/uki: init 2024-01-19 17:04:59 +01:00
Zolo c9e7344950
Update systemd-boot.nix
Extending the systemd-boot information and where to find more information.
2024-01-19 14:01:26 +01:00
github-actions[bot] 4679030218
Merge master into staging-next 2024-01-19 12:01:13 +00:00
Will Fancher 367d101073 nixos/systemd: assert After=network-online.target -> Wants=
This will catch broken services at the evaluation stage.
2024-01-18 16:28:41 -08:00
Jade Lovelace 62f30634db nixos/systemd: don't require network-online.target for multi-user.target
Previously we required network-online.target for multi-user.target. This
has made a lot of people very angry and has been widely regarded as a
bad move (or at least, very nonstandard):
15d761a525 (commitcomment-128564097)

This was done because of fragile tests and services declaring
dependencies on multi-user.target when they meant network-online.target.

Let's rip off the bandaid and fix our tests.
2024-01-18 16:28:39 -08:00
nikstur eec1845744 nixos/systemd-sysusers: init 2024-01-18 23:08:14 +01:00
github-actions[bot] dc4a7c97b0
Merge master into staging-next 2024-01-18 18:00:55 +00:00
Janne Heß 15c31afd8a
Merge pull request #271067 from nikstur/sysinit-reactivation
nixos/switch-to-configuration: add sysinit-reactivation.target
2024-01-18 16:13:32 +01:00
nikstur e6b66f08a5 nixos/switch-to-configuration: add sysinit-reactivation.target 2024-01-18 00:46:30 +01:00
Jörg Thalheim 4a20af3932 nixos/systemd-boot: move all template variables in one place
This makes it easier to reason about what variables are inserted during packaging.
We also make sure that template file is also valid python syntax, which makes editor errors go away during development.
2024-01-17 22:53:17 +01:00
nikstur 748378a3ec systemd: 254.6 -> 255.2
Removed patches:

- 0007-Fix-hwdb-paths.patch

  The directory we want seems to already be included in the list. Is there
  a reason why we want to restrict it further?

- 0010-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch

  This patch has little to do with how the meson.build file looks now. The
  new patch 0017 is the successor to this one.

- 0015-pkg-config-derive-prefix-from-prefix.patch

  This is fixed upstream. We don't need this anymore.
2024-01-17 14:13:46 +01:00
Madoura d86395db78
nixos/stage-1.init.sh: only set 'IFS' in 'waitDevice' for bcachefs 2024-01-16 15:06:05 -06:00
Madoura 919c05460b
nixos/stage-1.init.sh: fix IFS comment grammar 2024-01-16 15:06:04 -06:00
Will Fancher bf54848f3b
Merge pull request #280232 from jmbaur/sysupdate-example-fix
nixos/sysupdate: fix example text
2024-01-16 15:43:05 -05:00
Will Fancher 66e3ec7d30
Merge pull request #278895 from jmbaur/repart-initrd-loopback
nixos/repart: add loop module to initrd
2024-01-16 15:40:19 -05:00
Maciej Krüger c0ef1f9479
nixos/network-interfaces: add assertion if used in after or wants 2024-01-12 17:29:05 +01:00
Jared Baur d177e2ef06
nixos/sysupdate: fix example text
The example systemd-sysupdate transfer name has a ".conf" suffix,
although the files on the final system are already appended with this
suffix, so the file ends up being "transfer-name.conf.conf". Remove the
suffix in the example so that users will get a transfer filename they
expect.
2024-01-11 01:47:36 -08:00
Ryan Lahfa 176e84d44f
Revert "nixos/systemd-boot: init boot counting" 2024-01-11 01:00:43 +01:00
Julien Malka eb435897a6 nixos/systemd-boot: init boot counting 2024-01-07 11:34:09 +00:00
Jared Baur 1dad7f6821
nixos/repart: add loop module to initrd
Systemd-repart will use loopback devices for partition creation if it is
able to, and will fallback to doing "offline" partition creation writing
data directly to files. From what I see looking at the repart code,
there are specific features that cannot be taken advantage of when not
using loopback devices (e.g. no BTRFS subvolumes in systemd v255) and in
certain places they have to perform some manual re-sizing work that can
otherwise be avoided.
2024-01-05 01:04:30 -08:00
github-actions[bot] 1e290d634f
Merge master into staging-next 2024-01-05 00:02:27 +00:00
Raito Bezarius 7c6f64914f system/activation/bootspec: do not synthesize initrdSecrets if unneeded
We should not always create an appender script if we have no secret, this has no usefulness whatsover.
2024-01-04 23:11:23 +01:00
Raito Bezarius b3d998e7ea boot/loader/systemd-boot: BootSpec makes initrdSecrets optional
A bootspec could remove the `initrdSecrets` attribute and is a perfectly valid bootspec, as can be seen
in the bootspec.cue.

This makes the builder not fail upon missing `initrdSecrets`.
2024-01-04 23:11:22 +01:00
github-actions[bot] dc84f21849
Merge master into staging-next 2024-01-03 12:01:04 +00:00
Will Fancher 05706b850a
Merge pull request #273695 from lopsided98/initrd-systemd-lib-firmware
systemd-stage-1: allow non-existent /lib/firmware
2024-01-03 04:30:27 -05:00
Sandro Jäckel 27468aae96
nixos/oomd: add missing section to use slice 2024-01-03 02:45:38 +01:00
Sandro Jäckel 0a1d1907a5
nixos/oomd: use mkRenamedOptionModule like mentioned in the changelog 2024-01-01 22:33:00 +01:00
github-actions[bot] e61ae81f8f
Merge master into staging-next 2024-01-01 00:02:16 +00:00
Ryan Lahfa e44341e335
Merge pull request #195805 from Luflosi/grub-use-correct-zfs-version
nixos/grub: use the correct ZFS version
2023-12-31 21:33:37 +01:00
github-actions[bot] a9cb88c7ae
Merge staging-next into staging 2023-12-31 06:01:28 +00:00
Jan Tojnar 80020c7db4 Merge branch 'master' into staging-next
; Conflicts:
;	pkgs/development/lua-modules/generated-packages.nix
;	pkgs/development/lua-modules/overrides.nix
2023-12-31 02:31:32 +01:00
Will Fancher 9cab49c71b
Merge pull request #273921 from SaltyKitkat/oomd
nixos/systemd: update oomd configuration
2023-12-29 18:47:49 -05:00
github-actions[bot] 294b981465
Merge staging-next into staging 2023-12-29 18:01:23 +00:00
github-actions[bot] f50aae4fb1
Merge master into staging-next 2023-12-29 18:00:57 +00:00
nikstur 3be357b2e7 nixos/binfmt: remove unused stringAfter 2023-12-29 03:41:45 +01:00
Luflosi c71cb77cd6
nixos/grub: use the correct ZFS version
When `config.boot.zfs.enableUnstable` is set to true, grub was built with the `zfs` package even though the rest of the system uses the `zfsUnstable` package.
The effect of this can only be seen when `zfs` and `zfsUnstable` actually differ (which is not currently the case), for example when overriding one of them locally.
2023-12-29 01:53:27 +01:00
github-actions[bot] 0097df9129
Merge staging-next into staging 2023-12-27 12:01:18 +00:00
github-actions[bot] 04686e4ee3
Merge master into staging-next 2023-12-27 12:00:55 +00:00
nikstur c9569af3e0
Merge pull request #271326 from philiptaron/shutdown.target
treewide: depend on `shutdown.target` if `DefaultDependencies=no` in almost every case
2023-12-27 08:33:26 +01:00
Gary Guo 39ae2babce nixos/networkd: allow KeepCarrier in tunConfig and tapConfig
This is added in systemd.netdev in 252, see
https://www.freedesktop.org/software/systemd/man/latest/systemd.netdev.html#KeepCarrier=
2023-12-22 20:29:18 +00:00
Florian Klink 011e924109
Merge pull request #239201 from nesteroff/fix-timesync
systemd: disable NSCD when DNSSEC validation is disabled in timesyncd
2023-12-20 22:22:52 +02:00
github-actions[bot] a1cd7ca146
Merge master into staging-next 2023-12-20 18:00:56 +00:00
Maciej Krüger ff680a4c39
Merge pull request #207717 from jpathy/patch-2 2023-12-20 13:52:03 +01:00
github-actions[bot] 176c80219d
Merge master into staging-next 2023-12-20 12:00:53 +00:00
Yuri Nesterov 6008246790 systemd: disable NSCD when DNSSEC validation is disabled in timesyncd
When a system has a wrong date and time timesyncd is unable to synchronize it
because DNSSEC doesn't work. In order to break this chicken and egg problem
systemd-timesync disables DNSSEC validation by setting
SYSTEMD_NSS_RESOLVE_VALIDATE=0 in the unit file. However, it doesn't work in
NixOS because it uses NSCD. This patch disables NSCD in systemd-timesyncd when
SYSTEMD_NSS_RESOLVE_VALIDATE is set to 0 so that it uses NSS libraries
directly. In order for it to be able to find the libnss_resolve.so.2 library
this patch adds the systemd directory in the nix store to the LD_LIBRARY_PATH.
2023-12-20 13:21:43 +02:00
Florian Klink c28f238f5a
Merge pull request #272946 from benaryorg/resolved_no_fallback
nixos/resolved: Allow upstream fallback override
2023-12-20 12:55:44 +02:00
Ex-32 c82896c292 nixos/binfmt: added assertion to prevent emulation of current system
should fix https://github.com/NixOS/nixpkgs/issues/218465
2023-12-19 13:05:26 -06:00
github-actions[bot] 782f18b6fe
Merge staging-next into staging 2023-12-19 12:01:35 +00:00
Florian Klink 5a57cde110 nixos/systemd/initrd: add systemd-makefs unconditionally
As discussed in
https://github.com/NixOS/nixpkgs/issues/274310#issuecomment-1861842634,
the size increase is negligible, and this might be triggered via fstab
options or the cmdline too.

systemd-growfs is an online operation, so it's taken care of in stage 2.

Fixes https://github.com/NixOS/nixpkgs/issues/274310.
2023-12-19 08:38:03 +02:00
github-actions[bot] 5374345f82
Merge staging-next into staging 2023-12-19 00:02:47 +00:00
Sandro Jäckel 8c58a7cb4b
nixos/luksroot: add final newline to /etc/crypttab 2023-12-18 02:16:08 +01:00
jpathy 0225a786e5
nixos/networkd: allow IPv6LinkLocalAddressGenerationMode in networkConfig
Fixes: #199407 .
2023-12-17 19:39:59 +01:00
benaryorg 57846d0cae
nixos/resolved: Allow upstream fallback override
The previous code did not apply any changes to the upstream defaults on being presented with an empty list.
This changes the code to use the above behaviour on a `null` value while an empty list is passed through as normal which yields a systemd configuration line with empty value which resets it to an empty value.

Signed-off-by: benaryorg <binary@benary.org>
2023-12-15 13:07:05 +00:00
SaltyKitkat 679a417a7a Declare removed option with mkRemovedOptionModule 2023-12-13 16:43:34 +08:00
SaltyKitkat b2d6b30648 update oomd.nix
due to 7665e1796f
and 806c95e1c7
2023-12-13 16:35:39 +08:00
Ben Wolsieffer a514d8c148 systemd-stage-1: allow non-existent /lib/firmware
Since 1557027, makeModulesClosure doesn't create a lib/firmware
directory if there is no firmware in the initramfs. If this happens,
systemd-stage-1 fails to build.

/lib only contains /lib/modules and /lib/firmware, both of while are
from modulesClosure. Therefore, we can just add the entirety of
${modulesClosure}/lib to the initramfs to allow for the possibility that
lib/firmware doesn't exist. This also brings systemd-stage-1 in line
with the traditional stage-1.
2023-12-11 21:00:08 -05:00
Raito Bezarius eecfbe397a nixos/(tests/)journald-(remote|upload|gateway): add raitobezarius as a maintainer 2023-12-09 13:57:08 +01:00
Minijackson 2fb8bd4baf nixos/journald-upload: init 2023-12-09 01:50:23 +01:00
Minijackson 6410e72fd2 nixos/journald-remote: init 2023-12-09 01:50:23 +01:00
Minijackson 9ab63e1ad5 nixos/journald-gateway: init
move services.journald.enableHttpGateway -> services.journald.gateway.enable
2023-12-09 01:50:23 +01:00
maxine ad7955279d
Merge pull request #270011 from christoph-heiss/networkd-fix-wgpeer-doc
nixos/networkd: fix manpage for `WireGuardPeer` config
2023-12-06 00:33:05 +01:00
Camille Mondon 27493b4d49 nixos/clevis: init
Co-Authored-By: Julien Malka <julien@malka.sh>
2023-12-02 11:55:47 +00:00
Philip Taron 1f73c2a7b6
nixos/initrd-secrets: ensure correct ordering w.r.t. shutdown.target 2023-11-30 15:18:23 -08:00
Philip Taron 0db4d5b335
nixos/initrd-ssh: ensure correct ordering w.r.t. shutdown.target 2023-11-30 15:12:10 -08:00
Philip Taron e4136ed6dd
nixos/growpart: ensure correct ordering w.r.t. shutdown.target 2023-11-30 15:09:59 -08:00
K900 9ad22d35b6
Revert "nixos/switch-to-configuration: remove explicit tmpfiles invocation" 2023-11-29 09:38:27 +03:00
Bernardo Meurer ad1d3762bb
Merge pull request #269983 from nikstur/stc-tmpfiles
nixos/switch-to-configuration: remove explicit tmpfiles invocation
2023-11-28 18:26:44 -03:00
Will Fancher 7f213113e6
Merge pull request #218441 from tomfitzhenry/unl0kr
add boot.initrd.unl0kr
2023-11-28 16:10:11 -05:00
Christoph Heiss 4e08f16893
nixos/networkd: fix manpage for WireGuardPeer config
Signed-off-by: Christoph Heiss <christoph@c8h4.io>
2023-11-26 00:43:55 +01:00
nikstur fa41730b86 nixos/switch-to-configuration: remove explicit tmpfiles invocation 2023-11-25 21:39:10 +01:00
nicoo 744b456b49 nixos/systemd: Mark down the options description 2023-11-22 10:49:51 +00:00
nicoo 3f5e19aaf3 nixos/systemd: Link manpages in options' description 2023-11-22 10:49:50 +00:00
nicoo f1b17edaea nixos/systemd: Refactor package option 2023-11-22 10:49:50 +00:00
nicoo aba2edda44 nixos/systemd: Refactor references to config.systemd 2023-11-22 10:49:50 +00:00
nicoo 667e7ca0bd nixos/systemd: refactor option definitions
- factor out `config.systemd.`;
- remove `lib.mdDoc` no-op.
2023-11-22 10:49:50 +00:00
Ryan Lahfa cbd983e1cd
Merge pull request #266151 from JulienMalka/append-secret-reproducible 2023-11-19 16:16:01 +01:00
Will Fancher b606ebb355
Merge pull request #266990 from ElvishJerricco/systemd-boot-boot-pass-flags-to-update
nixos/systemd-boot: pass EFI variable flags during update too
2023-11-18 12:34:10 -05:00
Patrick Steinhardt a8617e2b0d nixos/networkd: allow configuring AckFilter for CAKE qdisc
The CAKE section for systemd.network units allows configuring whether or
not redundant ACKs should be dropped. This option corresponds to the
respective tc-cake(8) params "ack-filter", "ack-filter-aggressive" or
"no-ack-filter".

Add support for these values in the `cakeConfig` module so that users
can configure it.
2023-11-19 03:40:51 +11:00
Philip Taron bc7a939ced nixos/networkd: add [IPVLAN] and [IPVTAP] configuration options to systemd.netdev files
[IPVLAN](https://www.freedesktop.org/software/systemd/man/latest/systemd.netdev.html#%5BIPVLAN%5D%20Section%20Options)
[IPVTAP](https://www.freedesktop.org/software/systemd/man/latest/systemd.netdev.html#%5BIPVTAP%5D%20Section%20Options)
2023-11-18 08:43:21 +01:00
Philip Taron 7686f24675 nixos/networkd: add ipvtap kind to netdev and IPVTAP= to network
From `man systemd.netdev`: https://www.freedesktop.org/software/systemd/man/latest/systemd.netdev.html#Supported%20netdev%20kinds

From `man systemd.network`: https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html#IPoIB=
2023-11-18 08:43:21 +01:00
Julien Malka 81e378618e
nixos/systemd-boot: allow for bootspec-less generations
Generation built with old versions of NixOS with no bootspec
support may still be present on the system and must be
accounted for.
2023-11-17 14:39:04 +01:00
Ryan Lahfa 75fbff2576
Merge pull request #263442 from JulienMalka/systemd-boot-bootspec 2023-11-15 08:40:19 +01:00
Samuel Dionne-Riel 3d88cc85dd
Merge pull request #262595 from tpwrules/fix-extra-config-documentation
nixos/kernel: correct kernelPatches.extraConfig documentation
2023-11-14 22:40:04 -05:00
zzywysm 3f4c802d26 initrd/autofs4: remove legacy references to autofs4 kernel module
Back in 2018, the kernel decided to remove the autofs4 module.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a2225d931f75ddd3c39f4d0d195fad99dfd68671

This caused immediate problems with systemd, so the kernel allowed autofs4 as a config option that would simply map back to autofs.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d02d21ea007b6b33cdaf15c2f84fb1fea996ecc2

Earlier this year, in July 2023, the kernel got tired of people not adapting to the autofs change, and forced the issue by fixing it within the kernel defconfigs, which NixOS uses as a starting point for their own kernel configs.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1f2190d6b7112d22d3f8dfeca16a2f6a2f51444e

This commit reflects the post-2018 reality by changing the remaining autofs4 references to autofs. Since this change initially happened in kernel 4.18 and we no longer support 4.x kernels, we don't need any backwards-compatibility tweaks.
2023-11-14 15:37:50 -05:00
Julien Malka 372d07dc29 nixos/systemd-boot: conform backend to RFC-0125
Now the builder is using Bootspec documents.
2023-11-14 20:37:07 +01:00
Thomas Watson ca84c463b9 nixos/systemd-boot: pass EFI variable flags during update too
8f2babd032 was partially reverted by mistake. Original message below

---

On some systems, EFI variables are not supported or otherwise wonky.
bootctl attempting to access them causes failures during bootloader
installations and updates. For such systems, NixOS provides the options
`boot.loader.efi.canTouchEfiVariables` and
`boot.loader.systemd-boot.graceful` which pass flags to bootctl that
change whether and how EFI variables are accessed.

Previously, these flags were only passed to bootctl during an install
operation. However, they also apply during an update operation, which
can cause the same sorts of errors. This change passes the flags during
update operations as well to prevent those errors.

Fixes https://github.com/NixOS/nixpkgs/issues/151336
2023-11-12 02:07:25 -05:00
Alois Wohlschlager 46bf585892
nixos/plymouth: drop the X11 renderer in the initrd
Previously, all available plymouth renderers were copied to the initrd,
including the X11 one. It is pretty much useless since the initrd is
exceedingly unlikely to run an X server, and causes the initrd closure to grow
by several large libraries (mostly Gtk and dependencies) and thus by a couple
of megabytes (over 5 MiB on my system). Remove it.
2023-11-11 20:12:14 +01:00
Anthony Roussel e30f48be94
treewide: fix redirected and broken URLs
Using the script in maintainers/scripts/update-redirected-urls.sh
2023-11-11 10:49:01 +01:00
Will Fancher 2f73652c34
Merge pull request #240651 from accelbread/postresumecommands
nixos/boot: add postResumeCommands option
2023-11-09 04:22:05 -05:00
Will Fancher eaad9ece24
Merge pull request #266116 from ElvishJerricco/sd-s1-user-shells-fix-warning
nixos/initrd-ssh: Only warn about shell when using systemd initrd
2023-11-07 21:25:21 -05:00
Julien Malka e626f8468b
nixos/stage1: make append_initrd_secrets script reproducible 2023-11-07 22:56:48 +01:00
Will Fancher 03f089e11d nixos/initrd-ssh: Only warn about shell when using systemd initrd 2023-11-07 13:28:31 -05:00
Maximilian Bosch 0597d1d179 nixos/journald: add storage option
While this can be added via `services.journald.extraConfig`, this option
provides proper type-checking and other modules can determine
where journal data is stored. This is relevant when using e.g. promtail
to send logs to Loki and it should read from `/run/log/journal` if
volatile storage is used.
2023-11-07 14:06:27 +01:00
Archit Gupta 2a4b82c461 nixos/boot: add postResumeCommands option
Adds a postResumeCommands option to the initramfs to allow inserting
code to execute after the device has attempted to resume, and before
filesystems are mounted. This allows to inject code for operations like
wiping the rootfs on boot; if those were instead put in
postDeviceCommands, on a hibernated device, they would execute before
the device resumes from hibernation.
2023-11-06 09:50:11 -08:00
Alyssa Ross d9105c28c8 nixos/stage-1: create initramfs /lib at build time
Modules built in to the kernel can attempt to load firmware before
init is started.  To guarantee the firmware is accessible to them
where they expect, /lib has to exist in the initramfs — it can't be
created later by init, because by that point the module may already
have tried and given up.
2023-11-06 14:35:34 +01:00
Thomas Watson be8065759e nixos/kernel: correct kernelPatches.extraConfig documentation
It hasn't expected the prefix for a long time (possibly ever). Other
documentation and patches within nixpkgs itself (such as the crashdump
module) do not have the prefix.
2023-11-05 16:00:15 -06:00
Julien Malka 33df4d3447
nixos/systemd-boot: add julienmalka as maintainer 2023-11-04 02:38:11 +01:00
Stephen Huan e3c0ba78dd
nixos/activation-script: check rmdir in usrbinenv 2023-10-31 01:50:22 -04:00
Luka Blaskovic d3db35f684 stage-2: don't write to /dev/kmsg if missing 2023-10-30 21:53:52 +01:00
K900 998720bf94
Merge pull request #263849 from ElvishJerricco/sd-initrd-not-experimental
systemd-stage-1: No longer experimental
2023-10-30 20:04:20 +03:00
Will Fancher cca22054c0 systemd-stage-1: Add assertions for unsupported options. 2023-10-30 12:15:58 +01:00
Janne Heß d80d7d6697
Merge pull request #258071 from helsinki-systems/feat/stc-lock
nixos/switch-to-configuration: Lock the switch
2023-10-30 10:49:50 +01:00
Rémy Grünblatt c9e3cc43c7
nixos: fix iproute2 invocations (#263976)
When using iproute2's ip binary, you can omit the dev parameter, e.g. ip link set up eth0 instead of ip link set up dev eth0.

This breaks if for some reason your device is named e.g. he, hel, … because it is interpreted as ip link set up help.

I just encountered this bug using networking.bridges trying to create an interface named he.

I used a grep on nixpkgs to try to find iproute2 invocations using variables without the dev keyword, and found a few, and fixed them by providing the dev keyword.

I merely fixed what I found, but the use of abbreviated commands makes it a bit hard to be sure everything has been found (e.g. ip l set … up instead of ip link set … up).
2023-10-29 18:27:16 +01:00
Will Fancher 5cea7ee452
Merge pull request #262583 from ElvishJerricco/systemd-stage-1-shells
systemd-stage-1: Support for user shells
2023-10-29 13:22:47 -04:00
K900 7ea67d7cb6 Revert "nixos/activation: remove specialfs activationScript"
This reverts commit a8f50f9919.

Broke installer tests, need to figure out how to fix nixos-enter before attempting this again.
2023-10-29 20:08:48 +03:00
Robert Hensing 8b385c91c3
Merge pull request #263462 from nikstur/rebuildable-system
Rebuildable system & appliance
2023-10-29 08:02:35 +01:00
Linus Heckemann 8670794565
Merge pull request #263203 from nikstur/replace-activation
Replace simple activationScripts
2023-10-28 10:17:15 +02:00
tomf e426508098
Merge pull request #254412 from helsinki-systems/nvme-kmod-by-default
nixos/boot/kernel: include nvme kmod by default
2023-10-28 18:01:18 +11:00
Will Fancher a906632245 systemd-stage-1: No longer experimental 2023-10-27 16:46:47 -04:00
Nick Cao 020adc777c
Merge pull request #263492 from aschleck/patch-1
nixos/networkd: fix typoed hairpin option name
2023-10-26 13:28:52 -04:00
April Schleck 13956f7f1f nixos/networkd: fix typoed hairpin option name
You can see in https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html that
this should be "HairPin" not "Hairpin". Using "Hairpin" results in

```
Oct 25 18:55:03 my-host systemd-networkd[843736]: /etc/systemd/network/10-bridge.network:11:
    Unknown key name 'Hairpin' in section 'Bridge', ignoring.
```
2023-10-26 10:26:04 -07:00
nikstur b3c1d8c9ae nixos: add system.switch.enable flag
This flag allows the user to optionally exclude
switch-to-confguration.pl from toplevel.

This is interesting for appliance images where you don't want to re-build
the system. This flag is called `rebuildable` because the standard
interface to do this is `nixos-rebuild` which will not work anymore with
this change.
2023-10-26 17:47:35 +02:00
Lassulus 95a366309a
Merge pull request #262731 from Lassulus/tmpfiles
nixos/systemd-tmpfiles: add settings option
2023-10-26 09:29:46 +01:00
nikstur 256956e34d nixos/activation: link gcroot with tmpfiles instead of in activation 2023-10-26 01:44:21 +02:00
nikstur 88f63d1165 nixos/binfmt: replace activationScript via tmpfiles 2023-10-25 23:44:01 +02:00
nikstur a8f50f9919 nixos/activation: remove specialfs activationScript
The stage-2-init.sh script has the same functionality hardcoded so we do
not need it in the activationScript again.
2023-10-25 00:48:37 +02:00
nikstur 59e3726755 nixos/activation: replace var activationScript via tmpfiles 2023-10-25 00:48:37 +02:00
Julian Stecklina 3c1c4b65e9 nixos/timesyncd: replace activationScript via ExecPreStart 2023-10-25 00:48:35 +02:00
Martin Weinelt 0e4b63f713 Revert "nixos/systemd-boot: Avoid remote mypy executions"
This reverts commit ea0dcd0ae1.
2023-10-23 03:38:13 +02:00
DavHau cae154a67e nixos/systemd-tmpfiles: add settings option 2023-10-23 00:34:23 +02:00
Will Fancher 13f325005c
Merge pull request #262740 from ElvishJerricco/systemd-stage-1-improve-udhcpc-assertion
systemd-stage-1: Improve udhcpc assertion
2023-10-22 13:46:38 -04:00
Will Fancher 1a6c2e4837 systemd-stage-1: Improve udhcpc assertion 2023-10-22 09:12:34 -04:00
Will Fancher a662970807
Merge pull request #262167 from jakubgs/systemd/fix-autofs-config
systemd: rename required AUTOFS4_FS to AUTOFS_FS
2023-10-22 08:08:11 -04:00
nikstur 9b20e22b88
Merge pull request #262573 from ElvishJerricco/systemd-repart-stage-1-assertion
nixos/systemd-repart: Add assertion requiring systemd in initrd
2023-10-22 11:53:59 +02:00
Will Fancher 22325ce016 systemd-stage-1: Support for user shells 2023-10-21 13:24:16 -04:00
Will Fancher b57c850790 nixos/systemd-repart: Add assertion requiring systemd in initrd 2023-10-21 12:29:34 -04:00
nikstur 6958acea7e
Merge pull request #262179 from ElvishJerricco/systemd-stage-1-specific-fs-packages
systemd-stage-1: Use specific fs packages
2023-10-21 13:25:42 +02:00
Bjørn Forsman 142074c2a8 nixos: fix bad mkEnableOption descriptions
Fix descriptions that don't account for (1) the "Whether to enable"
prefix or (2) the automatically added trailing dot.
2023-10-20 16:22:40 +01:00
Janne Heß a1012b2160
nixos/switch-to-configuration: Allow not filtering units 2023-10-20 15:45:43 +02:00
Arian van Putten 0257e9f13a
Merge pull request #261449 from arianvp/growpart-online
nixos/grow-partition: Resize partition online instead of in initrd
2023-10-20 09:25:31 +00:00
Will Fancher 18013cc71e systemd-stage-1: Use specific fs packages 2023-10-19 21:13:22 -04:00
Jakub Sokołowski 26c4e35cea
systemd: rename required AUTOFS4_FS to AUTOFS_FS
The `AUTOFS4_FS` name appears to be a legacy naming stub:

>Ok, I ran the script, and also decided that we might as well remove
>the AUTOFS4 legacy naming stub entry by now.
>
>It has been five years, and people will have either picked up the new
>name with 'make oldconfig', or they just don't use 'make oldconfig' at
>all.

https://lore.kernel.org/lkml/CAHk-=wgK9-Tx4BxYMrc0pg==mcaz3cjWF6-CBwVpM_BZAmf4JQ@mail.gmail.com/#r

That has been remove in 6.6 kernel and results in a failure:
```
error:
       Failed assertions:
       - CONFIG_AUTOFS4_FS is not enabled!
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-20 01:44:13 +02:00
nicoo ea0dcd0ae1 nixos/systemd-boot: Avoid remote mypy executions 2023-10-19 20:58:52 +01:00
Arian van Putten 80a578580f nixos/grow-partition: Resize partition online instead of in initrd
There's no reason to do this in initrd. Partitions can be resized online.
We just have to make sure it happens before we resize the file system.

This also makes grow-partition work with systemd-initrd
2023-10-19 12:34:27 +00:00
Philip Taron 173a3a25f0
Remove restriction on PhysicalDevice being int; reformat and document the Type field 2023-10-17 09:43:37 -07:00
Philip Taron 989cca26c4
systemd.network.netdev: Add support for WLAN devices
These are virtual interface, where one physical wifi adapter can have
more than one interface.

See https://systemd.network/systemd.netdev.html#%5BWLAN%5D%20Section%20Options
and dedf2d0054
2023-10-16 15:04:44 -07:00
Tom Fitzhenry 69e24a579c nixos/module: add boot.initrd.unl0kr 2023-10-16 21:33:02 +11:00
Jörg Thalheim b7057368c8 systemd-boot-builder: add missing fsync in atomic writes
write(2) and close(2) doesn't ensure the file content actually got synched, so let's also fsync before doing the rename
2023-10-10 14:49:51 +02:00
Jörg Thalheim 865a2cf8c1 Revert "nixos/systemd-boot: skip EFI update to 252"
This reverts commit 80665d606a.

Parsing the package version broke our systemd-boot builder test.

i.e. it won't be able to parse systemd-boot efi binaries coming from
ubuntu

We no longer use the faulty systemd-boot version so this code should no
longer be needed.
2023-10-10 14:49:51 +02:00
Jörg Thalheim b7fbd1ffd4 systemd-boot-builder: use regex prefix string
otherwise there are warnings for \.
2023-10-10 14:49:51 +02:00
Jörg Thalheim 5ee9fdf929 systemd-boot-builder: use new builtin typing style 2023-10-10 14:49:51 +02:00
Jörg Thalheim e20a886f87 systemd-boot-builder: drop unused import 2023-10-10 14:49:51 +02:00
Jörg Thalheim a17f41ed0b systemd-boot-builder: replace mkdir_p function with stdlib equivalent 2023-10-10 14:49:51 +02:00
Jörg Thalheim f4bf9702be systemd-boot-builder: always do syncfs, even after a failure 2023-10-10 14:49:51 +02:00
Jörg Thalheim dbac7467ad systemd-boot-builder: drop semicolons
this is python, not C.
2023-10-10 14:49:51 +02:00
Jörg Thalheim 1f70361d08 systemd-boot-builder: resort imports according to isort
foo
2023-10-10 14:49:51 +02:00
Florian Klink 7239f0198e
Merge pull request #258920 from ElvishJerricco/systemd-stage-1-full-build
systemd-stage-1: Default to full systemd build.
2023-10-04 12:02:36 +03:00
Florian Klink 42f2e2dadd
Merge pull request #257510 from ign0tus/fix/wake-on-lan-policy
Fix: WakeOnLan policy
2023-10-04 11:36:16 +03:00
Will Fancher 710b96b191 systemd-stage-1: Default to full systemd build. 2023-10-04 04:21:35 -04:00
Florian Klink d89aa11c89
Merge pull request #258345 from lf-/jade/wait-for-online
nixos/networkd: fix wait-online on networking.useDHCP default configuration
2023-10-04 10:58:14 +03:00
Will Fancher 37601de942
Merge pull request #237154 from ElvishJerricco/sd-s1-networkd-flush-with-keep-configuration
systemd stage 1 networking: Use KeepConfiguration
2023-10-03 23:37:03 -04:00
Jade Lovelace 28ab2b278d nixos/networkd: make wait-online not time out
A further bug to our strange multi-user.target depending on
network-online.target issue is that systemd recently changed the
behaviour of systemd-networkd-wait-online to no longer consider the
absence of interfaces with RequiredForOnline to be sufficient to be
online: https://github.com/systemd/systemd/pull/27825

On the advice of the systemd developers
(https://github.com/systemd/systemd/issues/29388), this commit changes
the configuration of systemd-networkd-wait-online to pass --any by
default, and lets the default DHCP interfaces be RequiredForOnline
as they would be by default if the option is omitted.

It is plausible that systemd-networkd-wait-online may still fail if
there are no interfaces at all. However, that probably cannot be
avoided.
2023-10-02 14:47:21 -07:00
Ryan Lahfa 3c3ef90189
Merge pull request #242191 from tie/systemd-required-for-online-range 2023-09-30 01:16:21 +02:00
Janne Heß 5d7723dd5b
nixos/switch-to-configuration: Lock the switch
This prevents any concurrent switches from happening which is not an
issue I have seen people complaining about but it seems like a good
measure.
2023-09-29 19:46:10 +02:00
Adam Stephens b1237da5b2
systemd: revert allow udev-trigger for lxd nested containers 2023-09-28 13:58:11 -04:00
ign0tus 237f7ba7d2 networkd: Allow combinations of WakeOnLan policies
To comply with the systemd.link WakeOnLan[^1] specification, the option
"off" and all other possible policy combinations must be allowed.

[^1]: https://www.freedesktop.org/software/systemd/man/systemd.link.html#WakeOnLan=
2023-09-28 17:04:35 +02:00
Mario Rodas 25b9f4d2b6
Merge pull request #255116 from adamcstephens/lxd/udev-container
systemd: allow udev-trigger to run on lxd containers with nesting
2023-09-28 02:17:27 -05:00
Ryan Lahfa 12eb1e5d28
Merge pull request #249412 from JTarasovic/jdt/systemd-networkd/ipv6-assign-prefix 2023-09-27 18:39:00 +02:00
Ryan Lahfa cb403e56a6
Merge pull request #249386 from JTarasovic/jdt/systemd-networkd/dhcpv6config 2023-09-27 18:38:16 +02:00
github-actions[bot] fc1f757bf6
Merge master into staging-next 2023-09-25 18:01:06 +00:00
Yureka 6500b4580c
Revert "nixos/boot/rasbperrypi: add support for boot.initrd.secret with uboot (#240358)" (#257251)
This reverts commit 94e939985b.
2023-09-25 14:22:51 +02:00
github-actions[bot] ab2ecc25c1
Merge master into staging-next 2023-09-23 18:00:59 +00:00
Janne Heß cc55ef9d55
Merge pull request #254993 from helsinki-systems/feat/stc-mount-improvements
nixos/switch-to-configuration: Mount improvements and a lot more test cases
2023-09-23 17:03:13 +02:00
digital 94e939985b
nixos/boot/rasbperrypi: add support for boot.initrd.secret with uboot (#240358)
Co-authored-by: digital <didev@dinid.net>
2023-09-23 14:32:09 +02:00
Giorgio Gallo fed5af2d15
nixos/systemd: update rateLimitBurst documentaion.
This updates the documentation for the services.journald.rateLimitBurst
option, clarifying that the journal size limit may very well default to
a lot less than 4GB with small disks or disk with not much free space
(eg: virtualized machines)
2023-09-22 16:34:59 +02:00
Janne Heß 85c1c30fd9
nixos/switch-to-configuration: Never unmount / or /nix
Also adds a huge test for fstab handling
2023-09-22 10:26:10 +02:00
github-actions[bot] 3245a21e71
Merge master into staging-next 2023-09-19 06:01:00 +00:00
Artturi 73d552ecb7
Merge pull request #254918 from RaitoBezarius/dnssec-resolved 2023-09-19 06:45:07 +03:00
Erno Hopearuoho 7d112f7da3 luksroot: fix issue when yubikey is detached during boot process
Fixes #228141, which describes an issue where detaching Yubikey during the boot process
causes cryptsetup to write empty passphrase instead of the challenge-response salt stored
on the boot drive.
2023-09-18 23:10:06 -03:00
github-actions[bot] cb25ab46c1
Merge master into staging-next 2023-09-18 00:02:10 +00:00
Jörg Thalheim fd6901755d stage1: use correct zfs package
This in particular broke zfsUnstable because it added symbols not present in zfsStable
2023-09-17 21:11:29 +02:00
Adam Stephens 8565cd862a
systemd: allow udev-trigger to run on lxd containers with nesting 2023-09-14 09:17:33 -04:00
Janne Heß d1c1335908
nixos/switch-to-configuration: Test more action things 2023-09-13 16:42:19 +02:00
Raito Bezarius 97ee93da10 systemd: apply upstream patch for tmpfiles
This fixes notably the fact that /dev/zfs was not usable anymore as a user,
and potentially other things.

Tracked in systemd upstream under issue number 28653, 28765.
2023-09-13 12:02:41 +02:00
Raito Bezarius fe6e299381 systemd: 253.5 -> 254-rc1
This is an early preparation for systemd v254 which causes some patch reflows
and EFI-related cleanups to their new build system with elf2efi, requiring pyelftools
as a Python packge.
2023-09-13 12:02:39 +02:00
Raito Bezarius 4f461f7b77 nixos/modules/system/resolved: disable DNSSEC validation by default
Historically, we allowed downgrade of DNSSEC, but some folks argue
this may decrease actually the security posture to do opportunistic DNSSEC.

In addition, the current implementation of (opportunistic) DNSSEC validation
is broken against "in the wild" servers which are usually slightly non-compliant.

systemd upstream recommended to me (in personal communication surrounding
the All Systems Go 2023 conference) to disable DNSSEC validation until
they work on it in a significant capacity, ideally, by next year.
2023-09-13 11:49:16 +02:00
Artturi 48a57a9884
Merge pull request #254480 from andersk/memtest86plus-name 2023-09-12 18:19:50 +03:00
Maciej Krüger 78e149fba3
Merge pull request #244722 from mdlayher/mdl-dhcp 2023-09-11 21:12:56 +02:00
Anders Kaseorg 191dee486f nixos/systemd-boot: Fix Memtest86+ name.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-09-10 18:44:20 -07:00
Florian Klink 688d95b6e6
Merge pull request #254056 from n8henrie/master
Include note about systemd default watchdog reboot time
2023-09-10 16:07:44 +02:00
ajs124 5ccc7d632b nixos/boot/kernel: include nvme kmod by default 2023-09-10 15:39:54 +02:00
Andrew Marshall 3f9cc71228 nixos/networkd: Fix incorrectly treating attrset as list
This reverses a [change made during PR review][1] that I did not sufficiently
test, causing [this error][2].

[1]: https://github.com/NixOS/nixpkgs/pull/249643#discussion_r1309151135
[2]: https://github.com/NixOS/nixpkgs/pull/249643#issuecomment-1712707336
2023-09-10 00:54:42 -04:00
Artturi b3e16d6e10
Merge pull request #254166 from Artturin/fixthingy1 2023-09-09 19:56:02 +03:00
Janne Heß 6b8306c21c
Merge pull request #249643 from amarshall/networkd-reload
nixos/networkd: Reload (not restart) when only .network units change
2023-09-09 17:31:09 +02:00
Janne Heß a71936c70f
Merge pull request #254027 from luochen1990/feature-better-binfmt
nixos/binfmt: improve type annotations
2023-09-09 17:24:53 +02:00
Artturin f25f2a4209 nixos/stage-2-init: dont use install to create /etc/nixos if it's a symlink
it should be checking that it is not a broken symlink but bash
conditionals are difficult

-d was causing the directory to not be created if it does not exist

```
$ install -m 0755 -d $PWD/hello
$ ls
hello/
$ ln -s something notexist
'notexist' -> 'something'
$ ls -l
lrwxrwxrwx artturin artturin 9 B Sat Sep  9 06:59:44 2023 notexist@ ⇒ something
drwxr-xr-x artturin artturin 2 B Sat Sep  9 06:59:36 2023 hello/
$ install -m 0755 -d $PWD/notexist
install: cannot change permissions of ‘/home/artturin/nixgits/my-nixpkgs/test/notexist’: No such file or directory
```
2023-09-09 07:22:05 +03:00
Nathan Henrie 5061d9daf0 systemd.watchdog: (docs): include note about systemd default watchdog reboot time
I found it very confusing to get an error message on reboot about `10min` when that didn't seem to be the NixOS default.
2023-09-08 09:12:29 -06:00
LuoChen 9c5afb2f9a
nixos/binfmt: improve type annotations 2023-09-08 19:40:42 +08:00
Jared Baur c47f423a9d
nixos/systemd-initrd: disable tpm-crb if on armv7l-linux
In addition to the existing riscv64 exception, also disable adding the
tpm-crb module to the initrd if the host platform is armv7.
2023-09-07 00:38:55 +02:00
Florian Klink 0a49365db9
Merge pull request #253498 from elohmeier/tpmfix
boot.initrd.systemd: make TPM2 modules optional
2023-09-06 11:49:47 +03:00
Ivan Trubach bc644aee70 nixos/networkd: allow state ranges in RequiredForOnline
RequiredForOnline takes a boolean or a minimum operational state and an
optional maximum operational state. In the latter case, range values are
separated with colon.
2023-09-04 20:38:54 +03:00
Artturi 26b11c54d8
Merge pull request #247153 from Artturin/fixwarning1 2023-09-02 03:13:30 +03:00
Florian Klink 90204f058c
Merge pull request #251684 from jmbaur/user-activation-tmpfiles
nixos/systemd-user: call systemd-tmpfiles during activation
2023-09-01 21:52:19 +03:00
Andrew Marshall 189b14246a nixos/networkd: Reload (not restart) when only .network units change
Underneath, systemd-networkd’s reload is just `networkctl reload`. Per
`man networkctl`, calling `reload` is expected to fully handle new,
modified, and removed .network files, but it only handles *new* .netdev
files. For simplicity, assume .network -> reload and .netdev -> restart.

It’s desirable to perform reload instead of restart, as restart has the
potential to bring down interfaces, resulting in a loss of network
connectivity.
2023-08-31 12:24:17 -04:00
Jared Baur e39c9f13bc
nixos/systemd-user: call systemd-tmpfiles during activation
Just like with system-wide tmpfiles, call `systemd-tmpfiles --create
--remove` for users during activation. This fixes an issue where new
entries in a user's tmpfiles are not reflected after activation, only at
boot when the user service systemd-tmpfiles-setup.service runs or only
after running systemd-tmpfiles manually.
2023-08-29 10:46:44 -07:00
Artturi 206ca4bef4
Merge pull request #246487 from amjoseph-nixpkgs/pr/binfmt-mips 2023-08-28 22:40:30 +03:00
Janne Heß fd454fe4b6
Merge pull request #250316 from helsinki-systems/feat/stc-improve-mount-units
nixos/switch-to-configuration: Improve mount unit handling
2023-08-28 09:18:44 +02:00
K900 c6cf85b0d5 nixos/binfmt: use PE magic to detect Wine executables
Otherwise we break every Meson build because it creates native executables named foo.exe
2023-08-23 16:20:57 +03:00
dev-null-undefined a39526b3ef
nixos/grub: Add submenu for each generation with specialisation
Before this commit there was no way to access (boot into) specialisation of previous generations from grub,even tho they are there.

This commit will add grub submenu for each generation if the generation has any specialisation.
Which will allow you to boot into them.

Co-authored-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
2023-08-21 21:44:42 +02:00
Janne Heß eb831f759b
nixos/stc: Improve mount unit handling
We should sometimes restart the units rather than reloading them so the
changes are actually applied. / and /nix are explicitly excluded because
there was some very old issue where these were unmounted. I don't think
this will affect many people since most people use fstab mounts instead
but I plan to adapt this behavior for fstab mounts as well in the future
(once I wrote a test for the fstab thingies).
2023-08-21 09:07:14 +02:00
Maciej Krüger 56700d64b1
Merge pull request #226821 from enc0urage/memtest 2023-08-16 15:31:32 +02:00
Janne Heß bc9b484db8
Merge pull request #232230 from oddlama/fix-activation-template-unit-specializations
Fix detection of changed template unit specializations in switch-to-configuration.pl
2023-08-16 13:46:45 +02:00
Jason Tarasovic fb59bf8a6d
systemd-networkd: add option to assign ipv6 prefix 2023-08-15 17:47:51 -05:00
Jason Tarasovic 521944571a
systemd-networkd: add dhcpv6Config options 2023-08-15 15:23:57 -05:00
Enno Richter 3f52185de8 boot.initrd.systemd: make TPM2 modules optional 2023-08-14 09:34:29 +02:00
enc0urage 00d7065913 nixos/systemd-boot: Replace proprietary memtest86 with free memtest86+ in UEFI 2023-08-14 03:05:24 +00:00
Janne Heß d995da11d8
nixos/switch-to-configuration: Fix unit location in toplevel 2023-08-13 14:26:30 +02:00
enc0urage 1488a2bc1a nixos/grub: Replace proprietary memtest86 with free memtest86+ in UEFI mode 2023-08-13 12:04:34 +00:00
Samuel Dionne-Riel f064a5bcc2
Merge pull request #220263 from samueldr/feature/misc-grub-fixes
nixos/grub: Fixes to allow flicker-free boot, themes and bug fixes
2023-08-12 20:32:51 -04:00
Artturin 103bb49f84 nixos/stage-2-init: Change permission of /etc/nixos only if it exists
When I boot there's a warning `stage-2-init: install: cannot change permissions of '/etc/nixos': No such file or directory`
because my /etc/nixos is a symlink to $HOME/dotfiles.

```
/etc/nixos -> /home/artturin/dotfiles
```

These lines were added in 56b4653904
2023-08-04 20:54:18 +03:00
Vincent Haupert fbebce610f nixos/toplevel: move systemBuilder for boot.kernel.enable
This avoids creating a build-time reference on `boot.kernelParams` if
the configuration does not use a kernel, i.e., `boot.kernel.enable` is
set to `false`.
2023-08-04 12:46:03 +02:00
Samuel Dionne-Riel 1d416595ad nixos/grub: Remove with with broad scopes.
There is only other `with` with a somewhat broad scope, `with pkgs`, but
it's used in a place where it would become awkward to change out. And
anyway its scope is rather limited still.
2023-08-01 19:18:48 -04:00
Samuel Dionne-Riel c867c6d172 nixos/grub: Insert required image modules for themes
With a limited testing of all packaged GRUB 2 themes (pkgs.nixos-grub2-theme)
this is tested to work.

Without this change, the theme loading will error out (waiting for a key press).

With this change, the theme loads and works as expected.
2023-08-01 18:56:03 -04:00
Samuel Dionne-Riel 50063bf9d6 nixos/grub: Add support for timeoutStyle 2023-08-01 18:56:03 -04:00
Samuel Dionne-Riel f12b216574 nixos/grub: Fix extraFiles in subdirectories
This directly copies the systemd-boot logic, which works.

`install` with `-D` will create all leading directory components.
2023-08-01 18:54:27 -04:00
Samuel Dionne-Riel 894d47f989 nixos/grub: Always install with bootloader id
The intent was to not pass the flag when installing as removable. In
reality there is a third case, where you may not want to touch EFI
variables, and not want to install as removable.

In that case, it would install to the generic \EFI\grub\grubx64.efi,
which is not a good choice in any cases. The operating system should
"own" their path under \EFI\ to be a good citizen [citation needed].

With this change, there can be only two paths GRUB can be installed to:

 - \EFI\NixOS-boot\grubx64.efi
 - \EFI\BOOT\bootx64.efi

This removes the surprising behaviour where GRUB may be installed to a
different location only because we configured NixOS not to touch EFI
variables.

It may be necessary under some configurations to install GRUB without
touching EFI variables, but to the NixOS-owned location.
2023-08-01 18:54:27 -04:00
Adam Joseph 957541ad69 nixos/modules/system/boot/binfmt.nix: update mips patterns
This commit updates the binfmt magic-patterns using

  f5e6786de4/scripts/qemu-binfmt-conf.sh

The patterns prior to this commit did not understand the difference
between mips32-*-* (32-bit void*,int) and mips64-*-*abin32 (32-bit
void*, 64-bit int).  This commit corrects that.
2023-07-31 21:24:26 -07:00
digital 9d78971007
nixos/boot/initrd-network: add option to enable udhcpc (#240406)
In some setups, and especially with sytemd-networkd becoming more widely
used, networking.useDHCP is set to false. Despite this, it may be useful
to have dhcp in the initramfs.
2023-07-31 16:08:56 +02:00
Florian Klink a2a7096157
Merge pull request #246082 from ElvishJerricco/exitrd-fix-shutdown-loop
systemd shutdownRamfs: Fix infinite shutdown loop
2023-07-30 00:11:55 +02:00
Will Fancher 7a3730f901 nixos/systemd: Add util-linux to systemd-mkswap's path 2023-07-29 14:02:06 -04:00
Will Fancher 4ecd0c119a systemd shutdownRamfs: Fix infinite shutdown loop 2023-07-29 13:52:52 -04:00
Pol Dellaiera fd304ecc8a
Merge pull request #236027 from iliana/grub-dont-die
nixos/grub: don't die on EFI-only systems if devices != ["nodev"]
2023-07-28 17:26:24 +02:00
nikstur a662dc8b73 nixos/lib: systemd definition files function
Add a re-usable function that converts an attrset to a directory
containing systemd definition files.
2023-07-26 23:30:08 +02:00
nikstur 9b4d3b840e nixos/systemd-sysupdate: init 2023-07-26 20:33:31 +02:00
Pol Dellaiera 07fd6694b5
Merge pull request #236368 from SuperSandro2000/etc-dir-names
nixos/etc: keep directories in derivation name
2023-07-25 03:02:47 +02:00
oddlama d073105d6b
nixos/switch-to-configuration: fix ignoring of template unit specialization dropins 2023-07-23 13:16:58 +02:00
Felix Bühler 0a2745684e
Merge pull request #239624 from Stunkymonkey/use-optionalString-then
treewide: use optionalString instead of 'then ""'
2023-07-22 13:02:47 +02:00
Matt Layher 93efcdac79
nixos/networkd: add DHCPServer PXE boot options
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2023-07-21 16:59:21 -04:00
Artturi dbef093f84
Merge pull request #244449 from Artturin/fixsrip1 2023-07-21 01:44:33 +03:00
Andrew Marshall 3d774b4453 util-linux: Fix build on non-Linux
Build logs show:

> configure: WARNING: non-linux system; not building mount
> configure: WARNING: non-linux system; not building swapon

So skip these on non-Linux

Using getOutput prevents eval failures on other platforms.
Things should stay eval'able with NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1

Co-authored-by: Artturin <Artturin@artturin.com>
2023-07-20 22:03:15 +03:00
Artturin 69267c22f1 nixos/stage-1: fix stripping
got broken in 6ea1a2a1be which changed
runCommandCC to runCommand but was not
noticed because it was failing silently

runCommand doesn't include CC or bintools
2023-07-20 21:26:38 +03:00
Will Fancher 22bcc32f63
Merge pull request #244033 from SuperSandro2000/issue-243820
nixos/stage-1: fix mount replacement in extra-utils
2023-07-20 00:43:33 -04:00
Will Fancher 2e60058b95
Revert "nixos/boot/stage-1: chase symlinks when copying binaries" 2023-07-20 00:03:50 -04:00
Florian Klink 8f15fe7914
Merge pull request #241370 from RaitoBezarius/vxlan-independent
nixos/networkd: support `Independent` flag for VXLAN netdevs
2023-07-19 23:18:54 +03:00
Florian Klink 6f66c57acc
Merge pull request #241365 from RaitoBezarius/macaddrs-netdevs
nixos/networkd: support netdev MAC addresses
2023-07-19 23:03:34 +03:00
Linus Heckemann dd2a892144 nixos/boot/stage-1: chase symlinks when copying binaries
The split of util-linux into further outputs (#236463) resulted in
${util-linux.bin}/bin/mount becoming a symlink. This broke zfs in some
cases.
2023-07-17 22:13:49 +02:00
Sandro Jäckel 222222bedb
nixos/stage-1: fix mount replacement in extra-utils 2023-07-17 21:12:39 +02:00
Linus Heckemann 7d2124f9e3 stage-1: Only copy mdadm and mdmon into initramfs if enabled 2023-07-10 20:31:13 +02:00
Linus Heckemann c0f963a338 boot.initrd.services.swraid -> boot.swraid
Since the option affects both stage-1 and stage-2, it does not make
sense to keep it within the boot.initrd namespace.
2023-07-10 20:20:08 +02:00
Lily Foster 5c1583bfd7
nixos/plymouth: fix minor doc rendering issue 2023-07-09 02:31:05 -04:00
K900 8533b23159 nixos/networkd: fix mismerge of #240969 and #241362 2023-07-09 07:34:42 +03:00
Will Fancher 0b25b4c7c9
Merge pull request #237908 from lilyinstarlight/upd/plymouth-2023-06-05
plymouth: unstable-2021-10-18 -> unstable-2023-06-05
2023-07-08 16:57:31 -04:00
Ryan Lahfa 186edce0a0
Merge pull request #241362 from RaitoBezarius/macvtap-networkd 2023-07-08 20:00:52 +02:00
Robert Hensing 3fd4ac8e82
Merge pull request #237040 from roberth/flexible-activation
nixos/system: Support pre-activated images
2023-07-08 16:06:25 +02:00
Raito Bezarius 6b9e49230d nixos/networkd: add MACVTAP= option for networks
Example 10. of man page of systemd.network(5) shows:
```

       Example 10. MacVTap

       This brings up a network interface "macvtap-test" and attaches it to "enp0s25".

           # /usr/lib/systemd/network/25-macvtap.network
           [Match]
           Name=enp0s25

           [Network]
           MACVTAP=macvtap-test
```

Which is a MACVTAP example and is currently unsupported in NixOS.
This is useful for people using "modern" technologies with virtual machines.
2023-07-08 15:42:10 +02:00
Ryan Lahfa 828633d36a
Merge pull request #241534 from samueldr/fix/finally-deprecate-boot-loader-raspberrypi 2023-07-08 14:16:27 +02:00
Samuel Dionne-Riel a6e61a1ea9 nixos: Formally deprecate boot.loader.raspberryPi
The whole option set was recommended against since mid-2019, and never
worked with the Raspberry Pi 4 family of devices.

We should have deprecated it in early 2020 for removal by 2021. At the
time I did not feel confident in making such a decision, and never
ended-up getting around to it.

The ***only*** supported-by-NixOS boot methods for AArch64 are
standards-based boot methods, namely UEFI or the pragmatically
almost-standard extlinux-compatible for U-Boot.

You can quote me on that.
2023-07-04 13:42:57 -04:00
Raito Bezarius faba775beb nixos/networkd: support Independent flag for VXLAN netdevs
According to networkd netdev's manpage:
```
       Independent=
           Takes a boolean. When true, the vxlan interface is created without any underlying network interface. Defaults to false, which means that a .network
           file that requests this VXLAN interface using VXLAN= is required for the VXLAN to be created.
```

is a valid option for [VXLAN] section.
2023-07-04 01:53:34 +02:00
Raito Bezarius 4d38fa043b nixos/networkd: support netdev MAC addresses
According to systemd.netdev manpage:

```
MACAddress=
           Specifies the MAC address to use for the device, or takes the special value "none". When "none", systemd-networkd does not request the MAC address for
           the device, and the kernel will assign a random MAC address. For "tun", "tap", or "l2tp" devices, the MACAddress= setting in the [NetDev] section is
           not supported and will be ignored. Please specify it in the [Link] section of the corresponding systemd.network(5) file. If this option is not set,
           "vlan" device inherits the MAC address of the master interface. For other kind of netdevs, if this option is not set, then the MAC address is
           generated based on the interface name and the machine-id(5).

           Note, even if "none" is specified, systemd-udevd will assign the persistent MAC address for the device, as 99-default.link has
           MACAddressPolicy=persistent. So, it is also necessary to create a custom .link file for the device, if the MAC address assignment is not desired.
```

Therefore, `none` is an acceptable value.
2023-07-04 01:21:35 +02:00
mutantmell d51ebb6173 nixos/networkd: refactor
Reduces size of networkd module by moving unit file generation code into a util.
2023-07-01 17:17:51 -07:00
pennae 969b4d7ba9
Merge pull request #232454 from quentinmit/bridge-vlan
nixos/networkd: Fix typo in BridgeVLAN options
2023-07-01 00:19:37 +02:00
Robert Hensing 772d6076e8 nixos: Add system.activatable flag for images that are pre-activated 2023-06-28 14:06:28 +02:00
Robert Hensing 9edad17d29 nixos/top-level: Remove unused builder variables
These variables were previously used by the activation script
build commands, but are now embedded into those commands for
to improve reusability for an upcoming addition.
2023-06-28 12:49:34 +02:00
Robert Hensing 7891c8cdaf nixos/activatable-system: Move legacy variables to top-level 2023-06-28 12:48:59 +02:00
Robert Hensing 990b72f6af nixos/activatable-system: Make system builder commands env independent
This way it will be easier to reuse in a different context, such as
a separate build of the activation script by itself (TBD).
2023-06-28 12:42:51 +02:00
Lily Foster 35337085ea
Merge pull request #237820 from lilyinstarlight/fix/systemd-initrd-network-default-package
nixos/networkd: make overriding boot.initrd.systemd.package a little easier by using mkDefault
2023-06-27 15:58:57 -04:00
Naïm Favier 0179d9f7e6
nixos/top-level: change extraDependencies from package to pathInStore
Allows adding subdirectory flake inputs that aren't top-level store paths.
2023-06-27 11:48:08 +02:00
iliana etaoin 53135cc8c7 nixos/grub: don't die on EFI-only systems if devices != ["nodev"]
Without this change, GRUB installation on non-PC systems (such as
aarch64-linux) only works if boot.loader.grub.devices is set to exactly
`["nodev"]`. If boot.loader.grub.devices was any other value (including
the default `[]`), users got the error:

    Died at /nix/store/an9ngv2vg95bdcy0ifsxlbkasprm4dcw-install-grub.pl line 586.

install-grub.pl verifies that if both $grub and $grubEfi are set, then
$grubTarget (e.g. i386-pc) and $grubTargetEfi (e.g. x86_64-efi) must
both be set, or the script will `die`. On non-PC systems, $grubTarget
is "".

When boot.loader.grub.devices is ["nodev"], $grub is set to null,
disabling non-EFI installation. But if a user has devices set for an
x86_64 config, or is using only mirroredBoots without setting devices,
they will hit this `die`.

This change sets $grub to "" if $grubTarget is "".
2023-06-25 17:46:12 +00:00
Felix Buehler 933a41a73f treewide: use optional instead of 'then []' 2023-06-25 09:11:40 -03:00
Felix Buehler f3719756b5 treewide: use optionalString instead of 'then ""' 2023-06-24 20:19:19 +02:00
Ryan Lahfa 230a3705fc
Merge pull request #234223 from alyssais/stage-1-bind-file 2023-06-22 21:47:30 +02:00
Sandro Jäckel 900104fc52
nixos/grub: remove grub 1 from descriptions 2023-06-20 22:34:25 +02:00
r-vdp c3fa4f9170
nixos/systemd: Make the fsck unit depend only on FS packages.
This means that this unit no longer need to be rebuilt when the system path is changed.
2023-06-18 12:46:13 +02:00
Lily Foster 7fb3975256
nixos/plymouth: add actual logo defaultText and move existing to example
Fixes #221391
2023-06-15 10:42:40 -04:00
Lily Foster ef0c0d5c2f
nixos/plymouth: use new runtime paths for plugins and themes 2023-06-15 10:42:37 -04:00
Lily Foster be48010eb2
nixos/networkd: make overriding boot.initrd.systemd.package a little easier by using mkDefault 2023-06-14 16:09:25 -04:00
Wout Mertens a97fe8990d
switch-to-configuration.pl: fix inverted dry-activate logic for swap 2023-06-14 12:11:45 +02:00
zi3m5f 67f5dcfd94 nixos/nspawn: fix spelling of systemd.nspawn MachineID option
This changes option systemd.nspawn.execConfig.MachineId to MachineID.
See man page systemd.nspawn(5)
2023-06-12 12:08:15 +02:00
Will Fancher e23693e129 systemd stage 1 networking: Use KeepConfiguration 2023-06-11 13:59:00 -04:00
Robert Hensing 193f4fea90 nixos/activatable-system: Make substitutions explicit
This helps with understanding the code.
We might make this not depend on environment variables later.
systemBuilderArgs is a form of global state, which isn't helpful.
2023-06-10 19:15:00 +02:00
Robert Hensing a16986f1a3 nixos: Move installBootLoader to activation script modules 2023-06-10 19:15:00 +02:00
Robert Hensing 61d43dee5f nixos: Extract module for activation script inclusion into toplevel
Allows omission of this functionality through disabledModules, e.g.
for image building.
2023-06-10 19:15:00 +02:00
Will Fancher 90d69b1634
Merge pull request #236388 from ElvishJerricco/sd-s1-networkd-stop-on-switch-root
systemd stage 1 networking: Stop systemd-networkd on switch-root
2023-06-10 00:35:56 -04:00
Will Fancher 5d6ea734a1 systemd stage 1 networking: Stop systemd-networkd on switch-root
This essentially backports
https://github.com/systemd/systemd/pull/27791. `systemd-networkd.service`
is sent the `SIGTERM` signal, but it is not required to be stopped
before `initrd-switch-root.target` is reached, despite the use of
`systemctl isolate initrd-switch-root.target`. This is because when
there is no ordering at all between two units, and a transaction stops
one and starts the other, the two operations can happen
simultaneously. This means the service could still be running when
`switch-root` actually occurs. Then, stage 2 systemd will see the
service still running and decide it doesn't need to add a start
operation for it to its initial transaction. Finally, the service
exits, but only after it's already too late. If, however, there is any
ordering at all between a stopping unit and a starting unit, then the
stop operation will be done first. This way, we ensure that the
service is properly exited before doing `switch-root`.

This is something to keep in mind going forward. There may be other
services that need this treatment. These `before` and `conflicts`
definitions are the correct way to ensure a unit is actually stopped
before you reach initrd-switch-root
2023-06-08 00:25:15 -04:00
Victor Engmark 8deaa732a8 refactor: Split mkdir -m … into mkdir + chmod
As recommended by ShellCheck
<https://www.shellcheck.net/wiki/SC2174>.
2023-06-08 15:55:40 +12:00
Sandro Jäckel fadc824f20
nixos/etc: keep directories in derivation name
This changes eg. etc-timesyncd.conf to etc-systemd-timesyncd.conf which
better reflects the actual location of the config file.
2023-06-07 00:08:43 +02:00
Will Fancher b497502357 nixos: Use systemd-growfs for autoResize 2023-06-04 22:57:22 -04:00
Will Fancher 5176a4f113 nixos: Use systemd-makefs for autoFormat 2023-06-04 22:57:20 -04:00
Will Fancher 76d668fae7
Merge pull request #227628 from m-bdf/logind-handle-keys
nixos/logind: Add key handling options
2023-05-29 14:31:43 -04:00
Graham Christensen 479712af11
networkd: support specifying the ClientIdentifier for DHCPv4 options 2023-05-27 15:06:06 +02:00
Alyssa Ross a92bc576b1
nixos/stage-1: support bind mounts of files
On my system, / is tmpfs, and /etc/machine-id is bind mounted from
/persist.
2023-05-26 13:26:48 +00:00
Will Fancher fe43923a70
Merge pull request #229767 from mberndt123/mberndt123/stratis-rootfs
nixos/stratis: initrd support for stratis root volumes
2023-05-25 14:06:31 -04:00
Will Fancher 636e03bef3
Merge pull request #232533 from nikstur/systemd-repart-create-root
nixos/systemd-repart: enable creating root partition
2023-05-22 09:13:00 -04:00
figsoda 701bcdbead nixos: fix typos 2023-05-19 22:31:04 -04:00
Bjørn Forsman ef85c3fe51 nixos: use passAsFile to avoid "Argument list too long" error
This patch fixes "Argument list too long" build failure when passing a
list of store paths to system.extraDependencies that exceeds Linux'
MAX_ARG_STRLEN limit of 128 KiB. With the shortest possible derivation
names (one byte), the 128 KiB limit is equivalent to about 2850
derivations. With longer derivations names, the limit is hit earlier.
Fix this restriction.
2023-05-19 22:31:31 +02:00
Matthias Berndt 765349d345 minor refactoring 2023-05-19 10:22:45 -04:00
nikstur ef80e11032 nixos/systemd-repart: enable creating root partition 2023-05-19 15:54:55 +02:00
Matthias Berndt cb410a8c59 Merge remote-tracking branch 'upstream/master' into mberndt123/stratis-rootfs 2023-05-17 21:47:19 -04:00
Matthias Berndt 92814241a8 improve stratis initrd support
it is now possible to supply a stratis pool uuid
for every filesystem, and if that filesystem
is required for boot, the relevant pool will be
started in the initramfs.
2023-05-16 22:48:36 -04:00
Quentin Smith ad7b199d5d
nixos/networkd: Fix typo in BridgeVLAN options 2023-05-16 19:33:34 -04:00
Robert Hensing 25f227fc67
Merge pull request #231316 from hercules-ci/nixos-system.checks
NixOS: add `system.checks`
2023-05-15 23:16:29 +02:00
Ryan Lahfa 1ee11b8a31
Merge pull request #231283 from nikstur/filesystems-erofs
nixos/filesystems: init erofs
2023-05-14 18:54:37 +02:00
Florian Klink e9c6179ad0
Merge pull request #231504 from nikstur/systemd-repart-add-maintainer
nixos/systemd-repart: add myself as maintainer
2023-05-13 10:51:11 +03:00
nikstur fa09e0a3c7 nixos/filesystems: init erofs
Enable using an erofs filesystem as one of the filesystems needed to
boot the system. This is useful for example in image based deployments
where the Nix store is mounted read only.
[erofs](https://docs.kernel.org/filesystems/erofs.html) offers multiple
benefits over older filesystems like squashfs. Skip fsck.erofs because
it is still experimental.
2023-05-12 19:55:32 +02:00
nikstur 1bd62f43eb nixos/systemd-repart: add myself as maintainer 2023-05-12 18:55:09 +02:00
Robert Hensing 5bdf63819b nixos/top-level.nix: Add system.checks
Note that this does not add to the `forbiddenDependenciesRegex`
code because that code check should be unaffected as it only checks
output dependencies, not build dependencies.
Build deps are added after that check, if those are enabled in the
first place.
2023-05-11 21:18:38 +02:00
ajs124 96fbdcedcd trustedGrub: remove 2023-05-10 22:17:56 +02:00
ajs124 1319323458 nixos/grub: turn definition of version option from an error into a warning
because a lot of configurations (generated by nixos-generate-config) contain it
2023-05-10 21:51:26 +02:00
ajs124 30bea8d82d nixos/*: remove boot.grub.version 2023-05-10 21:51:26 +02:00
Lin Yinfeng 1e05869917
nixos/networkd: fix typo of tokenBucketFilterConfig 2023-05-09 23:06:47 +08:00
nikstur d85abd2764 nixos/systemd-repart: definition files in initrd
Store the definition files in the initrd instead of reading them from
the Nix store in /sysroot.

This way, the initrd has to be re-generated every time the definition
files change. When the path to the defintion files instead of the
definition files themselves are embedded in the initrd, however, the
initrd also has to be re-generated every time. In this regard, this
change does not improve the status quo.

However, now systemd-repart also works reliable when the Nix store is
mounted separately from the root partition.

This change also enables new use-cases like creating partitions
necessary to boot the system. However, by default, the root partition
cannot be created on first boot because the systemd-repart service
requires a /sysroot to be mounted. Otherwise, systemd-repart cannot
determine the device to operate on.
2023-05-09 00:11:21 +02:00
Matthias Berndt 8aa320b4c2 address code review issues 2023-05-08 23:18:55 +02:00
nikstur 5c2a7490cf nixos/systemd-repart: fix
Since v253, systemd-repart tries to create temporary directories in
/var/tmp. However, this directory doesn't exist in the initrd. This
commit adds an enviroment variable to re-use the existing /tmp directory
instead of /var/tmp.
2023-05-08 23:12:59 +02:00
Matthias Berndt 9f1bc0fa02 address review comments 2023-05-07 18:48:28 +02:00
Matthias Berndt 1632e73b19 nixos/stratis: enable booting from stratis volume 2023-05-07 18:48:28 +02:00
Bernardo Meurer aa8eff129d
nixos/networkd: add TransmitQueues and TransmitQueueLength
These are relevant when using networkd to configure CAN networks

Co-authored-by: Martin Weinelt <mweinelt@users.noreply.github.com>
2023-05-06 21:55:09 -04:00
Ryan Lahfa 0b0c5fdf95
Merge pull request #230027 from jmbaur/fix-cross-nixos-system
nixos/bootspec: Fix cross for nixos-system systemBuilder
2023-05-05 22:05:44 +02:00
Ryan Lahfa 275a6e3d8d
Merge pull request #193469 from minijackson/mount-options-stage-1
nixos/stage-1: follow mount options
2023-05-05 17:05:48 +02:00
Jared Baur 67561dcc59
nixos/bootspec: Fix cross for nixos-system systemBuilder
When `nixpkgs.hostPlatform` != `nixpkgs.buildPlatform`, building the
top-level attribute fails since the bootspec portion of the system
builder tries to reference the host platform's `jq`. Change this to
reference the build platform's `jq`.
2023-05-04 20:09:16 -07:00
Rene Hollander a70c7aba36 nixos/networkd: Fix typo in usage sectionBridgeVLAN
The `B` in bridge should be capitalized.

It currently leads to an evuluation error: 
```
error: attribute 'sectionbridgeVLAN' missing

       at /nix/store/7wmrwj0sgwg1iivxk43lpkqjhji57mq7-source/nixos/modules/system/boot/networkd.nix:2386:56:

         2385|       example = { VLAN = "10-20"; };
         2386|       type = types.addCheck (types.attrsOf unitOption) check.network.sectionbridgeVLAN;
             |                                                        ^
         2387|       description = lib.mdDoc ''
       Did you mean sectionBridgeVLAN?
```
2023-05-04 16:20:56 +02:00
Jörg Thalheim be8e3128b9
Merge pull request #223418 from Mic92/grub
nixos/grub-install: don't rely on shell to run commands
2023-05-04 09:48:41 +01:00
Raito Bezarius bc502d0a14 nixos/bootspec: adopt the merged RFC-0125
This removes the feature preview warning, enable by default bootspec,
adds a validation flag to prevent Go to go into build-time closure.

This will break all downstream users of bootspec as those changes are
not backward-compatible.
2023-04-28 18:26:11 -07:00
Weijia Wang b2ef7956b6
Merge pull request #227560 from jackyliu16/loongnix-commit
lib.platforms.loongarch64: init
2023-04-28 13:21:42 +03:00
jackyliu16 15e3a50bd3 nixos/binfmt: add loongarch64-linux 2023-04-28 12:11:58 +03:00
Minijackson b25259e021
nixos/stage-1: follow mount options
For fileSystems needed for boot which are bind mounts, busybox tend to
ignore mount options, so we remount right afterwards
2023-04-25 12:47:39 +02:00
Maëlys Bras de fer 520150fa89
nixos/logind: Add key handling options 2023-04-22 14:41:36 +00:00
Will Fancher e56084d2a0 systemd-stage-1: Revert assertions about initrd commands 2023-04-22 10:25:16 -04:00
Will Fancher 1598338521 systemd-stage-1: Make networkd options shallow 2023-04-21 21:52:38 -04:00
Will Fancher 5c46e6f4e3 systemd-stage-1: Add assertions for unsupported options. 2023-04-21 13:05:12 -04:00
Will Fancher 8f9416e9e3 systemd-stage-1: Unhide documentation 2023-04-21 13:04:15 -04:00
Florian Klink 6b27ed3229
Merge pull request #169116 from ElvishJerricco/systemd-stage-1-networkd
Systemd stage 1 networkd
2023-04-21 18:40:59 +02:00
Artturi b83db86a9e
Merge pull request #222080 from Stunkymonkey/nixos-optionalString 2023-04-20 16:07:30 +03:00
Will Fancher 3cb9534df6 systemd-initrd: Flush networkd 2023-04-17 16:41:36 -04:00
Will Fancher 8598234651 systemd-initrd: dbus 2023-04-17 16:41:36 -04:00
Will Fancher 834ec135ce systemd-initrd: OpenVPN 2023-04-17 16:41:35 -04:00
Will Fancher 0698a1cf04 systemd-initrd: sshd 2023-04-17 16:41:35 -04:00
Will Fancher dd392d7c76 systemd-initrd: networkd 2023-04-17 16:41:34 -04:00
lewo ff24a05847
Merge pull request #206445 from nlewo/ssytemd-boot-fail
systemd-boot-builder only ignores OSError "invalid argument"
2023-04-16 22:17:28 +02:00
Sandro 603320b64f
Merge pull request #204534 from SuperSandro2000/boot-tmp 2023-04-12 21:37:47 +02:00
Will Fancher e70b42bf61 systemd-initrd: Add users and groups with static IDs. 2023-04-12 13:55:50 -04:00
Will Fancher 762b69f2ff systemd-initrd: Fix up root directory mode 2023-04-11 15:20:47 -04:00
Will Fancher fef26d88e2 systemd-initrd: Support secrets when boot loader doesn't
initrd-secrets: Fix service config with systemd-stage-1
2023-04-11 15:20:47 -04:00
Will Fancher 71983a6eb5 systemd-initrd: Don't use SYSTEMD_SULOGIN_FORCE 2023-04-11 15:20:47 -04:00
Felix Buehler 327b0cff7a treewide: use more lib.optionalString 2023-04-07 13:38:33 +02:00
Robert Hensing bcd2d49d85 nixos: Make services.resolved discoverable via "systemd-resolved" search
This query yielded no results on search.nixos.org.
I don't think I can make all options magically appear, but you can
the other options by reading the text.
2023-04-07 01:09:05 +02:00
Antoine Eiche 2638fb722e systemd-boot-builder only ignores OSError "invalid argument"
In order to fix
https://github.com/NixOS/nixpkgs/issues/114552 (profile name with
special characters), all OSError have been ignored while only the OSError
with errno 22 (invalid argument) could has been ignored.

The drawback of ignoring all OSError is that the "No space left on
device" error is also ignored. When the /boot doesn't have enough
available disk space, the switch-to-configuration script succeeds
while the boot menu has not been updated: the user thinks it's system
has been updated, but on the next reboot it is actually rollbacked.
2023-04-04 09:16:41 +02:00
K900 48b2f723f5 nixos/system: disallow system.copySystemConfiguration in pure eval mode
This is already broken, so let's give it a better error message.
2023-03-29 17:49:30 +03:00
Jörg Thalheim d9c92360a8 nixos/install-grub: stop using bare file handles for readFile/WriteFile 2023-03-27 19:25:46 +02:00
Jörg Thalheim 5a23a24ba2 nixos/grub-install: don't rely on shell to run commands
data passed to these programs might be accidentially interpreted as
shell. Discovered in https://github.com/Mic92/envfs/issues/111
2023-03-27 19:21:55 +02:00
Vladimír Čunát 12dd95fbb1
Merge branch 'master' into staging-next 2023-03-24 09:07:41 +01:00
Will Fancher 5a9b9e620d
Merge pull request #176828 from therishidesai/luks-multi-key-files
nixos/luksroot: add tryEmptyPassphrase option
2023-03-24 03:02:20 -04:00
github-actions[bot] 6a3714135d
Merge master into staging-next 2023-03-23 00:02:14 +00:00
pennae 31f422d95f
Merge pull request #218721 from apfelkuchen6/nw
nixos/networkd: add some missing options
2023-03-22 22:22:03 +01:00
Rishi Desai cccc3f8a8e nixos/luksroot: add tryEmptyPassphrase option 2023-03-22 09:17:23 -05:00
Sandro Jäckel 3a5de0e725
nixos/tmp: add a note to useTmpfs on potential issues 2023-03-20 17:27:06 +01:00
Sandro Jäckel a5d95ac5fc
nixos/tmp: move /tmp options under boot.tmp 2023-03-19 18:49:37 +01:00
apfelkuchen06 0ddfb0a5df nixos/networkd: add BridgeVLAN options 2023-03-16 03:31:04 +01:00
apfelkuchen06 cd650b3fa3 nixos/networkd: add QuickFairQueueingClass options 2023-03-16 03:31:04 +01:00
apfelkuchen06 fde806d5a5 nixos/networkd: add QuickFairQueueing options 2023-03-16 03:31:04 +01:00
apfelkuchen06 493ed75418 nixos/networkd: add HeavyHitterFilter options 2023-03-16 03:31:04 +01:00
apfelkuchen06 88d99a3630 nixos/networkd: add HierarchyTokenBucketClass options 2023-03-16 03:31:04 +01:00
apfelkuchen06 24df07c786 nixos/networkd: add HierarchyTokenBucket options 2023-03-16 03:31:03 +01:00
apfelkuchen06 29e5451963 nixos/networkd: add TrivialLinkEqualizer options 2023-03-16 03:31:03 +01:00
apfelkuchen06 cf470ebd88 nixos/networkd: add FairQueueing options 2023-03-16 03:31:03 +01:00
apfelkuchen06 dbc14e5a44 nixos/networkd: add FairQueueingControlledDelay options 2023-03-16 03:31:03 +01:00
apfelkuchen06 5b5c79c6a0 nixos/networkd: add GenericRandomEarlyDetection options 2023-03-16 03:28:23 +01:00
apfelkuchen06 ca496f8754 nixos/networkd: add EnhancedTransmissionSelection options 2023-03-16 03:28:23 +01:00
apfelkuchen06 3cde7aaa36 nixos/networkd: add DeficitRoundRobinSchedulerClass options 2023-03-16 03:28:23 +01:00
apfelkuchen06 0d06e85996 nixos/networkd: add DeficitRoundRobinScheduler options 2023-03-16 03:28:23 +01:00
apfelkuchen06 49df6bc669 nixos/networkd: add ControlledDelay options 2023-03-16 03:28:23 +01:00
apfelkuchen06 728108555e nixos/networkd: add CAKE options 2023-03-16 03:28:23 +01:00
apfelkuchen06 7a6cae0e15 nixos/networkd: add PFIFOFast options 2023-03-16 03:28:23 +01:00
apfelkuchen06 f75ec30fee nixos/networkd: add PFIFOHeadDrop options 2023-03-16 03:28:23 +01:00
apfelkuchen06 d9e1963a15 nixos/networkd: add BFIFO options 2023-03-16 03:28:22 +01:00
apfelkuchen06 f2ca28f658 nixos/networkd: add PFIFO options 2023-03-16 03:28:22 +01:00
apfelkuchen06 51689e86b9 nixos/networkd: add StochasticFairnessQueueing options 2023-03-16 03:28:22 +01:00
apfelkuchen06 736650ccf1 nixos/networkd: add StochasticFairBlue options 2023-03-16 03:28:22 +01:00
apfelkuchen06 872a4823cf nixos/networkd: add FlowQueuePIE options 2023-03-16 03:28:22 +01:00
apfelkuchen06 2784862e41 nixos/networkd: add PIE options 2023-03-16 03:28:22 +01:00
apfelkuchen06 d63035329e nixos/networkd: add TokenBucketFilter options 2023-03-16 03:28:21 +01:00
apfelkuchen06 55cd970d73 nixos/networkd: add NetworkEmulator options 2023-03-16 03:28:21 +01:00
apfelkuchen06 b08e5be98d nixos/networkd: add QDisc options 2023-03-16 03:28:21 +01:00
apfelkuchen06 09e745c784 nixos/networkd: add IPoIB options 2023-03-16 03:28:21 +01:00
apfelkuchen06 df14953724 nixos/networkd: add CAN options 2023-03-16 03:28:21 +01:00
apfelkuchen06 a7724b8f91 nixos/networkd: add LLDP options 2023-03-16 03:28:21 +01:00
apfelkuchen06 ae15b86d4d nixos/networkd: add BridgeMDB option 2023-03-16 03:28:21 +01:00
apfelkuchen06 d646f7c7f2 nixos/networkd: add BridgeFDB options 2023-03-16 03:28:21 +01:00
apfelkuchen06 28ddd570f7 nixos/networkd: add Bridge options 2023-03-16 03:28:20 +01:00
apfelkuchen06 590ccae1f8 nixos/networkd: add L2TP options 2023-03-16 03:28:20 +01:00
github-actions[bot] 795332a826
Merge staging-next into staging 2023-03-15 18:01:44 +00:00
Vladimír Čunát a86610144f
Merge #219444: staging-next 2023-03-04 2023-03-15 17:35:39 +01:00
Sandro c817b58614
Merge pull request #220278 from bdd/fix-binfmt-x86_64-windows-extension
nixos/binfmt: fix extension for Windows binaries
2023-03-15 16:15:47 +01:00
Martin Weinelt 1c52b361a8
Merge remote-tracking branch 'origin/master' into staging-next 2023-03-15 14:36:40 +01:00
Robert Hensing c3b245d540
Merge pull request #195511 from DeterminateSystems/include-build-deps
nixos/top-level: add includeBuildDependencies option
2023-03-15 13:33:24 +01:00
Linus Heckemann eb45cd5108 nixos/top-level: add includeBuildDependencies option
This option allows adding the build closure of the system to its
runtime closure, enabling fully-offline rebuilds (as long as no new
packages are added).
2023-03-14 11:55:13 +01:00
Florian Klink 504d66bae9
Merge pull request #216826 from gdamjan/systemd-253
systemd: 252.5 -> 253
2023-03-13 17:37:39 +01:00
Martin Weinelt d03d74aa67
Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
- pkgs/development/python-modules/aiopulse/default.nix
- pkgs/development/python-modules/identify/default.nix
- pkgs/development/python-modules/spur/default.nix
2023-03-12 23:28:23 +01:00
Guillaume Girol db901673ea
Merge pull request #209156 from pwaller/issue-114594
nixos/grub: Name initrd-secrets by system, not by initrd
2023-03-12 18:50:33 +00:00
Vladimír Čunát 1dd94ad62f
Merge branch 'master' into staging-next 2023-03-12 09:06:28 +01:00
Ryan Lahfa ac93edb3ac
Merge pull request #209829 from notgne2/fix/systemd-boot-always-profile-path
nixos/systemd-boot: always use profile_path() for system closure paths
2023-03-11 22:08:18 +01:00
github-actions[bot] 39f6788067
Merge master into staging-next 2023-03-09 12:01:27 +00:00
Berk D. Demir 147186a95b nixos/binfmt: fix extension for Windows binaries
Extension based matching for Windows targets define it '.exe' but kernel
documentation explicitly states it should be passed "without the .".

From https://docs.kernel.org/admin-guide/binfmt-misc.html
> * magic:
>   [...] If you chose filename extension matching, this is the
>   extension to be recognised (without the ., the \x0a specials are not
>   allowed).
2023-03-08 21:07:31 -08:00
Aaron Andersen 374fc068ec nixos/systemd-oomd: disable systemd-oomd when enableUnifiedCgroupHierarchy is false
fixup for https://github.com/NixOS/nixpkgs/pull/203596
2023-03-08 18:39:18 -05:00
Дамјан Георгиевски 83f65146ab nixos/systemd: systemd-growfs* units are real files now
`systemd-growfs@.service` and `systemd-growfs-root.service` became real units since:
50072ccf1b

we need to add them to the nixos module so growfs works again
2023-03-05 20:05:00 +01:00
notgne2 ca9f0682fd
nixos/systemd-boot: always use profile_path() for system closure paths 2023-03-05 06:13:45 -07:00
Дамјан Георгиевски d2837a9cb3 nixos/systemd-initrd: create the /tmp mount point in the initrd
systemd now requires the /tmp mount point in the initrd cpio archive
since https://github.com/systemd/systemd/pull/25723

setting `"/tmp/.keep".text` will create the directory.

this fixes a boot failure:
```
(sd-gens): Failed to overmount /tmp/: No such file or directory
```
2023-03-05 04:41:08 +01:00
github-actions[bot] 8480c21d06
Merge master into staging-next 2023-03-04 12:01:17 +00:00
Naïm Favier 45e44c56f1
Merge pull request #217342 from pennae/nrd-html-manual
nixos-render-docs: add manual html renderer, use it for the nixos manual
2023-03-04 12:58:38 +01:00
github-actions[bot] 387a5e220d
Merge staging-next into staging 2023-02-28 00:03:08 +00:00
Will Fancher ace4d26ccc
Merge pull request #217887 from lilyinstarlight/fix/allow-overriding-systemd-initrd-bins
nixos/systemd-initrd: allow overriding initrdBin with extraBin
2023-02-27 17:43:30 -05:00
github-actions[bot] de3f71e277
Merge staging-next into staging 2023-02-26 06:02:30 +00:00
Winter 15f1369b95 Revert "nixos/systemd-coredump: guard static gid for systemd-coredump behind state version"
This reverts commits f5483464d5 and
6b9583e5e1.

Ideally, we shouldn't cause friction for users that bump `stateVersion`,
and I'd consider having to switch and/or manually hardcode a UID/GID
to supress the warning friction. I think it'd be more beneficial to, in
this rare case of an ID being missed, just let it be until more
discussion happens surrounding this overall issue.

See https://github.com/NixOS/nixpkgs/pull/217785 for more context.
2023-02-25 22:31:56 -05:00
Lily Foster 5210ddc701
nixos/systemd-initrd: allow overriding initrdBin with extraBin
Being able to override `boot.initrd.systemd.initrdBin` with `boot.initrd.systemd.extraBin` is a desirable behavior, so this PR changes the `ln -s` command to `ln -sf` to force link even if the file already exists.
2023-02-23 13:23:15 -05:00
Nick Cao f5483464d5
nixos/systemd-coredump: guard static gid for systemd-coredump behind state version 2023-02-23 17:07:50 +08:00
pennae 3794c04d79 nixos/manual: fix manpage links
{manpage} already exapnds to a link but akkoma wants to link to
a specific setting. split the mention for clarity.

networkd just straight up duplicated what {manpage} generates anyway, so
that link can go away completely.
2023-02-21 18:26:39 +01:00
github-actions[bot] fc3641aa1e
Merge staging-next into staging 2023-02-21 00:03:04 +00:00
Will Fancher bb7cd63150
Merge pull request #215381 from lilyinstarlight/fix/make-initrd-ng-wrapped-executables
make-initrd-ng: support wrapped executables
2023-02-20 14:11:48 -05:00
Lily Foster 1fa1b58c25
nixos/console,nixos/systemd-initrd: remove now-unnecessary wrapped bin inclusions 2023-02-20 07:02:55 -05:00
github-actions[bot] 0e856cc7de
Merge staging-next into staging 2023-02-18 18:01:58 +00:00
Florian Klink 4bfb6411e3
Merge pull request #215188 from ElvishJerricco/binfmt-bad-setting-fix
binfmt: Don't create invalid service with no registrations
2023-02-18 15:39:46 +01:00
github-actions[bot] 3b5c06282d
Merge staging-next into staging 2023-02-17 12:01:58 +00:00
Arian van Putten 98042fc6d3
Merge pull request #216357 from nikstur/systemd-repart-after-activation
nixos/systemd-repart: enable running after initrd
2023-02-17 12:56:24 +01:00
Florian Klink ab566b8656
Merge pull request #208269 from ElvishJerricco/systemd-stage-1-fsck
Systemd stage 1 fsck
2023-02-17 10:06:39 +02:00
nikstur b1ff1e1658 nixos/systemd-repart: enable running after initrd 2023-02-14 19:42:32 +01:00
K900 2bbd450b8b
Merge pull request #210505 from notgne2/fix/systemd-initrd-allow-symlink
nixos/systemd-initrd: allow symlink into when checking for `/prepare-root`
2023-02-14 21:10:31 +03:00
Arian van Putten 5b23d0e51c
Merge pull request #214396 from nikstur/systemd-repart
systemd-repart
2023-02-10 20:03:09 +01:00
nikstur 4700198654 nixos/systemd-repart: init 2023-02-10 14:05:44 +01:00
Izorkin 6b9583e5e1
nixos/systemd-coredump: fix group id 2023-02-08 20:48:13 +03:00
pennae bf4c0c1900 nixos/*: remove trailing period in mkEnableOptions
those are added by mkEnableOption, and .. is replaced to … by markdown
processing.
2023-02-08 15:23:34 +01:00
Will Fancher 14b77582da systemd-stage-1: fsck 2023-02-08 00:43:10 -05:00
Winter b2d04c1155 nixos/luksroot: build pbkdf2-sha512 binary in its own derivation
Since this feature's inception, we've compiled a binary that uses OpenSSL
to perform PBKDF-SHA512 during the extra-utils build. In addition to this
being inefficient, it broke as of 6ea1a2a1be,
which switched the extra-utils derivation to use stdenvNoCC.

For now, I think the path of least resistence is to move the pbkdf-sha512
build to its own derivation, to fix the breakage, as well as improving
the efficiency of the extra-utils build.

(I do believe that at some point, we should revisit this binary -- perhaps
rewriting it -- as Clang even just on its default settings emits more
warnings than you'd want to see in a security-related codebase when
compiling it.)
2023-02-07 23:06:11 -05:00
Will Fancher 1b39491326 systemd-stage-1: Use x-initrd.mount for better unit dependencies 2023-02-07 22:22:39 -05:00
Will Fancher 988184ca82 systemd-stage-1: managerEnvironment option 2023-02-07 22:22:39 -05:00
Will Fancher b3a27afb7c binfmt: Don't create invalid service with no registrations
We shouldn't be creating a systemd.services.systemd-binfmt value when
the upstream unit isn't being pulled in, because it results in a
service unit file with no ExecStart line
2023-02-07 17:02:26 -05:00
Will Fancher eec740325c initrd-ssh: New sshd settings names 2023-02-07 13:56:02 -05:00
Nick Cao 96339d786a
Merge pull request #213782 from SuperSandro2000/stage1-extraUtils
nixos/stage-1: build extraUtils without compiler
2023-02-03 08:59:08 +08:00
Sandro c3b1fd8ba1
Merge pull request #199784 from Majiir/fix-plymouth-start
nixos/plymouth: don't start Plymouth on config switch
2023-01-31 15:47:45 +01:00
Sandro Jäckel 6ea1a2a1be
nixos/stage-1: build extraUtils without compiler 2023-01-31 14:45:39 +01:00
Florian Klink cd47b8e423
Merge pull request #213445 from Majiir/fix-systemd-coredump-truncation
nixos/systemd/coredump: fix kernel.core_pattern truncation
2023-01-30 21:26:21 +01:00
Majiir Paktu 7f35c8b2ac nixos/systemd/coredump: fix kernel.core_pattern truncation
Fixes #213408
2023-01-29 15:49:16 -05:00
pennae 0a6e6cf7e6 nixos/manual: render module chapters with nixos-render-docs
this converts meta.doc into an md pointer, not an xml pointer. since we
no longer need xml for manual chapters we can also remove support for
manual chapters from md-to-db.sh

since pandoc converts smart quotes to docbook quote elements and our
nixos-render-docs does not we lose this distinction in the rendered
output. that's probably not that bad, our stylesheet didn't make use of
this anyway (and pre-23.05 versions of the chapters didn't use quote
elements either).

also updates the nixpkgs manual to clarify that option docs support all
extensions (although it doesn't support headings at all, so heading
anchors don't work by extension).
2023-01-27 20:07:34 +01:00
Jörg Thalheim 86d5b67260 disable tpm-crb on riscv64 2023-01-23 15:00:41 +01:00