On Fri, Feb 19, 2016 at 4:12 PM, Sébastien Luttringer <seblu@seblu.net> wrote:
On ven., 2016-02-19 at 08:12 +0100, Maxime Gauduin wrote:
On Fri, Feb 19, 2016 at 2:27 AM, Sébastien Luttringer <seblu@seblu.net> wrote: What about when you remove a dkms package? Would be nice to remove the build modules as well. This is done by post install scriplet[1] of each dkms module package (e.g it calls "dkms remove vhosthost/${1%-*} --all").
Right.
Name and version of the dkms modules to remove is not easy to guess in a global hook. Also note that a dkms module can build several kernel modules.
That's also why registering (dkms add) of the modules is done by install scriplet.
Only the build/install of registered modules are done by the hook in order to schedule them properly.
With these hooks [1] designed for kernel transaction, we will have complete support of oot modules in pacman.
I didn't tried them but I don't get how this can works when you install/update a dkms module.
I'm aware of that, they were designed that way. That's why with those, and your hook triggered by dkms package transactions, every case will be covered. I guess it could be possible to handle both within a single hook by adding an additional trigger on "usr/src/*" and so on, but I think it's probably better to keep them separate.
Your dkms-install hook is triggered by files installation in /usr/lib/modules, but dkms packages didn't do that at all. They write these files in /usr/src/$foo and register the dkms module with dkms add.
Files are copied in /usr/lib/modules when you run "dkms install" (so not under the watch of alpm), so it make no sense to call dkms install again when file are here.
[1] https://projects.archlinux.org/svntogit/packages.git/tree/trunk/nvidia-dkms .install?h=packages/nvidia
-- Sébastien "Seblu" Luttringer https://seblu.net | Twitter: @seblu42 GPG: 0x2072D77