Bug 31835 - Update dkms to version 3.0.x
Summary: Update dkms to version 3.0.x
Status: NEW
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal normal
Target Milestone: Mageia 10
Assignee: Kernel and Drivers maintainers
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-04-23 11:31 CEST by Stig-Ørjan Smelror
Modified: 2024-07-25 03:23 CEST (History)
3 users (show)

See Also:
Source RPM: dkms-2.0.19-46.mga9.src.rpm
CVE:
Status comment:


Attachments
1st Try of spec for dkms 3.0.12 (4.50 KB, text/x-matlab)
2023-12-18 03:02 CET, katnatek
Details
dkms 3.0.12 version of symvers pacth (1.85 KB, patch)
2023-12-18 03:03 CET, katnatek
Details | Diff
dkms 3.0.12 version of norpm patch (1.04 KB, patch)
2023-12-18 03:04 CET, katnatek
Details | Diff
dkms 3.0.12 versionof detect-Mageia patch (2.33 KB, patch)
2023-12-18 03:04 CET, katnatek
Details | Diff
Some corrections to the spec (4.74 KB, text/x-matlab)
2024-02-07 18:52 CET, katnatek
Details
Clean version of dkms 3 spec (3.33 KB, text/x-matlab)
2024-02-10 03:37 CET, katnatek
Details
Emulate destination override in dkms 2 (613 bytes, patch)
2024-02-10 03:44 CET, katnatek
Details | Diff
Patch to replace alias by functions (2.89 KB, patch)
2024-02-10 03:46 CET, katnatek
Details | Diff
Alternative destination override patch (616 bytes, patch)
2024-02-29 19:05 CET, katnatek
Details | Diff
3rd version of destination override patch (649 bytes, patch)
2024-07-12 02:18 CEST, katnatek
Details | Diff

Description Stig-Ørjan Smelror 2023-04-23 11:31:19 CEST
Our dkms is quite old and since it contains a lot of patches it needs a lot of love before we can update it.

Scheduled for MGA10.

https://github.com/dell/dkms/releases
Stig-Ørjan Smelror 2023-04-23 11:31:34 CEST

Target Milestone: --- => Mageia 10

Comment 1 Lewis Smith 2023-04-23 20:19:35 CEST
Thanks for the comment, Stig.

Forwarding to the kernel people.

Assignee: bugsquad => kernel

Lewis Smith 2023-04-23 20:21:23 CEST

Source RPM: (none) => dkms-2.0.19-46.mga9.src.rpm

katnatek 2023-12-14 21:21:33 CET

See Also: (none) => https://bugs.mageia.org/show_bug.cgi?id=17198
CC: (none) => j.alberto.vc

katnatek 2023-12-15 21:15:34 CET

CC: (none) => ngompa13

Comment 2 katnatek 2023-12-15 21:16:50 CET
I will try to give a hand on this, but I don't know how far I can go
Comment 3 katnatek 2023-12-18 03:02:11 CET
Created attachment 14222 [details]
1st Try of spec for dkms 3.0.12

I part from the work done in https://svnweb.mageia.org/packages/cauldron/dkms/branches/WIP/current/

And also the spec for dkms 3.0.12 in fedora, I have to redo some mageia patches and drop a lot that can't be imported to this version due lot of changes in sources

Of course my work need revision, but I install the produced rpm, reboot my system, uninstall and reinstall a dkms module and look normal for me
Comment 4 katnatek 2023-12-18 03:03:19 CET
Created attachment 14223 [details]
dkms 3.0.12 version of symvers pacth
Comment 5 katnatek 2023-12-18 03:04:03 CET
Created attachment 14224 [details]
dkms 3.0.12 version of norpm patch
Comment 6 katnatek 2023-12-18 03:04:55 CET
Created attachment 14225 [details]
dkms 3.0.12 versionof detect-Mageia patch
katnatek 2023-12-18 03:06:55 CET

Attachment 14223 description: dkms 3.0.12 version of this pacth => dkms 3.0.12 version of symvers pacth

Guillaume Bedot 2023-12-18 08:44:08 CET

CC: (none) => geex+mageia

Comment 7 katnatek 2024-02-01 03:59:47 CET
I was using the created package but the modules are not rebuilt when new kernels are installed, and fail when I do by hand, so I need to do more test/research
Comment 8 katnatek 2024-02-01 19:14:35 CET
This version have /usr/lib/dkms/dkms_autoinstaller that is very different of our current /usr/sbin/dkms_autoinstaller

I need to do some test but look like if we succeed to update to this branch we also must modify the dkms_autoinstaller line in the kernel spec
Comment 9 katnatek 2024-02-07 18:52:02 CET
Created attachment 14344 [details]
Some corrections to the spec

