Commit Graph

1686 Commits

Author SHA1 Message Date
Graham Christensen
06edb74413
Merge pull request #148785 from pennae/more-option-doc-staticizing
treewide: more defaultText for options
2021-12-17 11:14:08 -05:00
Robert Hensing
4014fb6a64 nixos: Make system.build a lazyAttrsOf unspecified
Legacy types.attrs has really bad merging behavior and does not
support priorities.

f build
2021-12-17 14:42:44 +01:00
Naïm Favier
901d4f13a3
nixos/systemd: set TZDIR for PID 1
Fixes #105049
2021-12-16 04:09:07 +01:00
Bernardo Meurer
f40283cf62
Merge pull request #149837 from helsinki-systems/feat/redo-activation-script-restarting
nixos/switch-to-configuration: Add a massive test and do a slight refactor
2021-12-13 11:37:20 -08:00
Janne Heß
6807628791
nixos/switch-to-configuraton: Add details about sockets 2021-12-09 13:51:18 +01:00
Andreas Rammhold
6e69e537ff
Merge pull request #145183 from veehaitch/networkd-DHCPServerStaticLease
nixos/networkd: add `dhcpServerStaticLeaseConfig` option
2021-12-09 12:57:46 +01:00
Janne Heß
2024306048
nixos/switch-to-configuration: Restart non-services 2021-12-09 12:31:48 +01:00
Janne Heß
393c721849
nixos/switch-to-configuration: Move handleModifiedUnit into a sub 2021-12-09 11:31:59 +01:00
pennae
2d564521c0 treewide: add literalDocBook text to options with complex defaults
some options have default that are best described in prose, such as
defaults that depend on the system stateVersion, defaults that are
derivations specific to the surrounding context, or those where the
expression is much longer and harder to understand than a simple text
snippet.
2021-12-09 01:38:24 +01:00
Florian Klink
fec4daf38d
Merge pull request #149342 from helsinki-systems/feat/restart-systemd-on-systemconf-change
nixos/switch-to-configuration: Restart systemd when system.conf is changed
2021-12-08 23:23:04 +01:00
ajs124
eee45bb295
Merge pull request #146815 from ElvishJerricco/systemd-utils-expressions
Move systemd-lib.nix and systemd-unit-options.nix into utils
2021-12-08 15:07:28 +00:00
Janne Heß
e36ceb65e6
Merge pull request #129449 from ddz/copy-initrd-secrets-after-early-mount-script
nixos/stage1: copy initrd secrets into place after special mounts
2021-12-08 15:38:02 +01:00
Janne Heß
1f41365cda
nixos/switch-to-configuration: Restart systemd when system.conf is changed 2021-12-07 14:32:19 +01:00
Bernardo Meurer
ebb7f07eec
Merge pull request #148751 from NixOS/feat/slight-stc-improvements
nixos/switch-to-configuration: Add small improvements
2021-12-07 02:38:26 -08:00
Yuka
ce54a4f658
nixos/networkd: add RoutingPolicyRule Type option (#146168) 2021-12-07 10:13:22 +01:00
pennae
c694c35f9d nixos/*: escape pkgs reference in examples and descriptions 2021-12-06 00:38:05 +01:00
Janne Heß
b30d619368
nixos/top-level: Check syntax of switch-to-configuration 2021-12-05 18:54:36 +01:00
Janne Heß
6f1e0dc34f
nixos/switch-to-configuration: Move excludes up 2021-12-05 18:54:19 +01:00
Janne Heß
5d34545954
nixos/switch-to-configuration: Ignore scopes 2021-12-05 18:47:35 +01:00
Janne Heß
1e422e7d58
nixos/switch-to-configuration: Fix dry order
This makes the order of the dry activation messages the same as the real
actions which makes more sense than another random order.
2021-12-05 18:46:50 +01:00
Janne Heß
3693e8b093
nixos/switch-to-configuration: Clean perl code
oct() is recommended by perlcritic and the rest was unused.
2021-12-05 18:45:44 +01:00
Janne Heß
50a0f33c2a
nixos/switch-to-configuration: Remove unnecessary TODOs
The first one doesn't make any sense because the directory where the
init binary resides does not contain other tools we need like
systemd-escape.

The second one doesn't make sense either because the errors are already
ignored.
2021-12-05 18:43:42 +01:00
pennae
2512455639 nixos/*: add trivial defaultText for options with simple defaults 2021-12-02 22:35:04 +01:00
Zhaofeng Li
9e5d0a9458 nixos/binfmt: Preserve argv[0] when using QEMU 2021-12-01 22:20:48 -08:00
Robert Hensing
8a129f8cf0
Merge pull request #144094 from hercules-ci/nixos-specialisations-use-extendModules
nixos/specialisation: Rephrase in terms of extendModules, noUserModules
2021-12-01 11:03:36 +01:00
Vincent Haupert
ce81231420 nixos/networkd: add dhcpServerStaticLeaseConfig option
Add `systemd.network.networks.*.dhcpServerStaticLeaseConfig` to allow
for configuring static DHCP leases through the `[DHCPServerStaticLease]`
section. See systemd.network(5) of systemd 249 for details.

Also adds the NixOS test `systemd-networkd-dhcpserver-static-lease` to
test the assignment of static leases.
2021-11-30 09:58:33 +01:00
Sandro
61c3243dc7
Merge pull request #113887 from xaverdh/install-grub-editorconfig-fixup 2021-11-29 21:03:41 +01:00
Michael Weiss
1cfecb636b
Revert "Merge pull request #141192 from helsinki-systems/feat/improved-socket-handling2"
This reverts commit 57961d2b83, reversing
changes made to b04f913afc.
(I.e. this reverts PR #141192.)

While well-intended, this change does unfortunately introduce very
serious regressions that are especially disruptive/noticeable on desktop
systems (e.g. users of Sway will loose their graphical session when
running "nixos-rebuild switch").

Therefore, this change has to be reverted ASAP instead of trying to fix
it in "production".
Note: An updated version should be extensively discussed, reviewed, and
tested before re-landing this change as an earlier version also had to
be reverted for the exact same issues [0].

Fix: #146727

[0]: https://github.com/NixOS/nixpkgs/pull/73871#issuecomment-559783752
2021-11-27 17:22:22 +01:00
Dominik Xaver Hörl
0360e03520 nixos/install-grub: fix whitespace
This time hopefully without changing the generated boot script.
2021-11-27 10:18:21 +01:00
Dominik Xaver Hörl
19447850a2 Revert "nixos/install-grub: normalize whitespace"
This morally reverts commit 0e8d7f9b3d.
It made the generated boot script hard to read.
2021-11-27 10:18:04 +01:00
github-actions[bot]
28641f51dc
Merge master into staging-next 2021-11-22 18:01:08 +00:00
Artturin
7f24a5ff35 nixos/systemd: readd dbus-org.freedesktop.login1.service to upstreamSystemUnits
it was removed in
eb862c48dd (diff-5ea4693beb4bdd8f7efcdd3204ceea67c86f59b3d1c28cde063ddf03e1d20fbfL66)

without this change i get
Failed to list users: Unit dbus-org.freedesktop.login1.service not found.
when i update and rebuild
2021-11-22 05:59:05 +02:00
github-actions[bot]
18ad263272
Merge master into staging-next 2021-11-21 18:01:07 +00:00
Ryan Burns
2175b157ac treewide: refactor isi686 && isx86_64 -> isx86 2021-11-20 17:50:41 -08:00
Will Fancher
851495a752 Move systemd-lib.nix and systemd-unit-options.nix into utils 2021-11-20 17:52:29 -05:00
github-actions[bot]
90829d83e5
Merge master into staging-next 2021-11-17 00:01:49 +00:00
n0emis
eeac1c543d
nixos/networkd: add BatmanAdvanced options (#145963)
Since systemd v248 networkd supports BatmanAdvanced.
This adds the according config options to the networkd-module
2021-11-16 23:41:17 +01:00
github-actions[bot]
cfaff97318
Merge staging-next into staging 2021-11-15 18:01:43 +00:00
Taeer Bar-Yam
0bef0c38f7 lib.modules: add mkDerivedConfig
mkDerivedConfig : Option a -> (a -> Definition b) -> Definition b

Create config definitions with the same priority as the definition of another option.
This should be used for option definitions where one option sets the value of another as a convenience.
For instance a config file could be set with a `text` or `source` option, where text translates to a `source`
value using `mkDerivedConfig options.text (pkgs.writeText "filename.conf")`.

It takes care of setting the right priority using `mkOverride`.
2021-11-15 07:03:41 -05:00
Taeer Bar-Yam
0e590c91d2 etc module: make .text and .source the same priority
Before this change, one could set environment.etc.*.text and .source.
.source would always take precedence, regardless of the priorities set.
This change means that if, for instance, .text is set with mkForce but
.source is set normally, the .text content will be the one to take
effect. If they are set with the same priority they will conflict.
2021-11-14 18:47:09 -05:00
github-actions[bot]
d5964b8c81
Merge staging-next into staging 2021-11-10 00:02:09 +00:00
Christian Kögler
33ffba995d
NixOS: Document impurity issues with boot.binfmt.emulatedSystems (#142778)
* NixOS: Document impurity issues with boot.binfmt.emulatedSystems

* Update nixos/modules/system/boot/binfmt.nix

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>

* Update nixos/modules/system/boot/binfmt.nix

Co-authored-by: Moritz Hedtke <13287984+mohe2015@users.noreply.github.com>

* Update nixos/modules/system/boot/binfmt.nix

Co-authored-by: Moritz Hedtke <13287984+mohe2015@users.noreply.github.com>

* Update nixos/modules/system/boot/binfmt.nix

Co-authored-by: markuskowa <markus.kowalewski@gmail.com>

* Apply suggestions from code review

Co-authored-by: markuskowa <markus.kowalewski@gmail.com>

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Co-authored-by: Moritz Hedtke <13287984+mohe2015@users.noreply.github.com>
Co-authored-by: markuskowa <markus.kowalewski@gmail.com>
2021-11-09 21:49:45 +01:00
Florian Klink
6ae271565d
Merge pull request #140046 from jrobsonchase/systemd-boot/fix-regexp
nixos/systemd-boot: Fix installed version regexp
2021-11-06 12:24:32 +01:00
Josh Robson Chase
3efc2de6d1
nixos/systemd-boot: Use the correct version string from the bootctl --version output 2021-11-05 12:11:22 -04:00
Josh Robson Chase
4ddc78818e
nixos/systemd-boot: Re-add the verison check, but as equivalence-only 2021-11-05 12:11:21 -04:00
Josh Robson Chase
71ed9d096e
nixos/systemd-boot: Remove the installed version check altogether
bootctl does it as a part of its update process anyway, so we're just
duplicating code.
2021-11-05 12:11:20 -04:00
Josh Robson Chase
1d5ffa8cac
nixos/systemd-boot: Fix installed version regexp
The regexp was only matching numbers and not the '.', so everyone using
systemd-boot would always see `could not find any previously installed
systemd-boot` on a `nixos-rebuild`.
2021-11-05 12:11:19 -04:00
Maciej Krüger
f37f1b2d01
Merge pull request #130388 from oxalica/fix/etc-nixos-tag-in-activation 2021-11-04 15:26:17 +01:00
Maciej Krüger
7667f641c9
systemd: disable systemd-udev-trigger.service in containers 2021-11-03 07:49:50 +01:00
Michael Fellinger
cb3a0f55e8 stage2: use atomic bind mounts 2021-11-01 20:12:59 -07:00
Robert Hensing
b5681a7a40 nixos/specialisation: Rephrase in terms of extendModules, noUserModules
By using the new extendModules function to produce the specialisations,
we avoid reimplementing the eval-config.nix logic in reverse and fix
cross compilation support for specialisations in the process.
2021-11-01 10:59:47 +01:00
Luke Granger-Brown
13fad0f81b nixos/systemd-boot: create boot entries for specialisations
Some specialisations (such as those which affect various boot-time
attributes) cannot be switched to at runtime. This allows picking the
specialisation at boot time.
2021-10-31 11:36:15 +00:00
Florian Klink
81715a5da0
Merge pull request #142570 from flokli/add-missing-cryptsetup-targets
nixos/systemd: add remote-cryptsetup.target
2021-10-25 12:51:27 +02:00
Artturi
dfad31d753
Merge pull request #142273 from ju1m/display-managers 2021-10-23 03:58:21 +03:00
Florian Klink
0084c41abf nixos/systemd: add remote-cryptsetup.target
/etc/crypttab can contain the _netdev option, which adds crypto devices
to the remote-cryptsetup.target.

remote-cryptsetup.target has a dependency on cryptsetup-pre.target. So
let's add both of them.

Currently, one needs to manually ssh in and invoke `systemctl start
systemd-cryptsetup@<name>.service` to unlock volumes.

After this change, systemd will properly add it to the target, and
assuming remote-cryptsetup.target is pulled in somewhere, you can simply
pass the passphrase by invoking `systemd-tty-ask-password-agent` after
ssh-ing in, without having to manually start these services.

Whether remote-cryptsetup.target should be added to multi-user.target
(as it is on other distros) is part of another discussion - right now
the following snippet will do:

```
systemd.targets.multi-user.wants = [ "remote-cryptsetup.target" ];
```
2021-10-22 15:47:21 +02:00
Julien Moutinho
2ef7fec214 nixos/systemd-lib: fix cross-compiling 2021-10-21 03:55:36 +02:00
Hugo Lageneste
e09fb63ffc nixos/luksroot: sync the crypt-storage
Add a sync command just after writing to the /crypt-storage file in order to reduce
the possibilities of corruption errors.
2021-10-20 03:46:19 +03:00
Janne Heß
4cdbb2d891
nixos/switch-to-configuration: Fix ordering and indentation
This makes the order of operations the same in dry-activate and a "true"
activate. Also fixes the indentation I messed up and drop a useless
unlink() call (we are already unlinking that file earlier).
2021-10-17 14:35:49 +02:00
Janne Heß
ad09f7be14
nixos/switch-to-configuration: Handle stopped sockets
The previous logic failed to detect that units were socket-activated
when the socket was stopped before switch-to-configuration was run. This
commit fixes that and also starts the socket in question.
2021-10-17 14:35:48 +02:00
Janne Heß
558158b4f5
nixos/switch-to-configuration: Hide socket warnings 2021-10-17 14:35:48 +02:00
Janne Heß
047aa1a0e9
nixos/switch-to-configuration: Use early return 2021-10-17 14:35:47 +02:00
Janne Heß
4f870c7d70
nixos/switch-to-configuration: Restart timers 2021-10-17 14:35:47 +02:00
Janne Heß
adc033cd59
nixos/switch-to-configuration: Ignore path units 2021-10-17 14:35:46 +02:00
Janne Heß
de128feacc
nixos/switch-to-configuration: Ignore slice units 2021-10-17 14:35:46 +02:00
Janne Heß
b515bae5cf
nixos/switch-to-configuration: Remove some FIXMEs
The first FIXME is removed because it doesn't make sense to use
/proc/1/exe since that points to a directory that doesn't have all tools
the activation script needs (like systemd-escape).

The second one is removed because there is already no error handling
(compare with the restart logic where the return code is checked).
2021-10-17 14:35:45 +02:00
Janne Heß
cfad5e3403
nixos/switch-to-configuration: Improve socket support
This commit changes a lot more that you'd expect but it also adds a lot
of new testing code so nothing breaks in the future. The main change is
that sockets are now restarted when they change. The main reason for
the large amount of changes is the ability of activation scripts to
restart/reload units. This also works for socket-activated units now,
and honors reloadIfChanged and restartIfChanged. The two changes don't
really work without each other so they are done in the one large commit.

The test should show what works now and ensure it will continue to do so
in the future.
2021-10-17 14:35:43 +02:00
Janne Heß
744162ffb6
nixos/switch-to-configuration: Fix perlcritic warning 2021-10-17 14:33:42 +02:00
Janne Heß
c4d34cd184
nixos/top-level: Check Syntax of switch-to-configuration 2021-10-17 14:33:42 +02:00
Janne Heß
f0a31f9b9f
nixos/switch-to-configuration: Ignore started scopes
They are not managed by us and it might be weird to users to see units
they didn't expect to be started.
2021-10-17 14:33:42 +02:00
Janne Heß
ec619ca369
nixos/switch-to-configuration: Remove unused variable 2021-10-17 14:33:41 +02:00
pennae
f29ea2d15d nixos/networking: add foo-over-udp endpoint support
allows configuration of foo-over-udp decapsulation endpoints. sadly networkd
seems to lack the features necessary to support local and peer address
configuration, so those are only supported when using scripted configuration.
2021-10-16 20:48:03 -04:00
Vladimir Serov
a868222d65
nixos.system.boot.kernel: stronger constraints for kernelParam type
Checks whether all spaces are inside double quotes, thus ensuring that one
string parses as no more than one kernel param.

Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>
2021-10-16 01:21:10 +03:00
Graham Christensen
a997f198a3
Merge pull request #139833 from flox/multipath
nixos/multipath: add module for multipath-tools package
2021-10-13 09:58:25 -04:00
Joerie de Gram
7bd84b6685 systemd-boot: add 'graceful' configuration option
On some systems bootctl cannot write the `LoaderSystemToken` EFI variable
during installation, which results in a failure to install the boot
loader. Upstream provides a flag (--graceful) to ignore such write failures -
this change exposes it as a configuration option.

As the exact semantics of this option appear to be somewhat volatile it
should be used only if systemd-boot otherwise fails to install.
2021-10-11 15:14:33 +02:00
Michael Brantley
121cfd1998 nixos/multipath: add multipath module
The multipath-tools package had existed in Nixpkgs for some time but
without a nixos module to configure/drive it. This module provides
attributes to drive the majority of multipath configuration options
and is being successfully used in stage-1 and stage-2 boot to mount
/nix from a multipath-serviced iSCSI volume.

Credit goes to @grahamc for early contributions to the module and
authoring the NixOS module test.
2021-10-08 09:47:38 -04:00
Graham Christensen
829bbc708b boot.initrd.extraFiles: allow users to add arbitrary files to the initrd 2021-10-08 09:47:01 -04:00
Andreas Rammhold
0873980dc8
Merge pull request #139754 from eyJhb/networkd-iaid
nixos/networkd: added IAID, DUIDType and DUIDRawData to DHCPv6 section
2021-10-05 10:06:05 +02:00
Naïm Favier
2ddc335e6f
nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
Robert Hensing
c3bf08d1b0
Merge pull request #139431 from erikarvstedt/etc-simplify-source
nixos/etc: simplify source path handling
2021-10-03 00:50:39 +02:00
eyjhb
4b8bd41060
nixos/networkd: added IAID, DUIDType and DUIDRawData to DHCPv6 section 2021-09-28 15:33:06 +02:00
Jörg Thalheim
59cb7a87d7
Merge pull request #137124 from helsinki-systems/feat/activation-script-restart
nixos/switch-to-configuration: Allow activation scripts to restart units
2021-09-26 15:46:38 +01:00
Leo Maroni
e95a50a64b
nixos/networkd: add ActivationPolicy option 2021-09-25 16:03:42 +02:00
Erik Arvstedt
654f41435b
nixos/etc: simplify source path handling
This change is strictly functionally equivalent because we're just
lifting the transformation of `source` out of `mapAttrs` to the single point of
use (in escapeShellArgs).

This is also much faster because we can skip a map over all `etc` items.
2021-09-25 14:44:38 +02:00
Artturi
e7b6d118f2
Merge pull request #113241 from chkno/user-activation-scripts
Run userActivationScripts at login
2021-09-18 05:25:06 +03:00
Artturi
74b3e9ff87
Merge pull request #136471 from Artturin/tmpontmpfssize 2021-09-16 02:25:02 +03:00
github-actions[bot]
728f30ca03
Merge master into staging-next 2021-09-15 00:01:33 +00:00
github-actions[bot]
91c89490cc
Merge master into staging-next 2021-09-14 18:01:05 +00:00
ajs124
9c566248df
Merge pull request #137508 from helsinki-systems/fix/dry-activation
nixos/activation-script: Fix dependencies for dry activation
2021-09-14 15:55:37 +02:00
Guillaume Girol
9739ba6baf nixos/systemd: create a group for systemd-coredump
Fixes:
```
activating the configuration...
warning: user ‘systemd-coredump’ has unknown group ‘systemd-coredump’
setting up /etc...
```

Oversight of #133166
2021-09-14 12:00:00 +00:00
github-actions[bot]
1db0c42d5a
Merge master into staging-next 2021-09-14 00:01:23 +00:00
Guillaume Girol
3592034595
Merge pull request #133166 from symphorien/nonogroup
Don't default to nogroup for the primary group of users.
2021-09-13 18:29:21 +00:00
Jonathan Ringer
ca1731455d
Merge remote-tracking branch 'origin/master' into staging-next 2021-09-13 08:09:52 -07:00
Alyssa Ross
0f279e2e0c nixos/top-level: fix cross
When cross-compiling, we can't run the runtime shell to check syntax
if it's e.g. for a different architecture.  We have two options here.
We can disable syntax checking when cross compiling, but that risks
letting errors through.  Or, we can do what I've done here, and change
the syntax check to use stdenv's shell instead of the runtime shell.
This requires the stdenv shell and runtime shell to be broadly
compatible, but I think that's so ingrained in Nixpkgs anyway that
it's fine.  And this way we avoid conditionals that check for cross.
2021-09-13 11:13:38 +00:00
Guillaume Girol
bc3bca822a nixos: define the primary group of users where needed 2021-09-12 14:59:30 +02:00
Janne Heß
4db13430fb
nixos/activation-script: Fix dependencies for dry activation 2021-09-12 11:34:13 +02:00
github-actions[bot]
fc5d1c0828
Merge master into staging-next 2021-09-09 12:01:24 +00:00
Janne Heß
e8388f8574
nixos/switch-to-configuration: Allow activation scripts to restart units
The primary use case is tools like sops-nix and agenix to restart units
when secrets change. There's probably other reasons to restart units as
well and a nice thing to have in general.
2021-09-09 13:11:52 +02:00
Janne Heß
2bcd3dad86
nixos/top-level: Check activation script syntax 2021-09-08 20:08:44 +02:00
github-actions[bot]
31efc58eb0
Merge master into staging-next 2021-09-08 18:01:03 +00:00
Artturin
f45e8d560e nixos/tmp: add tmpOnTmpfsSize 2021-09-08 19:30:52 +03:00