-# TODO
-# - subpackages for various firmwares?
%define rel 1
-%define ver 20180507
+%define ver 20231211
Summary: Firmware files used by the Linux kernel
Summary(pl.UTF-8): Pliki firmware'u używane przez jądro Linuksa
Name: linux-firmware
Release: %{rel}
License: GPL+ and GPL v2+ and MIT and Redistributable, no modification permitted
Group: Base/Kernel
-Source0: https://src.fedoraproject.org/repo/pkgs/linux-firmware/%{name}-%{version}.tar.xz/sha512/55f5732d0d38727821fe676b1fa1531a91d30ffc91a4f5de6adadd985d7771b8a4757b6230f9228cf5371067c10b6191bfa5d7a2c5c79b696c4e1888dd6b1ec2/linux-firmware-%{version}.tar.xz
-# Source0-md5: 838f105f4982e549a2f5bc911c59f334
+# in case git snapshot is needed
+#Source0: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/%{name}-%{version}.tar.gz
+# upstream tarball
+Source0: https://www.kernel.org/pub/linux/kernel/firmware/%{name}-%{version}.tar.xz
+# Source0-md5: ca7184d96d6e1fb55c0132466963ddba
URL: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/
-Obsoletes: microcode-data-amd
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+Requires: microcode-data-amd
+Requires: microcode-data-intel
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define no_install_post_strip 1
+%define _enable_debug_packages 0
+%define _noautochrpath .*/lib/firmware/.*
+
%description
This package includes firmware files required for some devices to
operate.
%description -n chelsio-firmware
Firmware for Chelsio T3/T4/T5/T6
-%package -n intel-sound-firmware
-Summary: Firmware for Intel sound cards
-License: Redistributable, no modification permitted
-Group: Base/Kernel
-
-%description -n intel-sound-firmware
-Firmware for Intel sound cards
-
%package -n intel-bluetooth-firmware
Summary: Firmware for Intel Bluetooth adapters
License: Redistributable, no modification permitted
%description -n intel-bluetooth-firmware
Firmware for Intel Bluetooth adapters
+%package -n intel-gpu-firmware
+Summary: Firmware for Intel i915 graphics chips
+License: Redistributable, no modification permitted
+Group: Base/Kernel
+
+%description -n intel-gpu-firmware
+Firmware for Intel i915 graphics chips
+
+%package -n intel-sound-firmware
+Summary: Firmware for Intel sound cards
+License: Redistributable, no modification permitted
+Group: Base/Kernel
+
+%description -n intel-sound-firmware
+Firmware for Intel sound cards
+
%package -n iwl100-firmware
Summary: Firmware for Intel(R) Wireless WiFi Link 100 Series Adapters
License: Redistributable, no modification permitted
firmware is subject to the terms and conditions contained inside the
provided LICENSE file. Please read it carefully.
+%package -n iwlax2xx-firmware
+Summary: Firmware for Intel(R) AX200/AX201/AX210/AX211
+License: Redistributable, no modification permitted
+Group: Base/Kernel
+
+%description -n iwlax2xx-firmware
+This package contains the firmware required by the Intel wireless
+drivers for Linux to support the iwlax2xx hardware. Usage of the
+firmware is subject to the terms and conditions contained inside the
+provided LICENSE file. Please read it carefully.
+
%package -n iwl3160-firmware
Summary: Firmware for Intel(R) Wireless WiFi Link 3160 Series Adapters
License: Redistributable, no modification permitted
conditions contained inside the provided LICENSE file. Please read it
carefully.
-%package -n libertas-firmware
+%package -n marvell-firmware
Summary: Firmware for Marvell wirelsess network cards
License: Redistributable, no modification permitted
Group: Base/Kernel
-%description -n libertas-firmware
+%description -n marvell-firmware
Firmware for Marvell wireless network cards
+%package -n mediatek-firmware
+Summary: Firmware for MediaTek devices
+License: Redistributable, no modification permitted
+Group: Base/Kernel
+
+%description -n mediatek-firmware
+Firmware for MediaTek devices.
+
+%package -n mellanox-firmware
+Summary: Firmware for Mellanox Spectrum switches
+License: Redistributable, no modification permitted
+Group: Base/Kernel
+
+%description -n mellanox-firmware
+Firmware for Mellanox Spectrum switches
+
+%package -n microcode-data-amd
+Summary: Microcode definitions for AMD64 processors
+License: Redistributable, no modification permitted
+Group: Base/Kernel
+
+%description -n microcode-data-amd
+Microcode definitions for AMD64 processors
+
%package -n netronome-firmware
Summary: Firmware for Netronome Smart NICs
License: Redistributable, no modification permitted
%description -n nvidia-gpu-firmware
Firmware for NVIDIA graphics chips
+%package -n qualcomm-firmware
+Summary: Firmware for Qualcomm SoCs
+License: Redistributable, no modification permitted
+Group: Base/Kernel
+
+%description -n qualcomm-firmware
+Firmware for Qualcomm SoCs
+
%package -n qlogic-firmware
Summary: Firmware for QLogic adapters
License: Redistributable, no modification permitted
%prep
%setup -qc
-mv linux-firmware-*/* .
-rmdir linux-firmware-*
+%{__mv} linux-firmware-*/* .
+%{__rm} -r linux-firmware-*
# Remove source files we don't need to install
%{__rm} */*.asm dsp56k/{Makefile,concat-bootstrap.pl} isci/{Makefile,README,*.[ch]}
-%{__rm} -r carl9170fw usbdux
-%{__rm} Makefile configure
+%{__rm} -r carl9170fw usbdux contrib
+%{__rm} Makefile configure build_packages.py copy-firmware.sh Dockerfile
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/lib/firmware
cp -a . $RPM_BUILD_ROOT/lib/firmware
-%{__rm} $RPM_BUILD_ROOT/lib/firmware/{GPL-2,GPL-3,LICENCE.*,LICENSE.*,README,TDA7706_OM_v*_boot.txt,WHENCE,check_whence.py}
+%{__rm} $RPM_BUILD_ROOT/lib/firmware/{GPL-2,GPL-3,LICENCE.*,LICENSE.*,README.md,WHENCE,check_whence.py}
+# Symlink for ice package required by firmware and kernel driver
+ln -s $(basename $RPM_BUILD_ROOT/lib/firmware/intel/ice/ddp/ice-*.pkg) $RPM_BUILD_ROOT/lib/firmware/intel/ice/ddp/ice.pkg
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc WHENCE LICENCE.* LICENSE.* README TDA7706_OM_v*_boot.txt
+%doc WHENCE LICENCE.* LICENSE.* README.md
/lib/firmware/3com
-/lib/firmware/a300_pfp.fw
-/lib/firmware/a300_pm4.fw
/lib/firmware/acenic
/lib/firmware/adaptec
/lib/firmware/advansys
+/lib/firmware/airoha
/lib/firmware/agere_*_fw.bin
-/lib/firmware/amd-ucode
+/lib/firmware/amd
+/lib/firmware/amdtee
+/lib/firmware/amlogic
+/lib/firmware/amphion
/lib/firmware/as102_data1_st.hex
/lib/firmware/as102_data2_st.hex
/lib/firmware/atmel
-/lib/firmware/atmsar11.fw
/lib/firmware/atusb
/lib/firmware/av7110
/lib/firmware/carl9170-1.fw
+/lib/firmware/cadence
+/lib/firmware/cirrus
/lib/firmware/cis
/lib/firmware/cmmb_*_12mhz.inp
+/lib/firmware/cnm
/lib/firmware/cpia2
/lib/firmware/ctefx.bin
/lib/firmware/ctspeq.bin
+/lib/firmware/cypress
/lib/firmware/dabusb
+/lib/firmware/dpaa2
/lib/firmware/dsp56k
/lib/firmware/dvb-fe-xc4000-*.fw
/lib/firmware/dvb-fe-xc5000c-*.fw
/lib/firmware/emi26
/lib/firmware/emi62
/lib/firmware/ene-ub6250
-/lib/firmware/ess/maestro3_assp_kernel.fw
-/lib/firmware/ess/maestro3_assp_minisrc.fw
+/lib/firmware/ess
/lib/firmware/f2255usb.bin
/lib/firmware/go7007
/lib/firmware/hfi1_dc8051.fw
/lib/firmware/hfi1_sbus.fw
/lib/firmware/htc_7010.fw
/lib/firmware/htc_9271.fw
-/lib/firmware/i2400m-fw-usb-*.sbcf
-/lib/firmware/i6050-fw-usb-*.sbcf
-/lib/firmware/i915
/lib/firmware/imx
+/lib/firmware/inside-secure
%dir /lib/firmware/intel
-/lib/firmware/intel/ipu3-fw.bin
+/lib/firmware/intel/ice
/lib/firmware/intel/irci_irci_ecr-master_20161208_0213_20170112_1500.bin
-/lib/firmware/intelliport2.bin
/lib/firmware/isci
/lib/firmware/isdbt_*.inp
+/lib/firmware/ixp4xx
/lib/firmware/kaweth
/lib/firmware/keyspan
/lib/firmware/keyspan_pda
+%dir /lib/firmware/korg
/lib/firmware/korg/k1212.dsp
/lib/firmware/lgs8g75.fw
+/lib/firmware/lt9611uxc_fw.bin
/lib/firmware/matrox
-/lib/firmware/mellanox
+/lib/firmware/meson
+/lib/firmware/microchip
/lib/firmware/moxa
-/lib/firmware/mt7601u.bin
-/lib/firmware/mt7650.bin
-/lib/firmware/mt7662*.bin
/lib/firmware/mts_*.fw
/lib/firmware/myri10ge_*.dat
/lib/firmware/myricom
+/lib/firmware/nxp
/lib/firmware/ositech
/lib/firmware/phanfw.bin
+/lib/firmware/powervr
+/lib/firmware/qat_4xxx.bin
+/lib/firmware/qat_4xxx_mmp.bin
/lib/firmware/qat_895xcc.bin
/lib/firmware/qat_895xcc_mmp.bin
/lib/firmware/qat_c3xxx.bin
/lib/firmware/qat_c3xxx_mmp.bin
/lib/firmware/qat_c62x.bin
/lib/firmware/qat_c62x_mmp.bin
-/lib/firmware/qat_mmp.bin
/lib/firmware/qca
-/lib/firmware/qcom
/lib/firmware/r8a779x_usb3_v1.dlmem
/lib/firmware/r8a779x_usb3_v2.dlmem
/lib/firmware/r8a779x_usb3_v3.dlmem
/lib/firmware/rt2661.bin
/lib/firmware/rt2860.bin
/lib/firmware/rt2870.bin
-/lib/firmware/rt3070.bin
/lib/firmware/rt3071.bin
-/lib/firmware/rt3090.bin
/lib/firmware/rt3290.bin
/lib/firmware/rt73.bin
/lib/firmware/RTL8192E
/lib/firmware/rtl_bt
/lib/firmware/rtl_nic
/lib/firmware/rtlwifi
-/lib/firmware/s2250*.fw
+/lib/firmware/rtw88
+/lib/firmware/rtw89
/lib/firmware/s5p-mfc.fw
/lib/firmware/s5p-mfc-v6.fw
/lib/firmware/s5p-mfc-v6-v2.fw
/lib/firmware/s5p-mfc-v7.fw
/lib/firmware/s5p-mfc-v8.fw
+/lib/firmware/s5p-mfc-v12.fw
+%dir /lib/firmware/sb16
/lib/firmware/sb16/alaw_main.csp
/lib/firmware/sb16/ima_adpcm_capture.csp
/lib/firmware/sb16/ima_adpcm_init.csp
/lib/firmware/sxg
/lib/firmware/tdmb_nova_12mhz.inp
/lib/firmware/tehuti
+/lib/firmware/ti
/lib/firmware/ti_3410.fw
/lib/firmware/ti_5052.fw
/lib/firmware/tigon
/lib/firmware/ti-keystone
/lib/firmware/tlg2300_firmware.bin
-/lib/firmware/tr_smctr.bin
/lib/firmware/ttusb-budget
/lib/firmware/ueagle-atm
/lib/firmware/usbdux*_firmware.bin
/lib/firmware/v4l-cx*.fw
/lib/firmware/vicam
/lib/firmware/vntwusb.fw
-/lib/firmware/vpu_d.bin
-/lib/firmware/vpu_p.bin
/lib/firmware/vxge
+/lib/firmware/wfx
/lib/firmware/whiteheat*.fw
/lib/firmware/wil6210.brd
/lib/firmware/wil6210.fw
/lib/firmware/wsm_22.bin
/lib/firmware/yam
+%dir /lib/firmware/yamaha
/lib/firmware/yamaha/ds1_ctrl.fw
/lib/firmware/yamaha/ds1_dsp.fw
/lib/firmware/yamaha/ds1e_ctrl.fw
%files -n atheros-firmware
%defattr(644,root,root,755)
-%doc WHENCE LICENCE.atheros_firmware
+%doc WHENCE LICENCE.atheros_firmware LICENSE.QualcommAtheros_ar3k LICENSE.QualcommAtheros_ath10k LICENCE.open-ath9k-htc-firmware
/lib/firmware/ar3k
/lib/firmware/ar5523.bin
/lib/firmware/ar7010*.fw
/lib/firmware/ar9170-*.fw
/lib/firmware/ar9271.fw
/lib/firmware/ath10k
+/lib/firmware/ath11k
/lib/firmware/ath3k-1.fw
/lib/firmware/ath6k
/lib/firmware/ath9k_htc
%defattr(644,root,root,755)
%doc WHENCE
/lib/firmware/bnx2x
-/lib/firmware/bnx2x-e1-*.fw
-/lib/firmware/bnx2x-e1h-*.fw
%files -n brcm-firmware
%defattr(644,root,root,755)
/lib/firmware/cxgb3
/lib/firmware/cxgb4
-%files -n intel-sound-firmware
-%defattr(644,root,root,755)
-%doc WHENCE
-%dir /lib/firmware/intel
-/lib/firmware/intel/IntcSST2.bin
-/lib/firmware/intel/dsp_fw_*
-/lib/firmware/intel/fw_sst_*
-
%files -n intel-bluetooth-firmware
%defattr(644,root,root,755)
%doc WHENCE LICENCE.ibt_firmware
%dir /lib/firmware/intel
/lib/firmware/intel/ibt-*
+%files -n intel-gpu-firmware
+%defattr(644,root,root,755)
+%doc WHENCE LICENSE.i915
+/lib/firmware/i915
+
+%files -n intel-sound-firmware
+%defattr(644,root,root,755)
+%doc WHENCE LICENCE.adsp_sst LICENCE.fw_sst_0f28
+%dir /lib/firmware/intel
+/lib/firmware/intel/avs
+/lib/firmware/intel/catpt
+/lib/firmware/intel/dsp_fw_*
+/lib/firmware/intel/fw_sst_*
+
%files -n iwl100-firmware
%defattr(644,root,root,755)
%doc WHENCE LICENCE.iwlwifi_firmware
%doc WHENCE LICENCE.iwlwifi_firmware
/lib/firmware/iwlwifi-2030-*.ucode
+%files -n iwlax2xx-firmware
+%defattr(644,root,root,755)
+%doc WHENCE LICENCE.iwlwifi_firmware
+/lib/firmware/iwlwifi-Qu-*.ucode
+/lib/firmware/iwlwifi-QuZ-*.ucode
+/lib/firmware/iwlwifi-cc-*.ucode
+/lib/firmware/iwlwifi-gl-*.pnvm
+/lib/firmware/iwlwifi-gl-*.ucode
+/lib/firmware/iwlwifi-ma-*.pnvm
+/lib/firmware/iwlwifi-ma-*.ucode
+/lib/firmware/iwlwifi-so-*.pnvm
+/lib/firmware/iwlwifi-so-*.ucode
+/lib/firmware/iwlwifi-ty-*.pnvm
+/lib/firmware/iwlwifi-ty-*.ucode
+
%files -n iwl3160-firmware
%defattr(644,root,root,755)
%doc WHENCE LICENCE.iwlwifi_firmware
%doc WHENCE LICENCE.iwlwifi_firmware
/lib/firmware/iwlwifi-9260-*.ucode
-%files -n libertas-firmware
+%files -n marvell-firmware
%defattr(644,root,root,755)
-%doc WHENCE LICENCE.Marvell
+%doc WHENCE LICENCE.Marvell LICENCE.OLPC
/lib/firmware/lbtf_usb.bin
/lib/firmware/libertas
/lib/firmware/mrvl
/lib/firmware/mwl8k
/lib/firmware/mwlwifi
+%files -n mediatek-firmware
+%defattr(644,root,root,755)
+%doc WHENCE LICENCE.ralink_a_mediatek_company_firmware LICENCE.mediatek
+/lib/firmware/mediatek
+
+%files -n mellanox-firmware
+%defattr(644,root,root,755)
+%doc WHENCE
+/lib/firmware/mellanox
+
+%files -n microcode-data-amd
+%defattr(644,root,root,755)
+%doc WHENCE LICENSE.amd-ucode amd-ucode/README
+/lib/firmware/amd-ucode
+
%files -n netronome-firmware
%defattr(644,root,root,755)
%doc WHENCE
%doc WHENCE LICENCE.nvidia
/lib/firmware/nvidia
+%files -n qualcomm-firmware
+%defattr(644,root,root,755)
+%doc WHENCE LICENSE.qcom
+/lib/firmware/qcom
+
%files -n qlogic-firmware
%defattr(644,root,root,755)
%doc WHENCE LICENCE.qla1280 LICENCE.qla2xxx