I did try to reproduce the messages in plymouth when the module is builded on boot time but not works, also an alias in the new dkms_autoinstaller is not working

I did perform some test and this time all seems working

For kernels is needed change in the spec

if [ -z "$DURING_INSTALL" ] ; then
 	%if %{versionednamingscheme}
 	    if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
 	        /usr/sbin/dkms_autoinstaller start %{kversion}-$kernel_flavour-%{buildrpmrel}
 	%else
 	    if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{rpmrel} ]; then
 	        /usr/sbin/dkms_autoinstaller start %{kversion}-$kernel_flavour-%{rpmrel}
 	%endif
 	    fi
fi

By

if [ -z "$DURING_INSTALL" ] ; then
 	%if %{versionednamingscheme}
 	    /usr/libexec/dkms_autoinstaller start %{kversion}-$kernel_flavour-%{buildrpmrel}
 	%else
 	    /usr/libexec/dkms_autoinstaller start %{kversion}-$kernel_flavour-%{rpmrel}
 	%endif
fi

Or if you wish you can replace /usr/libexec/dkms_autoinstaller start by /sbin/dkms autoinstall --kernelver

Attachment 14222 is obsolete: 0 => 1

Comment 10 katnatek 2024-02-07 19:09:53 CET
(In reply to katnatek from comment #9)
> Created attachment 14344 [details]
> Some corrections to the spec
> 
> I did try to reproduce the messages in plymouth when the module is builded
> on boot time but not works, also an alias in the new dkms_autoinstaller is
> not working
> 
> I did perform some test and this time all seems working
> 
> For kernels is needed change in the spec
> 
> if [ -z "$DURING_INSTALL" ] ; then
>  	%if %{versionednamingscheme}
>  	    if [ -x /usr/sbin/dkms_autoinstaller -a -d
> /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
>  	        /usr/sbin/dkms_autoinstaller start
> %{kversion}-$kernel_flavour-%{buildrpmrel}
>  	%else
>  	    if [ -x /usr/sbin/dkms_autoinstaller -a -d
> /usr/src/kernel-%{kversion}-$kernel_flavour-%{rpmrel} ]; then
>  	        /usr/sbin/dkms_autoinstaller start
> %{kversion}-$kernel_flavour-%{rpmrel}
>  	%endif
>  	    fi
> fi
> 
> By
> 
> if [ -z "$DURING_INSTALL" ] ; then
>  	%if %{versionednamingscheme}
>  	    /usr/libexec/dkms_autoinstaller start
> %{kversion}-$kernel_flavour-%{buildrpmrel}
>  	%else
>  	    /usr/libexec/dkms_autoinstaller start
> %{kversion}-$kernel_flavour-%{rpmrel}
>  	%endif
> fi
> 
> Or if you wish you can replace /usr/libexec/dkms_autoinstaller start by
> /sbin/dkms autoinstall --kernelver

Take care if you choose /usr/libexec/dkms_autoinstaller of make works this 

alias log_daemon_msg='/bin/echo -n'

Because i get complains about log_daemon_msg not found
Comment 11 katnatek 2024-02-10 03:37:45 CET
Created attachment 14353 [details]
Clean version of dkms 3 spec

I add two more patchs and clean almost all the spec

Attachment 14344 is obsolete: 0 => 1

Comment 12 katnatek 2024-02-10 03:44:14 CET Comment hidden (obsolete)
Comment 13 katnatek 2024-02-10 03:46:56 CET
Created attachment 14355 [details]
Patch to replace alias by functions

I replace alias by functions, this works for me, but of course you can review and change
Comment 14 katnatek 2024-02-29 19:05:13 CET Comment hidden (obsolete)
Comment 15 katnatek 2024-07-12 02:18:59 CEST
Created attachment 14588 [details]
3rd version of destination override patch

I use sed to remove ^/kernel from the path and I think this works as expected but need test and compare with dkms2 behavior for other modules

At less with dkms-vhba the destination path is the same

This is the result of remove dkms-vhba still with dkms2

rpm -e --nodeps dkms-vhba

-------- Uninstall Beginning --------
Module:  vhba
Version: 20211218-2.mga9
Kernel:  6.6.37-desktop-1.mga9 (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

vhba.ko.xz:
 - Uninstallation
   - Deleting from: /lib/modules/6.6.37-desktop-1.mga9/dkms/vhba/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod........

DKMS: uninstall Completed.

------------------------------
Deleting module version: 20211218-2.mga9
completely from the DKMS tree.
------------------------------
Done.

Then install my dkms3 version (sorry for the output in spanish)

urpmi ./RPMS/noarch/dkms-3.0.12-1.WIP.mga9.noarch.rpm 


SEGURIDAD: Los siguientes paquetes _NO_ están firmados (OK ((none))): ./RPMS/noarch/dkms-3.0.12-1.WIP.mga9.noarch.rpm
instalando dkms-3.0.12-1.WIP.mga9.noarch.rpm desde ./RPMS/noarch
Preparando...                    ##################################################################################################
      1/1: dkms                  ##################################################################################################
inactive
      1/2: quitando dkms-2.0.19-46.mga9.noarch
                                 ##################################################################################################
quitando paquete dkms-minimal-2.0.19-46.mga9.noarch
      2/2: quitando dkms-minimal-2.0.19-46.mga9.noarch
                                 ##################################################################################################

And install again dkms-vhba

urpmi  dkms-vhba
Marcando dkms-vhba como instalado a mano, no se marcara como huerfano
writing /var/lib/rpm/installed-through-deps.list


    https://mirror.math.princeton.edu/pub/mageia/distrib/9/x86_64/media/core/release/dkms-vhba-20211218-2.mga9.noarch.rpm
instalando dkms-vhba-20211218-2.mga9.noarch.rpm desde /var/cache/urpmi/rpms                                                         
Preparando...                    ##################################################################################################
      1/1: dkms-vhba             ##################################################################################################
Creating symlink /var/lib/dkms/vhba/20211218-2.mga9/source -> /usr/src/vhba-20211218-2.mga9
The kernel is built without module signing facility, modules won't be signed

Building module:
Cleaning build area...
make -j4 KERNELRELEASE=6.6.37-desktop-1.mga9 KDIR=/lib/modules/6.6.37-desktop-1.mga9/build.....
Cleaning build area...

vhba.ko.xz:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/6.6.37-desktop-1.mga9/dkms//vhba/
depmod.....

As you see, the destination path is the same

Attachment 14434 is obsolete: 0 => 1
Attachment 14354 is obsolete: 0 => 1

Comment 16 katnatek 2024-07-12 03:49:11 CEST
I reinstall kernel server from Bug#33373 
As the current dkms options in kernel spec are not compatible with dkms 3 then the module was not built when install the kernel but when reboot and select kernel server

systemctl status dkms.service 
● dkms.service - Builds and install new kernel modules through DKMS
     Loaded: loaded (/usr/lib/systemd/system/dkms.service; enabled; preset: enabled)
     Active: active (exited) since Thu 2024-07-11 19:41:39 CST; 3min 28s ago
       Docs: man:dkms(8)
    Process: 797 ExecStart=/usr/sbin/dkms autoinstall --verbose --kernelver 6.6.37-server-1.mga9 (code=exited, status=0/SUCCESS)
   Main PID: 797 (code=exited, status=0/SUCCESS)
        CPU: 12.230s

jul 11 19:41:02 jgrey.phoenix dkms[2637]: make: se sale del directorio '/usr/src/kernel-6.6.37-server-1.mga9'
jul 11 19:41:02 jgrey.phoenix dkms[1562]: vhba.ko.xz:
jul 11 19:41:02 jgrey.phoenix dkms[1562]: Running module version sanity check.
jul 11 19:41:06 jgrey.phoenix dkms[1562]:  - Original module
jul 11 19:41:06 jgrey.phoenix dkms[1562]:    - No original module exists within this kernel
jul 11 19:41:06 jgrey.phoenix dkms[1562]:  - Installation
jul 11 19:41:06 jgrey.phoenix dkms[1562]:    - Installing to /lib/modules/6.6.37-server-1.mga9/dkms//vhba/
jul 11 19:41:06 jgrey.phoenix dkms[1562]: do_depmod 6.6.37-server-1.mga9
jul 11 19:41:39 jgrey.phoenix dkms[797]: dkms autoinstall on 6.6.37-server-1.mga9/x86_64 succeeded for vhba
jul 11 19:41:39 jgrey.phoenix systemd[1]: Finished dkms.service.
Comment 17 katnatek 2024-07-25 03:23:35 CEST
Other side effect of migrate to this version is if you install new dkms-module the module is only build for the current kernel

If you want to emulate the dkms 2 behavior, I suggest add to each dkms-module spec at end of the %post section

for kernel in $(find /lib/modules/*  -maxdepth 0 -type d|sed -e 's|/lib/modules/||') ; do /usr/libexec/dkms_autoinstaller start $kernel ; done

Note You need to log in before you can comment on or make changes to this bug.