Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make it explicit to use the network-legacy dracut module #297

Closed
wants to merge 1 commit into from
Closed

make it explicit to use the network-legacy dracut module #297

wants to merge 1 commit into from

Conversation

LaszloGombos
Copy link

No description provided.

@LaszloGombos
Copy link
Author

Can somebody help please and confirm that #297 cause no regression (using the current dracut-v053 version ?

The is a more future-proof way to configure dracut for void and should enable updating to dracut v56 as well.

I hope this is helpful to make some progress on #296

@ahesford
Copy link
Member

ahesford commented Dec 2, 2022

This is probably not the right fix for a few of reasons:

  1. The general-purpose network package is supposed to do the right thing. The problem here is that newer dracut ships a network-manager module that has a systemd dependency. If Void is going to ship the network-manager module are part of its dracut package, tht module should always work. We shouldn't be patching around a Void packaging problem here.
  2. There is no fundamental reason that the mklive modules can't use an arbitrary network configuration. If the live image has a specific reason to favor network-legacy over the network-manager preference, a better way to do this is by amending the dracut configuration, not the module dependencies:
    add_dracutmodules+=" network-legacy "
    omit_dracutmodules+=" network-manager "
  3. Eventually, I think Dracut is going to abandon network-legacy in favor of something like an iwd module. If we hard-depend on network-legacy here, we'll eventually forget about it and there will be another dracut upgrade that breaks this project.

Should Void update dracut again, we need to be more careful about scrubbing systemd dependencies. That means either

  • Patching the dbus-daemon module to eliminate systemd, or
  • Dropping all modules on the branch of the dependency graph that depend on dbus and its incompatible helpers.
    However, given the ongoing and recurrent problems with Dracut embracing systemd, I think we should just freeze our package at 053 indefinitely. If somebody has a compelling need to update, let that person document the need and provide evidence that the update won't subtly break.

@LaszloGombos
Copy link
Author

There is no fundamental reason that the mklive modules can't use an arbitrary network configuration.

dracutdevs/dracut@112f03f is the commit that added dbus dracut module dependency to network-manager dracut module.

According to the commit log

once NM has quit, dynamic addresses can expire if the initrd setup takes longer than the
DHCP lease interval or than the IPv6 address lifetime.

If live image is using network-manager than life image would have this bug unless it is fixed by some other means.

@ahesford
Copy link
Member

ahesford commented Dec 2, 2022

That's not a fundamental reason that this project should select network-legacy over network in its own modules. If Void wants to update Dracut, the fix is to either patch out that commit or remove the network-manager module in its entirety. Either way, mklive doesn't need to know or care what the network module is choosing as the backend.

@LaszloGombos
Copy link
Author

If Void wants to update Dracut..

I am here to help and now very little about Void, but I am trying to resolve this issue with Dracut not just for Void but also upstream.

What I found is that NetworkManager dropped support for configure-and-quit command line option in version 1.36 (https://github.com/NetworkManager/NetworkManager/blob/main/NEWS#L206). Dropping this feature is actually what required Dracut to pull in dbus (and sadly systemd) for NetworkManager support in initramfs.

So the thing is that this seems not a regression in Dracut but in NetworkManager. It also seems to me that Void Linux is now on v1.40 of NetworkManager - https://github.com/void-linux/void-packages/blob/78d893ab117c3bf0a34a090624358ba8c9f1b9ff/srcpkgs/NetworkManager/template#L3

Holding back upgrading Dracut does not actually prevent the breakage of NetworkManager in the generated initramfs. Dropping this note here just to see if someone has interest to confirm this.

There is also a PR proposal to resolve this in Dracut upstream that you could merge that would resolve the issue that was introduced with NetworkManager v1.36 - dracutdevs/dracut@20fd7ed

@ahesford
Copy link
Member

This is not the place to discuss any of these matters. File an issue in void-packages to discuss a broken network module in dracut.

@void-linux void-linux locked as off-topic and limited conversation to collaborators Dec 12, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants