#6 Split up some firmware and split out some bits
Merged 5 years ago by jwboyer. Opened 5 years ago by pbrobinson.
rpms/ pbrobinson/linux-firmware slimming  into  master

file modified
+77 -21
@@ -18,6 +18,7 @@ 

  Patch1:		0001-brcm-Raspberry-Pi-3A-WiFi-NVRAM-support.patch

  Patch2:		0002-brcm-Raspberry-Pi-Update-ccode-to-X2.patch

  

+ Requires:	linux-firmware-whence

  Provides:	kernel-firmware = %{version} xorg-x11-drv-ati-firmware = 7.0

  Obsoletes:	kernel-firmware < %{version} xorg-x11-drv-ati-firmware < 6.13.0-0.22

  Obsoletes:	ueagle-atm4-firmware < 1.0-5
@@ -36,11 +37,18 @@ 

  This package includes firmware files required for some devices to

  operate.

  

+ %package whence

+ Summary:	WHENCE License file

+ License:	GPL+ and GPLv2+ and MIT and Redistributable, no modification permitted

+ %description whence

+ This package contains the WHENCE license file which documents the vendor license details.

+ 

  %package -n iwl100-firmware

  Summary:	Firmware for Intel(R) Wireless WiFi Link 100 Series Adapters

  License:	Redistributable, no modification permitted

  Version:	39.31.5.1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl100-firmware < 39.31.5.1-4

  %description -n iwl100-firmware

  This package contains the firmware required by the Intel wireless drivers
@@ -53,6 +61,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	18.168.6.1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  %description -n iwl105-firmware

  This package contains the firmware required by the Intel wireless drivers

  for Linux to support the iwl105 hardware.  Usage of the firmware
@@ -64,6 +73,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	18.168.6.1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  %description -n iwl135-firmware

  This package contains the firmware required by the Intel wireless drivers

  for Linux to support the iwl135 hardware.  Usage of the firmware
@@ -76,6 +86,7 @@ 

  Version:	39.31.5.1

  Epoch:		1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl1000-firmware < 1:39.31.5.1-3

  %description -n iwl1000-firmware

  This package contains the firmware required by the Intel wireless drivers
@@ -88,6 +99,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	18.168.6.1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  %description -n iwl2000-firmware

  This package contains the firmware required by the Intel wireless drivers

  for Linux to support the iwl2000 hardware.  Usage of the firmware
@@ -99,6 +111,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	18.168.6.1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  %description -n iwl2030-firmware

  This package contains the firmware required by the Intel wireless drivers

  for Linux to support the iwl2030 hardware.  Usage of the firmware
@@ -111,6 +124,7 @@ 

  Epoch:		1

  Version:	25.30.13.0

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  %description -n iwl3160-firmware

  This package contains the firmware required by the Intel wireless drivers

  for Linux.  Usage of the firmware is subject to the terms and conditions
@@ -121,6 +135,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	15.32.2.9

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl3945-firmware < 15.32.2.9-7

  %description -n iwl3945-firmware

  This package contains the firmware required by the iwl3945 driver
@@ -132,6 +147,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	228.61.2.24

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl4965-firmware < 228.61.2.24-5

  %description -n iwl4965-firmware

  This package contains the firmware required by the iwl4965 driver
@@ -143,6 +159,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	8.83.5.1_1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl5000-firmware < 8.83.5.1_1-3

  %description -n iwl5000-firmware

  This package contains the firmware required by the iwl5000 driver
@@ -154,6 +171,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	8.24.2.2

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl5150-firmware < 8.24.2.2-4

  %description -n iwl5150-firmware

  This package contains the firmware required by the iwl5150 driver
@@ -165,6 +183,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	9.221.4.1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl6000-firmware < 9.221.4.1-4

  %description -n iwl6000-firmware

  This package contains the firmware required by the Intel wireless drivers
