Commit Graph

2299 Commits

Author SHA1 Message Date
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