New DKMS update must be a mistake...

Questions about applications and software
Forum rules
Before you post read how to get help. Topics in this forum are automatically closed 6 months after creation.
Locked
User avatar
Kudalufi
Level 2
Level 2
Posts: 67
Joined: Mon Nov 30, 2015 12:03 pm
Location: Halifax

New DKMS update must be a mistake...

Post by Kudalufi »

A new update for the dkms package on Mint 21 wants to install gcc12 on my machine. The default gcc that is installed with the normal "gcc" pseudo-package (and thus Mint 21's official gcc version) is 11.2.

I'm assuming this update is a mistake. There isn't a way that a mid-stream update for a core package would intentionally have a dependency on half a gigabyte's worth of new packages that are ahead of the official version, right?
Last edited by LockBot on Mon Aug 07, 2023 10:00 pm, edited 1 time in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
User avatar
karlchen
Level 23
Level 23
Posts: 18212
Joined: Sat Dec 31, 2011 7:21 am
Location: Germany

Re: New DKMS update must be a mistake...

Post by karlchen »

Hello, Kudalufi.

Could you, please, share the terminal output, displayed by the following commandline? apt-cache policy dkms gcc
The output should reveal from which software repositories the new packages will be fetched for installation.

--
Independent of what the requested output will be: could it be that your system has got an NVidia graphics card and that you experience the same gcc version conflict, which has been discussed in this thread? => [SOLVED] Nvidia driver failure on Vera because of gcc-11 on updated kernel 5.19.0-28-generic

Regards,
Karl
Image
The people of Alderaan have been bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine for 771 days now.
Lifeline
User avatar
Kudalufi
Level 2
Level 2
Posts: 67
Joined: Mon Nov 30, 2015 12:03 pm
Location: Halifax

Re: New DKMS update must be a mistake...

Post by Kudalufi »

Code: Select all

dkms:
  Installed: 2.8.7-2ubuntu2mint2
  Candidate: 2.8.7-2ubuntu2.1mint1
  Version table:
     2.8.7-2ubuntu2.1mint1 700
        700 https://muug.ca/mirror/linuxmint/packages vanessa/upstream amd64 Packages
        700 https://muug.ca/mirror/linuxmint/packages vanessa/upstream i386 Packages
     2.8.7-2ubuntu2.1 500
        500 http://archive.ubuntu.mirror.rafal.ca/ubuntu jammy-updates/main amd64 Packages
        500 http://archive.ubuntu.mirror.rafal.ca/ubuntu jammy-updates/main i386 Packages
 *** 2.8.7-2ubuntu2mint2 100
        100 /var/lib/dpkg/status
     2.8.7-2ubuntu2 500
        500 http://archive.ubuntu.mirror.rafal.ca/ubuntu jammy/main amd64 Packages
        500 http://archive.ubuntu.mirror.rafal.ca/ubuntu jammy/main i386 Packages
gcc:
  Installed: 4:11.2.0-1ubuntu1
  Candidate: 4:11.2.0-1ubuntu1
  Version table:
 *** 4:11.2.0-1ubuntu1 500
        500 http://archive.ubuntu.mirror.rafal.ca/ubuntu jammy/main amd64 Packages
        100 /var/lib/dpkg/status
User avatar
karlchen
Level 23
Level 23
Posts: 18212
Joined: Sat Dec 31, 2011 7:21 am
Location: Germany

Re: New DKMS update must be a mistake...

Post by karlchen »

Hello, Kudalufi.

Thanks for the output.
It tells that I may safely drop the idea that some third party repository or some Launchpad PPA might be in use, which causes any dependency issues. Hypothesis falsified.

OK. What about the mentioned thread?
Relevant details: kernel 5.19.0-xx is in use, which seems to require gcc12, but Mint 21.1 comes with gcc11. Nividia DKMS needed.

At the end of the thread mtwebster states
mtwebster wrote: Tue Feb 07, 2023 10:58 am The dkms package has been updated (2.8.7-2ubuntu2.1mint1) so this should not be an issue anymore.
Unless I misunderstand the statement, updating to dkms 2.8.7-2ubuntu2.1mint1 should no longer want to install gcc12.

If you execute the terminal command sudo apt-get --simulate upgrade what is its screen output?
(the option "--simulate" will make sure that no change will be applied, but apt-get will tell what it would do)

Karl
Image
The people of Alderaan have been bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine for 771 days now.
Lifeline
User avatar
Kudalufi
Level 2
Level 2
Posts: 67
Joined: Mon Nov 30, 2015 12:03 pm
Location: Halifax

Re: New DKMS update must be a mistake...

Post by Kudalufi »

Says held back on upgrade - have to use dist-upgrade:

Code: Select all

$ sudo apt-get --simulate dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  cpp-12 gcc-12 libasan8 libgcc-12-dev libtsan2
The following packages have been kept back:
  ubuntu-advantage-tools
The following packages will be upgraded:
  dkms
1 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
Inst cpp-12 (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Inst libasan8 (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Inst libtsan2 (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Inst libgcc-12-dev (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Inst gcc-12 (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Inst dkms [2.8.7-2ubuntu2mint2] (2.8.7-2ubuntu2.1mint1 linuxmint:21/vanessa [all])
Conf cpp-12 (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Conf libasan8 (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Conf libtsan2 (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Conf libgcc-12-dev (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Conf gcc-12 (12.1.0-2ubuntu1~22.04 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Conf dkms (2.8.7-2ubuntu2.1mint1 linuxmint:21/vanessa [all])
Is it possible the dependency has been fixed but hasn't propagated to my mirrors yet?
User avatar
diabolicbg
Level 6
Level 6
Posts: 1432
Joined: Mon Mar 01, 2021 8:20 am
Location: Sofia, Bulgaria

Re: New DKMS update must be a mistake...

Post by diabolicbg »

2023-02-07_19-44.png
I'm using kernel 5.15 of LM21.1 and I just received the update in question, which I installed without problems. With gcc12. :D
- You see, in this world there are two kinds of people, my friend, those with loaded guns, and those who dig. You dig. - "The Good, the Bad and the Ugly"

Behind every faulty computer there is a user who did nothing...
User avatar
Pjotr
Level 24
Level 24
Posts: 20092
Joined: Mon Mar 07, 2011 10:18 am
Location: The Netherlands (Holland) 🇳🇱
Contact:

Re: New DKMS update must be a mistake...

Post by Pjotr »

diabolicbg wrote: Tue Feb 07, 2023 1:43 pm I'm using kernel 5.15 of LM21.1 and I just received the update in question, which I installed without problems. With gcc12. :D
Same here. Kernel 6.1.x, Mint 21.1. The update is unusually big, but there is no problem.

In fact, after I rebooted it had miraculously cured VirtualBox for kernel 6.1.x. :mrgreen:
Tip: 10 things to do after installing Linux Mint 21.3 Virginia
Keep your Linux Mint healthy: Avoid these 10 fatal mistakes
Twitter: twitter.com/easylinuxtips
All in all, horse sense simply makes sense.
User avatar
Kudalufi
Level 2
Level 2
Posts: 67
Joined: Mon Nov 30, 2015 12:03 pm
Location: Halifax

Re: New DKMS update must be a mistake...

Post by Kudalufi »

Installing the update isn't the problem. I'm sure it would install without a hitch for me too. The problem is a Mint 21 package shouldn't depend on gcc 12. The compiler in Mint 21 is gcc 11.2. You shouldn't have to have two versions of gcc installed. It's not just that it's wasteful of storage (which is itself bad enough and potentially difficult for those with installations that need to live in smaller footprints), it's also an issue for memory wastage, future dependencies, and stability. Every package in the distribution should be compiled with and against one compiler and one version of shared libraries. This is definitely a Debian policy, and I'm pretty sure it must be a policy somewhere at Ubuntu.

Which is why I'm thinking this must be a mistake.

EDIT: I'm not in 21.1, I'm in 21.0. If the compiler changed in 21.1, fair enough, I haven't looked at that yet. But even if that is the case, this update shouldn't be pushed to Mint 21.0.

EDIT2: Also seems to be an issue with dkms itself if it is used with a different compiler version than the kernel was made with. See: https://askubuntu.com/questions/1143303 ... el#1143434
User avatar
karlchen
Level 23
Level 23
Posts: 18212
Joined: Sat Dec 31, 2011 7:21 am
Location: Germany

Re: New DKMS update must be a mistake...

Post by karlchen »

Hello, Kudalufi.

Reading the changelog.Debian file, which comes with the installation package dkms_2.8.7-2ubuntu2.1mint1_all.deb, my understanding is that this package depends on the gcc version, which the kernel has been built with, which is currently in use on the system.

This would be gcc-11 for kernel series 5.15.0-xx on Mint 21 and Mint 21.1 by default.
All those of you, who are using kernels from a higher series like 5.19.0-xx, 6.1.0-xx, will very likely need gcc-12, because those kernels have been built with gcc-12.

Below is the first relevant part of the file changelog.Debian:

Code: Select all

dkms (2.8.7-2ubuntu2.1mint1) vera; urgency=medium

  * dkms: Hardcode OS detection

 -- Clement Lefebvre <root@linuxmint.com>  Tue, 07 Feb 2023 11:07:19 +0000

dkms (2.8.7-2ubuntu2.1) jammy; urgency=medium

  * Cherry-pick patches from kinetic/stable to address building dkms
    modules correctly for HWE kernels (LP: #1991664):
    + Fix dkms-autopkgtest when a given dkms package is built into the
    kernel already of the same version. (i.e. zfs-linux on Ubuntu).
    + Use exact compiler for dkms as used to build the kernel, when
    possible.
    + Depend on gcc-12 to build modules for HWE kernels correctly.

 -- Dimitri John Ledkov <dimitri.ledkov@canonical.com>  Tue, 04 Oct 2022 13:25:35 +0100

As a consequence, I doubt that installing gcc-12 in addition to the previous gcc version, is a mistake. It is done deliberately.

Regards,
Karl
Image
The people of Alderaan have been bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine for 771 days now.
Lifeline
User avatar
Kudalufi
Level 2
Level 2
Posts: 67
Joined: Mon Nov 30, 2015 12:03 pm
Location: Halifax

Re: New DKMS update must be a mistake...

Post by Kudalufi »

karlchen wrote: Tue Feb 07, 2023 5:23 pmThis would be gcc-11 for kernel series 5.15.0-xx on Mint 21 and Mint 21.1 by default.
The way I understand .deb dependency handling, the dkms package cannot be made to change its gcc version dependency based on the installed kernel. I have kernel 5.15, built with gcc 11.2, and dkms wants to install and use gcc 12.

The ramification seems to be that dkms is no longer going to be functional on the stock Mint 21/21.1 kernels, since it requires the kernel to be made with the same version of gcc as it is using. Is this the intention? Perhaps it can be given a dependency requirement for kernels compiled with gcc 12.
User avatar
Pjotr
Level 24
Level 24
Posts: 20092
Joined: Mon Mar 07, 2011 10:18 am
Location: The Netherlands (Holland) 🇳🇱
Contact:

Re: New DKMS update must be a mistake...

Post by Pjotr »

Bottom line: simply install the updates offered to you, and live happily ever after. :wink:
Tip: 10 things to do after installing Linux Mint 21.3 Virginia
Keep your Linux Mint healthy: Avoid these 10 fatal mistakes
Twitter: twitter.com/easylinuxtips
All in all, horse sense simply makes sense.
User avatar
karlchen
Level 23
Level 23
Posts: 18212
Joined: Sat Dec 31, 2011 7:21 am
Location: Germany

Re: New DKMS update must be a mistake...

Post by karlchen »

The question, which has not been really answered in this thread so far is:
On Mint 21 and 21.1, the dkms update 2.8.7-2ubuntu2.1mint1 will pull in gcc-12 in addition to the pre-installed gcc-11.
The question is, whether on systems, still running on kernel 5.15.0-xx, built using gcc-11, dkms will continue to use gcc-11 when building kernel dkms modules.
Or will dkms use gcc-12 in all cases now, no matter whether the kernel in use has been built using gcc-11 or gcc-12?
From the changelog.Debian file:

Code: Select all

    + Use exact compiler for dkms as used to build the kernel, when  possible.
    + Depend on gcc-12 to build modules for HWE kernels correctly.
This might suggest that dkms will use either gcc-11, if the kernel has been built using gcc-11, or gcc-12, if the kernel has been built using gcc-12.
But again:
The final confirmation that this applies has not been given in this thread here, yet.

And I am not sure whether it has been given in the mentioned thread SOLVED] Nvidia driver failure on Vera because of gcc-11 on updated kernel 5.19.0-28-generic.
Image
The people of Alderaan have been bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine for 771 days now.
Lifeline
mtwebster
Level 1
Level 1
Posts: 43
Joined: Sun Jun 17, 2012 1:29 pm

Re: New DKMS update must be a mistake...

Post by mtwebster »

dkms will check the at runtime which compiler to use by parsing the kernel configuration:
https://git.launchpad.net/ubuntu/+sourc ... my-updates

The package basically depends on both gcc-11 and gcc-12 now (The 'gcc' dep is an alias for gcc-11):
https://git.launchpad.net/ubuntu/+sourc ... pdates#n24
User avatar
karlchen
Level 23
Level 23
Posts: 18212
Joined: Sat Dec 31, 2011 7:21 am
Location: Germany

Re: New DKMS update must be a mistake...

Post by karlchen »

Thank you very much, mtwebster, for explaining the logic followed by the most recent dkms package (2.8.7-2ubuntu2.1mint1). I hope your explanation has cleared any potential doubts about the dkms update 2.8.7-2ubuntu2.1mint1. :)
Karl
Image
The people of Alderaan have been bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine for 771 days now.
Lifeline
User avatar
Kudalufi
Level 2
Level 2
Posts: 67
Joined: Mon Nov 30, 2015 12:03 pm
Location: Halifax

Re: New DKMS update must be a mistake...

Post by Kudalufi »

Thank-you for the explanations. That makes it clear that it won't actually break anything. It just simply removes the justification for now making gcc 12 a dependency of dkms. Doing that adds half a gigabyte of new stuff that will be unused for the majority of people who use dkms in mint. Perhaps that isn't a big deal to anyone else, but to many of my installations it is. DKMS is required for VirtualBox guest extensions. This means the installations with the smallest size are now saddled with some of the biggest (technically unrequired) dependencies.

If dkms is able to make an intelligent run-time decision on what compiler to use based on the kernel installed, would it not be better to attach a gcc 12 dependency to the kernels that are actually built with gcc 12, rather than to dkms, which for most people, doesn't need it.

EDIT: It also occurs to me, does this not now break dkms for those people with stock gcc 11.2-built kernels who don't already have gcc 11.2 otherwise installed?
EDIT2: No, it doesn't, because gcc is also a dependency I see. Fair enough. The former still applies though.
User avatar
Kudalufi
Level 2
Level 2
Posts: 67
Joined: Mon Nov 30, 2015 12:03 pm
Location: Halifax

Re: New DKMS update must be a mistake...

Post by Kudalufi »

Who made this decision, btw? Was this a decision made by mint, or are we inheriting this from ubuntu?
User avatar
spamegg
Level 14
Level 14
Posts: 5048
Joined: Mon Oct 28, 2019 2:34 am
Contact:

Re: New DKMS update must be a mistake...

Post by spamegg »

Definitely not Mint. The Mint devs don't make any compiler-level library decisions; they are almost exclusively focused on the graphical user interface side of things (rarely they'll say "let's skip this buggy kernel version in the Update Manager" and stuff like that). This is coming from Ubuntu. But my guess is that it might be coming from even further upstream because (just guessing) they decided to compile a certain kernel version with gcc12, and with Ubuntu LTS releases it's common to have kernel versions available that are a few years apart from each other...
Locked

Return to “Software & Applications”