@@ -176,6 +195,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	18.168.6.1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl6000g2a-firmware < 17.168.5.3-3

  %description -n iwl6000g2a-firmware

  This package contains the firmware required by the Intel wireless drivers
@@ -187,6 +207,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	18.168.6.1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl6000g2b-firmware < 17.168.5.2-3

  %description -n iwl6000g2b-firmware

  This package contains the firmware required by the Intel wireless drivers
@@ -198,6 +219,7 @@ 

  License:	Redistributable, no modification permitted

  Version:	41.28.5.1

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  Obsoletes:	iwl6050-firmware < 41.28.5.1-5

  %description -n iwl6050-firmware

  This package contains the firmware required by the Intel wireless drivers
@@ -210,6 +232,7 @@ 

  Epoch:		1

  Version:	25.30.13.0

  Release:	%{firmware_release}%{?dist}

+ Requires:	linux-firmware-whence

  %description -n iwl7260-firmware

  This package contains the firmware required by the Intel wireless drivers

  for Linux.  Usage of the firmware is subject to the terms and conditions
@@ -219,6 +242,7 @@ 

  Summary:	Firmware for Marvell Libertas USB 8388 Network Adapter

  License:	Redistributable, no modification permitted

  Epoch:		2 

+ Requires:	linux-firmware-whence

  Obsoletes:	libertas-usb8388-firmware < 2:5.110.22.p23-8

  %description -n libertas-usb8388-firmware

  Firmware for Marvell Libertas USB 8388 Network Adapter
@@ -226,6 +250,7 @@ 

  %package -n libertas-usb8388-olpc-firmware

  Summary:	OLPC firmware for Marvell Libertas USB 8388 Network Adapter

  License:	Redistributable, no modification permitted

+ Requires:	linux-firmware-whence

  %description -n libertas-usb8388-olpc-firmware

  Firmware for Marvell Libertas USB 8388 Network Adapter with OLPC mesh network

  support.
@@ -233,6 +258,7 @@ 

  %package -n libertas-sd8686-firmware

  Summary:	Firmware for Marvell Libertas SD 8686 Network Adapter

  License:	Redistributable, no modification permitted

+ Requires:	linux-firmware-whence

  Obsoletes:	libertas-sd8686-firmware < 9.70.20.p0-4

  %description -n libertas-sd8686-firmware

  Firmware for Marvell Libertas SD 8686 Network Adapter
@@ -240,9 +266,24 @@ 

  %package -n libertas-sd8787-firmware

  Summary:	Firmware for Marvell Libertas SD 8787 Network Adapter

  License:	Redistributable, no modification permitted

+ Requires:	linux-firmware-whence

  %description -n libertas-sd8787-firmware

  Firmware for Marvell Libertas SD 8787 Network Adapter

  

+ %package -n liquidio-firmware

+ Summary:	Firmware for Cavium LiquidIO Intelligent Server Adapter

+ License:	Redistributable, no modification permitted

+ Requires:	linux-firmware-whence

+ %description -n liquidio-firmware

+ Firmware for Cavium LiquidIO Intelligent Server Adapter

+ 

+ %package -n netronome-firmware

+ Summary:	Firmware for Netronome Smart NICs

+ License:	Redistributable, no modification permitted

+ Requires:	linux-firmware-whence

+ %description -n netronome-firmware

+ Firmware for Netronome Smart NICs

+ 

  %prep

  %autosetup -p1 -n linux-firmware-%{checkout}

  
@@ -283,75 +324,80 @@ 

  	-i -e '/^libertas\/sd8686/d' \

  	-i -e '/^libertas\/usb8388/d' \

  	-i -e '/^mrvl\/sd8787/d' \

+ 	-i -e '/^liquidio/d' \

+ 	-i -e '/^netronome/d' \

  	linux-firmware.files

  sed -i -e 's!^!/usr/lib/firmware/!' linux-firmware.{files,dirs}

  sed -i -e 's/^/"/;s/$/"/' linux-firmware.files

  sed -e 's/^/%%dir /' linux-firmware.dirs >> linux-firmware.files

  

  

