Bug 32582 - urpmi refuse to install older kernel, drakrpm do not even show them (only -devel-)
Summary: urpmi refuse to install older kernel, drakrpm do not even show them (only -de...
Status: NEW
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 9
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Mageia tools maintainers
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-29 14:32 CET by Morgan Leijström
Modified: 2023-11-30 16:35 CET (History)
0 users

See Also:
Source RPM: urpmi-8.131-1.mga9, rpmdrake-6.32-2.mga9
CVE:
Status comment:


Attachments

Description Morgan Leijström 2023-11-29 14:32:26 CET
__Description of problem:
urpmi refuse to install elder kernel
drakrpm do not even show it (only the -devel- packages)
This makes it unneccessarily hard for users to install elder kernels


__Version-Release numbers:

urpmi-8.131-1.mga9, rpmdrake-6.32-2.mga9, rpm-4.18.0-7.mga9


__Steps to Reproduce:

i.e when having 6.5 kernel installed:

$ LC_ALL=C sudo urpmi kernel-desktop-devel-6.4.16-3.mga9 kernel-desktop-6.4.16-3.mga9
Some requested packages cannot be installed:
kernel-desktop-6.4.16-3.mga9.x86_64 (in order to keep kernel-desktop-6.5.11-5.mga9.x86_64)
kernel-desktop-devel-6.4.16-3.mga9.x86_64 (in order to keep kernel-desktop-devel-6.5.11-5.mga9.x86_64)


So i.e when we already have 6.5 series installed and would like to install latest 6.4 in updates, download the two packages and: 

rpm -i --force ./kernel-desktop-devel-6.4.16-3.mga9.x86_64.rpm ./kernel-desktop-6.4.16-3.mga9.x86_64.rpm

(rpm need the --force option or else it refuse and complain like urpmi)

Giuseppe in https://bugs.mageia.org/show_bug.cgi?id=32565#c8 :
> From what I could see that's probably a side-effect of the newer
> multi-versioned scheme on the same RPM, probably because it founds another
> package already installed of the same name, but newer version, and works
> only forward, not backward.
Comment 1 Lewis Smith 2023-11-30 12:12:26 CET
If we understand the normal package naming rule that the pkg name goes up to the first '-' which is followed by a number [version], all 'kernel-desktop' are the same package.
Given the basic package name 'kernel-desktop', this looks legitimate:
"Some requested packages cannot be installed:
kernel-desktop-6.4.16-3.mga9.x86_64 (in order to keep kernel-desktop-6.5.11-5.mga9.x86_64)"

"rpm need the --force option"
Did you try either of the urpmi options?:
       --downgrade
           Force installing the packages even though they are already
           installed.
       --replacepkgs
           Force installing the packages even though they are already
           installed.

Would you not need also 'kernel-userspace-headers'. And where does the virtual pkg 'kernel-desktop-latest' fit in?

"download the two packages"
From and to where?

Do we take it that doing it by rpm worked, and left you with [with the older versionID]:
 kernel-desktop-6.5.11-5.mga9
 kernel-desktop-latest-6.5.11-5.mga9
 kernel-userspace-headers-6.5.11-5.mga9
and brings with it or creates in /boot:
 config-6.5.11-desktop-5.mga9
 initrd-6.5.11-desktop-5.mga9.img
 symvers-6.5.11-desktop-5.mga9.xz
 System.map-6.5.11-desktop-5.mga9
 vmlinuz-6.5.11-desktop-5.mga9
and the adjusted corresponding symlinks:
 initrd-desktop.img
 initrd.img
 vmlinuz
 vmlinuz-desktop

What 'remove-old-kernels' would make of this... better to disable it.

This does not look right:
"drakrpm do not even show [the older version] (only the -devel- packages)"
Not having the -devel kernel package, rpmdrake does not show any kernels at all, however phrased from just 'kernel' up to a full package/version name.

OTOH
 '$ urpmq -i kernel-desktop' did show previous ones as well as current:
 kernel-6.4.9-4.mga9.src.rpm
 kernel-6.4.16-3.mga9.src.rpm
 kernel-6.5.11-5.mga9.src.rpm

CC: (none) => lewyssmith

Comment 2 Morgan Leijström 2023-11-30 13:43:52 CET
(In reply to Lewis Smith from comment #1)
> If we understand the normal package naming rule that the pkg name goes up to
> the first '-' which is followed by a number [version], all 'kernel-desktop'
> are the same package.
> Given the basic package name 'kernel-desktop', this looks legitimate:
> "Some requested packages cannot be installed:
> kernel-desktop-6.4.16-3.mga9.x86_64 (in order to keep
> kernel-desktop-6.5.11-5.mga9.x86_64)"
> 
> "rpm need the --force option"
> Did you try either of the urpmi options?:
>        --downgrade
>        --replacepkgs

Did not try. I only want to *add* the elder kernel so the options sounded wrong.

It is easy to experiment, use --test option.


> Would you not need also 'kernel-userspace-headers'.

I learnt in Bug 32541 that it is not needed.


> And where does the virtual pkg 'kernel-desktop-latest' fit in?

Not needed with the new naming scheme.  The tools finds the update because of higher version, like any other package update.
In the old scheme i think it should be its latest version to get next update of itself and kernel.


> "download the two packages" 

i.e kernel-desktop  And kernel-desktop-devel only if you need it for dkms to buid nvidia, virtualbox, ... kmods.

> From and to where?

From your favourite mirror to any folder, where you issue that rpm command.


> 
> Do we take it that doing it by rpm worked, and left you with [with the older
> versionID]:

I skip checking, sorry.  It seem to work cleanly. 
Also kmods for nvidia and virtualbox got built and works after running
# rpm -i --force kernel-something  kernel-sometning-devel

 
> What 'remove-old-kernels' would make of this... better to disable it.

It seem to work here. I run it now and then to display what is installed (and also see what it would intend to uninstall and it get it right), but I use urpme just to be uninstall...


 
> This does not look right:
> "drakrpm do not even show [the older version] (only the -devel- packages)"
> Not having the -devel kernel package, rpmdrake does not show any kernels at
> all, however phrased from just 'kernel' up to a full package/version name.

Yes it is confuses users.
Comment 3 Lewis Smith 2023-11-30 16:35:34 CET
(In reply to Morgan Leijström from comment #2)
> > "rpm need the --force option"
> > Did you try either of the urpmi options?:
> >        --downgrade
> >        --replacepkgs
> Did not try. I only want to *add* the elder kernel so the options sounded
> wrong.
I see the essential, I think: it is having multiple versions of the same package. However, that seems OK with normal use for kernels at least.

For 'rpm':
--force       Same as using --replacepkgs, --replacefiles, and --oldpackage
--oldpackage    Allow an upgrade to replace a newer package with an older one
--replacefiles  Install  the packages even if they replace files from other, already installed, packages.
--replacepkgs  Install the packages even if some of them are already installed on this system.

> It is easy to experiment, use --test option.
I declined to suggest that - to you!

Assigning to the tools people.

CC: lewyssmith => (none)
Assignee: bugsquad => mageiatools
Summary: urpmi refuse to install elder kernel, drakrpm do not even show it (only -devel-) => urpmi refuse to install older kernel, drakrpm do not even show them (only -devel-)


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