Closed navid-zamani closed 1 year ago
Also, the libc issues are not transient, as Mint is based on LTS versions, so in the worst case one is stuck with a bad kernel that’s missing a key thing for 1½ years (2 years Mint cycle minus 6 months Ubuntu cycle).
E.g. in my case, a wifi driver works flawlessly with 6.5, but never connects or even crashes after standby for <6.5. And previously, I could not use my PC for probably a year, as standby didn’t work with 1st gen Zen APUs. I installed a newer kernel, and a newer gcc, built my dkms modules with it, and had a usable PC. Without that newer gcc, the system would have been useless (offline) because of the wifi I used back then. … These are the things that people install Mainline for.
So it’s simply wrong that those issues are transient. Because then, all problems that Mainline tries to address are “transient” and there’s no reason to use it at all. One could “just” wait for the new major version of Mint. All 1½ years. ;)
out of scope
Currently, the project merely installs the .deb files, with no attempt at actually getting it to work and no infos about how one could do that oneself.
Sadly, this makes the program mostly useless, since the whole point of using it, is to install kernels that can’t trivially be installed. E.g. the newest kernel on Mint, which requires a newer libc. (Otherwise the PPA would be enough and Mainline provides no value or use.)
Given that these are standard procedures, that are very complicated to look up and achieve the first time or by hand, but very easy to automate once one knows, and you certainly already know, it would be great to put that in code, and make the tool useful.
Mainly: Check the deb files dependencies for things that would make apt reject installing them or make them not work, and install those newer gcc/libc/toolchain/… when required. Essentially the same process that is called “slotting” on Gentoo. Having two versions of a package installed at the same time, and having the packages that depend on them configured so they use the right version.
I’ve done it before with gcc, and it worked fine. Took me one evening to look up and do the first time. So that would be very easy to implement.
For libc it’s of course harder. But not impossible. There’s likely already guides on how to do it online. (My search skills fail me right now, but I remember something.) (Or, if one wants to go all the way, one could just look at the Gentoo
portage
code for “slotting”, and translate that over.)After all, it’s for giving purpose to the program in the first place. So if that’s not in there, then why waste work on maintaining it at all.