Bug 1214789 - Drop the raw / uncompressed kernel-firmware package
Summary: Drop the raw / uncompressed kernel-firmware package
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Basesystem (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Takashi Iwai
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-08-30 13:50 UTC by Takashi Iwai
Modified: 2024-06-18 16:30 UTC (History)
4 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Takashi Iwai 2023-08-30 13:50:35 UTC
Currently, kernel-firmware repo provides two different ways of packaging: one is the kernel-firmware.rpm that contains all firmware files in raw and uncompressed format, and another is the split of several subpackages with compressed files which are gathered by kernel-firmwre-all.rpm meta package.

The former, kernel-firmware.rpm is still provided only for the legacy use cases (the old SLE), and kernel-firmware-all.rpm already has "Provides: kernel-firmware" as the better (much smaller) replacement.

Now, we'd like to drop the old big kernel-firmware.rpm finally.  But this needs fixing the dependencies in some package or images.

As far as I see, the only package that has an explicit use of the uncompressed files is installation-images.  This needs the changes to adapt kernel-firmwre-all and handling of compressed files.

Also, KIWI images may have requires of kernel-firmware, and that might be a bigger problem.
Comment 1 Takashi Iwai 2023-10-12 10:05:22 UTC
FWIW, there have been a few changes about kernel-firmware package:

- The multibuild target is swapped; the raw all-in-one package is built with "uncompressed" flavor while the compressed split packages are built as the base one

- The kernel-firmware provides kernel-firmware-uncompressed as alias

- kernel-firmware-* subpackages have Conflicts against kernel-firmware-uncompressed;
  it's because they must not coexist, otherwise the kernel may choose the undesired one (basically uncompressed file is chosen at first).

- The installation is done with the upstream script, as it supports the compression support

- The upstream added "RawFile" attribute in WHENCE, and this made some files installed as uncompressed even in compression mode. (e.g. for small files or amd-ucode)

The last change seemed to cause a problem, though.  It made kernel-firmware and kernel-firmware-* packages conflicting with its content (both provides the same files).

As a workaround, Dominique suggested that kernel-firmware should also have Provides of kernel-firmware-*.  Then, if kernel-firmware is used, the dependency for kernel-firmware-* can be solved.  OTOH, kernel-firmware-all is installed, it replaces everything.
Comment 4 Eugenio Paolantonio 2024-01-12 17:32:22 UTC
After bsc#1218307, the Provides: has been removed, including the one for kernel-firmware-brcm

installation-images now fails to resolve both in 15-SP6 and Factory:


conflict for providers of kernel-firmware-brcm needed by bcm43xx-firmware, (provider kernel-firmware-brcm conflicts with kernel-firmware)



I assume that to avoid catching the same bug again the solution would be to make installation-images depend on kernel-firmware-all instead, right? @Steffen: can this be done for both SP6 and Factory?

Thanks in advance
Comment 5 Takashi Iwai 2024-01-12 18:35:19 UTC
Yes, it's a better option!
Comment 6 Steffen Winterfeldt 2024-01-15 10:27:16 UTC
installation-images has historically these (kernel) firmware dependencies:

BuildRequires:  adaptec-firmware
BuildRequires:  bcm43xx-firmware
BuildRequires:  kernel-firmware
BuildRequires:  atmel-firmware
BuildRequires:  ipw-firmware

Can this be reduced to simply kernel-firmware resp. (after the
transition) kernel-firmware-all?
Comment 7 Takashi Iwai 2024-01-15 11:24:29 UTC
(In reply to Steffen Winterfeldt from comment #6)
> installation-images has historically these (kernel) firmware dependencies:
> 
> BuildRequires:  adaptec-firmware
> BuildRequires:  bcm43xx-firmware
> BuildRequires:  kernel-firmware
> BuildRequires:  atmel-firmware
> BuildRequires:  ipw-firmware
> 
> Can this be reduced to simply kernel-firmware resp. (after the
> transition) kernel-firmware-all?

AFAIK, all those (except for kernel-firmware) seem to be the non-upstreamed stuff, so they are still needed.
Comment 8 Steffen Winterfeldt 2024-01-15 11:28:24 UTC
If I still have to include bcm43xx-firmware then I don't see how to avoid
the conflict mentioned in comment 4.
Comment 9 Eugenio Paolantonio 2024-01-15 11:32:06 UTC
If I understood correctly, bcm43xx-firmware explicitly depends on kernel-firmware-brcm (which is in turn pulled in by kernel-firmware-all as well) so the dependency should be satisfied that way by changing kernel-firmware with kernel-firmware-all.
Comment 10 Takashi Iwai 2024-01-15 11:40:04 UTC
Right.

bcm43xx-firmware explicitly requires kernel-firmware-brcm, as it contains a symlink to the firmware file included in kernel-firmware-brcm.  Hence it'll be broken if kernel-firmware package is used instead.
Comment 11 Steffen Winterfeldt 2024-01-15 11:42:00 UTC
Ok, I'll move to kernel-firmware-all, then.
Comment 12 Steffen Winterfeldt 2024-01-18 17:23:35 UTC
For Tumbleweed:

- https://github.com/openSUSE/installation-images/pull/687

Insterestingly, compressed initrd size is down 2.6% - with exactly
the same number of firmware blobs included (1834).
Comment 13 Takashi Iwai 2024-01-19 09:28:42 UTC
Could you fix for SLE15-SP6 and ALP, too?  They take the same kernel-firmware changes, too.
Comment 14 Steffen Winterfeldt 2024-01-19 10:39:00 UTC
Yes, I'm working on it.
Comment 15 Steffen Winterfeldt 2024-01-19 13:38:06 UTC
SLE15-SP6:

https://github.com/openSUSE/installation-images/pull/688
Comment 19 Maintenance Automation 2024-06-18 16:30:09 UTC
SUSE-RU-2024:2071-1: An update that has six fixes can now be installed.

Category: recommended (moderate)
Bug References: 1213185, 1213606, 1214789, 1218706, 1221603, 1226047
Maintenance Incident: [SUSE:Maintenance:34213](https://smelt.suse.de/incident/34213/)
Sources used:
openSUSE Leap 15.6 (src):
 mksusecd-2.18-150600.3.3.1
Development Tools Module 15-SP6 (src):
 mksusecd-2.18-150600.3.3.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 20 Maintenance Automation 2024-06-18 16:30:12 UTC
SUSE-RU-2024:2070-1: An update that has six fixes can now be installed.

Category: recommended (moderate)
Bug References: 1213185, 1213606, 1214789, 1218706, 1221603, 1226047
Maintenance Incident: [SUSE:Maintenance:34214](https://smelt.suse.de/incident/34214/)
Sources used:
openSUSE Leap 15.5 (src):
 mksusecd-2.18-150500.3.3.1
Development Tools Module 15-SP5 (src):
 mksusecd-2.18-150500.3.3.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 21 Maintenance Automation 2024-06-18 16:30:14 UTC
SUSE-RU-2024:2069-1: An update that has six fixes can now be installed.

Category: recommended (moderate)
Bug References: 1213185, 1213606, 1214789, 1218706, 1221603, 1226047
Maintenance Incident: [SUSE:Maintenance:34215](https://smelt.suse.de/incident/34215/)
Sources used:
openSUSE Leap 15.4 (src):
 mksusecd-2.18-150400.3.18.2
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (src):
 mksusecd-2.18-150400.3.18.2
SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (src):
 mksusecd-2.18-150400.3.18.2
SUSE Linux Enterprise Desktop 15 SP4 LTSS 15-SP4 (src):
 mksusecd-2.18-150400.3.18.2
SUSE Linux Enterprise Server 15 SP4 LTSS 15-SP4 (src):
 mksusecd-2.18-150400.3.18.2
SUSE Linux Enterprise Server for SAP Applications 15 SP4 (src):
 mksusecd-2.18-150400.3.18.2

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.