1
0
kernel-firmware/kernel-firmware.spec.in
Takashi Iwai 6d5f1a9f23 Accepting request 723804 from home:tiwai:fw-compress3
- Move documents and license texts into the proper section
- Remove spurious non-firmware files
- Restructure the packaging for reducing the storage footprint
  (bsc#1143959):
  the firmware files are split into several subpackages, so that user
  doesn't need to install unnecessary files.  Each package has
  supplements entries that are generated from the static list (that
  was created from the current and old TW kernel binaries).
  There is a catch-all package, kernel-firmware-all, and this
  provides/obsoletes the former kernel-firmware package.  And each
  firmware file is compressed in XZ format for the new kernel (5.3 or
  later).
  For the systems with older kernels, we still provide the old'n'good
  kernel-firmware.rpm, containing everything in the raw format, too.
  This kernel-firmware.rpm will be obsoleted once when
  kernel-firmware-all above is installed.
  The build of both flavors are done in the multibuild.  Without the
  flavor, the raw kernel-firmware.rpm and ucode-amd.rpm are built,
  while the new kernel firmware packages are built in "compressed"
  flavor (-M compressed).

OBS-URL: https://build.opensuse.org/request/show/723804
OBS-URL: https://build.opensuse.org/package/show/Kernel:HEAD/kernel-firmware?expand=0&rev=266
2019-08-15 17:52:36 +00:00

167 lines
5.0 KiB
RPMSpec

#
# spec file for package kernel-firmware
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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}
%define __ksyms_path ^/lib/firmware
%define version_unconverted @@VERSION@@
Name: kernel-firmware
Version: @@VERSION@@
Release: 0
Summary: Linux kernel firmware files
License: SUSE-Firmware AND GPL-2.0-only 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 with umask 022; cd /_tmp
# After git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
# cd linux-firmware
# git archive --format=tar --prefix=kernel-firmware-$version/ -v master ./ | xz -9 -M 4G --check=crc32 -T 4 > /tmp/kernel-firmware-$version.tar.xz
#
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: %{name}-rpmlintrc
# temporary revert for the broken iwlwifi firmware (bsc#1142128)
Source100: iwlwifi-9000-pu-b0-jf-b0-46.ucode
Source101: iwlwifi-9260-th-b0-jf-b0-46.ucode
Source102: iwlwifi-sha1sum
Patch100: WHENCE-iwlwifi-9xxx-46-revert.patch
# another fix from upstream
Patch101: 0001-nvidia-add-missing-entries-in-WHENCE.patch
# install / build infrastructure
Source1000: copy-firmware.sh
Source1001: install-split.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
BuildRequires: fdupes
BuildRequires: suse-module-tools
Requires(post): coreutils
Requires(postun): coreutils
BuildArch: noarch
@@ALLPROVS@@
Provides: compat-wireless-firmware = 4.4
Obsoletes: compat-wireless-firmware < 4.4
%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): coreutils
Requires(postun): coreutils
# 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): coreutils
Requires(postun): coreutils
Provides: kernel-firmware = %{version}
Obsoletes: kernel-firmware <= %{version}
Conflicts: kernel < 5.3
Provides: compat-wireless-firmware = 4.4
Obsoletes: compat-wireless-firmware < 4.4
@@SUBPKGLIST@@
%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
# fixup for iwlwifi
%patch100 -p1
sha1sum --quiet -c %{SOURCE102} || exit 1
cp %{SOURCE100} .
cp %{SOURCE101} .
# another fix from usptream
%patch101 -p1
# additional firmwares
cat %{SOURCE1} >> WHENCE
cp %{SOURCE2} %{SOURCE8} %{SOURCE9} %{SOURCE10} .
%build
# nothing to do
%install
mkdir -p %{buildroot}/lib/firmware
%if "%flavor" != "compressed"
sh %{_sourcedir}/copy-firmware.sh %{buildroot}/lib/firmware
%else
sh %{_sourcedir}/install-split.sh %{_sourcedir}/topics.list %{buildroot} < WHENCE
sh %{_sourcedir}/list-license.sh < %{_sourcedir}/licenses.list
%endif
%fdupes %{buildroot}
%if "%flavor" != "compressed"
@@POST@@
@@POST@@ -n ucode-amd
%else
@@POST@@ all
@@SUBPKGPOSTS@@
%endif
%if "%flavor" != "compressed"
%files
%doc WHENCE README
%license GPL-2 GPL-3 LICEN[CS]E.*
/lib/firmware
%exclude /lib/firmware/amd-ucode
%exclude /lib/firmware/amd-ucode/*
%files -n ucode-amd
%license LICENSE.amd-ucode
%dir /lib/firmware
/lib/firmware/amd-ucode
%endif
%if "%flavor" == "compressed"
%files all
%doc WHENCE README
@@SUBPKGFILES@@
%endif
%changelog