+ %files whence

+ %license WHENCE

+ 

  %files -n iwl100-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-100-5.ucode

  

  %files -n iwl105-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-105-*.ucode

  

  %files -n iwl135-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-135-*.ucode

  

  %files -n iwl1000-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-1000-*.ucode

  

  %files -n iwl2000-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-2000-*.ucode

  

  %files -n iwl2030-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-2030-*.ucode

  

  %files -n iwl3160-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-3160-*.ucode

  %{_firmwarepath}/iwlwifi-3168-*.ucode

  

  %files -n iwl3945-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-3945-*.ucode

  

  %files -n iwl4965-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-4965-*.ucode

  

  %files -n iwl5000-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-5000-*.ucode

  

  %files -n iwl5150-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-5150-*.ucode

  

  %files -n iwl6000-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-6000-*.ucode

  

  %files -n iwl6000g2a-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-6000g2a-*.ucode

  

  %files -n iwl6000g2b-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-6000g2b-*.ucode

  

  %files -n iwl6050-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-6050-*.ucode

  

  %files -n iwl7260-firmware

- %license WHENCE LICENCE.iwlwifi_firmware

+ %license LICENCE.iwlwifi_firmware

  %{_firmwarepath}/iwlwifi-7260-*.ucode

  %{_firmwarepath}/iwlwifi-7265-*.ucode

  %{_firmwarepath}/iwlwifi-7265D-*.ucode
@@ -361,28 +407,38 @@ 

  %{_firmwarepath}/iwlwifi-9260-*.ucode

  

  %files -n libertas-usb8388-firmware

- %license WHENCE LICENCE.Marvell

+ %license LICENCE.Marvell

  %dir %{_firmwarepath}/libertas

  %{_firmwarepath}/libertas/usb8388_v9.bin

  

  %files -n libertas-usb8388-olpc-firmware

- %license WHENCE LICENCE.Marvell

+ %license LICENCE.Marvell

  %dir %{_firmwarepath}/libertas

  %{_firmwarepath}/libertas/usb8388_olpc.bin

  

  %files -n libertas-sd8686-firmware

- %license WHENCE LICENCE.Marvell

+ %license LICENCE.Marvell

  %dir %{_firmwarepath}/libertas

  %{_firmwarepath}/libertas/sd8686*

  

  %files -n libertas-sd8787-firmware

- %license WHENCE LICENCE.Marvell

+ %license LICENCE.Marvell

  %dir %{_firmwarepath}/mrvl

  %{_firmwarepath}/mrvl/sd8787*

  

  %files -f linux-firmware.files

  %dir %{_firmwarepath}

- %license WHENCE LICENCE.* LICENSE.*

+ %license LICENCE.* LICENSE.*

+ 

+ %files -n liquidio-firmware

+ %license LICENCE.cavium_liquidio

+ %dir %{_firmwarepath}/liquidio

+ %{_firmwarepath}/liquidio/*

+ 

+ %files -n netronome-firmware

+ %license LICENCE.Netronome

+ %dir %{_firmwarepath}/netronome

+ %{_firmwarepath}/netronome/*

  

  %changelog

  * Tue Jan 22 2019 Peter Robinson <pbrobinson@fedoraproject.org> 20190118-91.gita8b75cac

The linux-firmware has increased in size quite a bit of late to the point now it takes up over a quarter of the utilised space in a minimal install. In investigating this expansion there's one firmware that sticks out, taking up ~25% of the total of upstream linux-firmware (excluding git metadata) which is netronome, a high end 10Gb+ offload ethernet NIC, the second largest, also an offload NIC, we don't currently even enable in the Fedora kernel. Split these out to their own firmware so that they're still available but not installed by default as they're likely not used by the majority of Fedora use cases.

Once merged I'll add the firmware to comps to ensure they're discoverable.

Nice! Thanks for the PR.

Pull-Request has been merged by jwboyer

5 years ago