Don't include networkd units unless enabled

Otherwise, the enabled -> disabled transition won't be handled
correctly (switch-to-configuration currently assumes that if a unit is
running and exists, it should be restarted).

Changed files
+7 -6
nixos
+3
nixos/modules/system/boot/networkd.nix
···
config = mkIf config.systemd.network.enable {
systemd.network.units =
mapAttrs' (n: v: nameValuePair "${n}.link" (linkToUnit n v)) cfg.links
// mapAttrs' (n: v: nameValuePair "${n}.netdev" (netdevToUnit n v)) cfg.netdevs
···
config = mkIf config.systemd.network.enable {
+
systemd.additionalUpstreamSystemUnits =
+
[ "systemd-networkd.service" "systemd-networkd-wait-online.service" ];
+
systemd.network.units =
mapAttrs' (n: v: nameValuePair "${n}.link" (linkToUnit n v)) cfg.links
// mapAttrs' (n: v: nameValuePair "${n}.netdev" (netdevToUnit n v)) cfg.netdevs
+2
nixos/modules/system/boot/resolved.nix
···
config = mkIf config.services.resolved.enable {
systemd.services.systemd-resolved = {
wantedBy = [ "multi-user.target" ];
restartTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
···
config = mkIf config.services.resolved.enable {
+
systemd.additionalUpstreamSystemUnits = [ "systemd-resolved.service" ];
+
systemd.services.systemd-resolved = {
wantedBy = [ "multi-user.target" ];
restartTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
-6
nixos/modules/system/boot/systemd.nix
···
"systemd-modules-load.service"
"kmod-static-nodes.service"
-
# Networking
-
"systemd-networkd.service"
-
"systemd-networkd-wait-online.service"
-
"systemd-resolved.service"
-
"systemd-timesyncd.service"
-
# Filesystems.
"systemd-fsck@.service"
"systemd-fsck-root.service"
···
"systemd-modules-load.service"
"kmod-static-nodes.service"
# Filesystems.
"systemd-fsck@.service"
"systemd-fsck-root.service"
+2
nixos/modules/system/boot/timesyncd.nix
···
config = mkIf config.services.timesyncd.enable {
systemd.services.systemd-timesyncd = {
wantedBy = [ "sysinit.target" ];
restartTriggers = [ config.environment.etc."systemd/timesyncd.conf".source ];
···
config = mkIf config.services.timesyncd.enable {
+
systemd.additionalUpstreamSystemUnits = [ "systemd-timesyncd.service" ];
+
systemd.services.systemd-timesyncd = {
wantedBy = [ "sysinit.target" ];
restartTriggers = [ config.environment.etc."systemd/timesyncd.conf".source ];