# # spec file for package kernel-firmware # # Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %global flavor @BUILD_FLAVOR@%{nil} %if 0%{?suse_version} < 1550 %define _firmwaredir /lib/firmware %endif %define __ksyms_path ^%{_firmwaredir} %define version_unconverted @@VERSION@@ # Force bzip2 instead of lzma compression (bsc#1176981) %define _binary_payload w9.bzdio Name: kernel-firmware Version: @@VERSION@@ Release: 0 Summary: Linux kernel firmware files License: GPL-2.0-only AND SUSE-Firmware AND GPL-2.0-or-later AND MIT Group: System/Kernel URL: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/ # Created via OSC service Source0: kernel-firmware-%{version}.tar.xz Source1: extrawhence Source2: ast_dp501_fw.bin Source8: ql2600_fw.bin Source9: ql2700_fw.bin Source10: ql8300_fw.bin Source99: kernel-firmware-rpmlintrc # for compatibility with SLE15-SP4 kernel (bsc#1209681) Source200: iwlwifi-cc-a0-71.ucode Source201: iwlwifi-Qu-b0-hr-b0-71.ucode Source202: iwlwifi-Qu-b0-jf-b0-71.ucode Source203: iwlwifi-Qu-c0-hr-b0-71.ucode Source204: iwlwifi-Qu-c0-jf-b0-71.ucode Source205: iwlwifi-QuZ-a0-hr-b0-71.ucode Source206: iwlwifi-QuZ-a0-jf-b0-71.ucode Source207: iwlwifi-so-a0-gf4-a0-71.ucode Source208: iwlwifi-so-a0-gf-a0-71.ucode Source209: iwlwifi-so-a0-hr-b0-71.ucode Source210: iwlwifi-so-a0-jf-b0-71.ucode Source211: iwlwifi-ty-a0-gf-a0-71.ucode # install / build infrastructure Source1001: make-files.sh Source1002: list-license.sh Source1003: get_supplements.sh Source1004: topics.list Source1005: licenses.list Source1006: aliases.list Source1007: topicdefs Source1008: topicprovs Source1009: kernel-firmware.spec.in Source1010: makespec.sh Source1011: fwtopics.py Source1012: check-topic.py Source1013: update-aliases.py Source1014: README.build # workarounds Source1100: qcom-post Source1101: uncompressed-post # workarounds Patch1: copy-file-ignore-README.patch # for compatibility with SLE15-SP4 kernel (bsc#1209681) Patch200: iwlwifi-WHENCE-fix.patch BuildRequires: suse-module-tools Requires(post): %{_bindir}/mkdir Requires(post): %{_bindir}/touch Requires(postun):%{_bindir}/mkdir Requires(postun):%{_bindir}/touch Provides: compat-wireless-firmware = 4.4 Obsoletes: compat-wireless-firmware < 4.4 BuildArch: noarch @@ALLPROVS@@ %if 0%{?suse_version} >= 1550 # make sure we have post-usrmerge filesystem package on TW Conflicts: filesystem < 84 %endif %if "%{flavor}" == "uncompressed" Provides: kernel-firmware-uncompressed = %{version} %endif %description This package contains the raw uncompressed firmware files for Linux kernel drivers. This package is provided only for compatibility with older kernels that do not support the compressed format. %package -n ucode-amd Summary: Microcode updates for AMD CPUs Group: System/Kernel Requires(post): %{_bindir}/mkdir Requires(post): %{_bindir}/touch Requires(postun):%{_bindir}/mkdir Requires(postun):%{_bindir}/touch # new style (after 3.12 kernel somewhen) Supplements: modalias(cpu:type%%3Ax86*ven0002*) # old style (before 3.16 kernel) Supplements: modalias(x86cpu:vendor%%3A0002%%3Afamily%%3A*%%3Amodel%%3A*%%3Afeature%%3A*) %description -n ucode-amd This package contains the microcode files used by AMD CPUs. %package all Summary: Compatibility metapackage for kernel firmware files Group: System/Kernel Requires(post): %{_bindir}/mkdir Requires(post): %{_bindir}/touch Requires(post): dracut >= 049 Requires(postun):%{_bindir}/mkdir Requires(postun):%{_bindir}/touch Conflicts: kernel < 5.3 Provides: kernel-firmware = %{version} Obsoletes: kernel-firmware <= %{version} Provides: compat-wireless-firmware = 4.4 Obsoletes: compat-wireless-firmware < 4.4 @@SUBPKGLIST@@ %if 0%{?suse_version} >= 1550 # make sure we have post-usrmerge filesystem package on TW Conflicts: filesystem < 84 %endif %description all This package is a catch-all compatibility metapackage for providing all files that have been provided by kernel-firmware package. @@SUBPACKAGES@@ %prep %setup -q -n kernel-firmware-%{version} %patch -P 1 -p1 # additional firmwares cat %{SOURCE1} >> WHENCE cp %{SOURCE2} %{SOURCE8} %{SOURCE9} %{SOURCE10} . %if 0%{?suse_version} < 1599 # revive old iwlwifi firmware for compatibility (bsc#1209681) %patch -P 200 -p1 cp %{SOURCE200} . cp %{SOURCE201} . cp %{SOURCE202} . cp %{SOURCE203} . cp %{SOURCE204} . cp %{SOURCE205} . cp %{SOURCE206} . cp %{SOURCE207} . cp %{SOURCE208} . cp %{SOURCE209} . cp %{SOURCE210} . cp %{SOURCE211} . %endif %build # nothing to do %install mkdir -p %{buildroot}%{_firmwaredir} %if "%{flavor}" == "uncompressed" sh ./copy-firmware.sh %{buildroot}%{_firmwaredir} %else sh ./copy-firmware.sh -v --xz %{buildroot}%{_firmwaredir} sh %{_sourcedir}/make-files.sh -v %{_sourcedir}/topics.list %{buildroot} %{_firmwaredir} < WHENCE sh %{_sourcedir}/list-license.sh < %{_sourcedir}/licenses.list %endif %if "%{flavor}" == "uncompressed" @@POST@@ %else @@POST@@ all @@POST@@ -n ucode-amd @@SUBPKGPOSTS@@ %endif %if "%{flavor}" == "uncompressed" %files %doc WHENCE README.md %license GPL-2 GPL-3 LICEN[CS]E.* %{_firmwaredir} %exclude %{_firmwaredir}/amd-ucode %exclude %{_firmwaredir}/amd-ucode/* %else %files all %doc WHENCE README.md %files -n ucode-amd %doc amd-ucode/README %license LICENSE.amd-ucode %dir %{_firmwaredir} %{_firmwaredir}/amd-ucode @@SUBPKGFILES@@ %endif %changelog