-
Notifications
You must be signed in to change notification settings - Fork 160
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
forcing autoinstall to rebuild all modules #364
Comments
Last time I went dumpster diving ... err through I haven't gone through a great deal of exploring all the possible corner-cases, although my initial inclination is that those can go, especially since it seems to be disabled on Debian/Ubuntu. At a glance, the original_modules idea falls short:
Or in general: non-unique/reproducible environment and module binary. Doesn't seem like we capture enough information about the environment used, hence one cannot create a reproducible binary. Conversely we assume that a given module name (or path really) is unique where in practise the binary can vary greatly. IMHO removing said code will be a great first step in the right direction. The second step is to unwrap the current "force" handling. Namely: we have the
@anbe42 any preferences on the above? @xnox considering @scaronni do you recall any of the historical reasons behind |
I think 99% of the people either use dkms in a very basic way (add, build, install and remove) of non-existing modules, or they go on the convoluted way of embedding scripts in the configuration files (for example https://github.com/openzfs/zfs/blob/master/scripts/dkms.mkconf and https://github.com/umlaeute/v4l2loopback/blob/main/dkms.conf). I fall in the first category :) Regarding the |
After a sucessful
I'd like to undo the effect of that autoinstall, e.g. (pseudocode)
(i.e. preserve any manually built/installed AUTOBUILD="" modules) such that a subsequent
would restore the state after the first autoinstall, but with freshly built modules (since we e.g. changed CONFIG_FOO="bar" to CONFIG_FOO="baz" inbetween). This is not really related to the handling of "original modules". |
I'm going to try this in
and then on Debian a rebuild of all modules for a single kernel can be triggered with |
Handling this in the distro/packaging hooks makes sense. On thing to perhaps consider: how is this going to work if both kernel and module get updated in the same update cycle. Especially if the Fwiw the Arch hook removes all old ones and rebuilds/installs them regardless of the AUTOINSTALL flag. |
In the sane world $KVER is bumped every time and there are no upgrades but new installations (and some time later removals) that have to build (delete) all modules anyway. I'm not exactly sure what is the expected behavior of dkms w.r.t. the AUTOINSTALL="" (i.e. the default) setting in dkms.conf. (In parentheses I have the current (3.0.12-2 in experimental/NEW) behavior in Debian. In Debian, there can be only one version of a certain dkms package be installed at the same time.)
I.e. we never build/install it and remove it only if it is unavoidable. |
Writing with my Debian hat on ...
Whenever I upgrade a linux-headers-* package (and it does not change its name), I'd like to rebuild all dkms modules against these headers. Assuming that the ABI is stable if the ABI-version part in the package name (and kernel version) did not change is not a safe bet and the cases where the it actually causes problems are the nasty ones. (Also for kernels in experimental that always use an ABI version of 0, this assumption is outright wrong and modules must be rebuilt on upgrade.)
But dkms currently finds an old build of matching module/modversion/kvers/arch and keeps that. How can I best get around that? The relevant trigger would be that one activated from /etc/kernel/header_postinst.d/dkms.
Debian kernel maintainers are working on improving the situation, e.g. bumping the version in the package name much more often s.t. such required re-build events should be much less frequent (as there would be much more new-build events).
The text was updated successfully, but these errors were encountered: