| 28 Jul 2025 |
emily | I'm not totally sure as it is possible (but not guaranteed) that we will deprecate that hierarchy. I'd say boot.initrd.network.ifstate or boot.initrd.ifstate are both fine | 19:19:46 |
emily | ideally boot.initrd would mirror the top level hierarchy | 19:20:04 |
emily | but alas :) | 19:20:07 |
Marcel | so boot.initrd.networking? ;D | 19:20:22 |
emily | yeah, but it's probably too confusing to do that | 19:20:37 |
Marcel | yeah unserstand that | 19:20:42 |
Marcel | i'll use networking | 19:20:49 |
Marcel | * | 19:20:54 |
Marcel | I've build an assertion like this:
IfState and networking.useDHCP cannot be used at the same time, as both configure the network. Please look into IfState hooks to integrate DHCP: https://codeberg.org/liske/ifstate/issues/111
The problem is that useDHCP is per default set to true. That means that every user first using ifstate gets this error, is this bad? Should ifstate set useDHCP to false?
| 20:25:45 |
hexa | please bring ifstate upstream | 20:27:00 |
hexa | it's one more thing we can point people to, to escape scripted networking | 20:27:10 |
ElvishJerricco | hexa (clat on linux when): (that is what they're working on :P) | 20:27:23 |
hexa | and e.g. if they require network namespaces | 20:27:24 |
Marcel | In reply to @hexa:lossy.network please bring ifstate upstream I am currenlty in the process ;D | 20:27:25 |
hexa | was only aware of the flake 🙂 | 20:27:33 |
hexa | backlog is hard | 20:27:40 |
ElvishJerricco | the networkmanager module just sets it to false | 20:28:05 |
emily | tbh, I hate overriding useDHCP from another module like that, but it's what NM and connman do, so it's probably the way to go | 20:28:06 |
emily | (I guess, mostly I dislike networking.useDHCP being on by default) | 20:28:21 |
emily | assertion is still good to have as a backstop | 20:28:31 |
Marcel | In reply to @emilazy:matrix.org assertion is still good to have as a backstop i've also done them for networkd and all the others | 20:28:46 |
emily | networking.useNetworkd will likely be on by default as well soon, FWIW | 20:29:10 |
emily | though it should be harmless if no interfaces are defined etc. | 20:29:16 |
emily | I think systemd-networkd will ignore everything that isn't explicitly configured | 20:29:28 |
emily | networking.useDHCP and networking.networkmanager.enable are a bit different in that they look at "everything" | 20:29:53 |
emily | shouldn't need to assert against networkd itself | 20:30:04 |
Marcel | https://github.com/MarcelCoding/nixpkgs/blob/ifstate/nixos/modules/services/networking/ifstate.nix#L115-L126
The problem is how do I enshure the user does not configure stuff in networkd? | 20:30:47 |
emily | is it the end of the world if they do? | 20:31:05 |
emily | you could imagine having a base networkd config used on all devices to get a basic uplink but then you have some fancy stuff using ifstate. dunno :) | 20:31:20 |
emily | like, you can also have both networkd and NM enabled, and it is fine as long as you do not try to configure the same interface with both | 20:31:43 |