Loading
Revert #481473 "nixos/network-interfaces: remove network-setup"
Reverts #481473, fixes #509254 Turns out this breaks scripted networking with systemd stage 1. Even if we assumed that systemd stage 1 wasn't now the default, I still think that makes this worthy of a revert, in the absence of a fix. But now that systemd stage 1 is the default, this is also a channel blocker. The problem is that wantedBy = [ "foo.device" ]; doesn't work as hoped. If the device appears in stage 1, then the systemd device unit becomes active in stage 1 without pulling in any dependency for configuring it (because that only exists in stage 2). When we transition to stage 2, systemd maintains its information about unit state between stages and remembers that the device units were already active. They do not become reactivated, and consequently their new stage 2 dependencies do not get pulled in. The fix is probably to do this with SYSTEMD_WANTS= in udev rules, rather than with wantedBy. The udev rules will re-fire during stage 2, though I'm not 100% clear on exactly which events that includes (e.g. if we'll get new add events or if we need to look for a different ACTION or anything like that). This is going to require some experimentation and testing that I don't have time for today. Given that this is addressing a channel blocker, I think this revert should be merged if a fix can't be merged instead before the next unstable-small eval. In either case, staging-nixos should be merged to master right after.