From 734797568b7a9f355450c3d6303589096cb8329f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Jan 29 2019 00:20:31 +0000 Subject: [PATCH 1/3] Move the WHENCE license file to subpackage and depend on it We currently ship the WHENCE file with every firmware subpackage but it's getting rather large (130Kb) to be shipping a dozen copies of it so put it in it's own subpackage and have all the firmware packages depend on it shipping it just once. --- diff --git a/linux-firmware.spec b/linux-firmware.spec index ae48825..6f4dd8b 100644 --- a/linux-firmware.spec +++ b/linux-firmware.spec @@ -18,6 +18,7 @@ Source0: %{name}-%{version}.tar.xz 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 @@ Conflicts: microcode_ctl < 2.1-0 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 @@ Summary: Firmware for Intel(R) Centrino Wireless-N 105 Series Adapters 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 @@ Summary: Firmware for Intel(R) Centrino Wireless-N 135 Series Adapters 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 @@ License: Redistributable, no modification permitted 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 @@ Summary: Firmware for Intel(R) Centrino Wireless-N 2000 Series Adapters 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 @@ Summary: Firmware for Intel(R) Centrino Wireless-N 2030 Series Adapters 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 @@ License: Redistributable, no modification permitted 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 @@ Summary: Firmware for Intel® PRO/Wireless 3945 A/B/G network adaptors 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 @@ Summary: Firmware for Intel® PRO/Wireless 4965 A/G/N network adaptors 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 @@ Summary: Firmware for Intel® PRO/Wireless 5000 A/G/N network adaptors 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 @@ Summary: Firmware for Intel® PRO/Wireless 5150 A/G/N network adaptors 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 @@ Summary: Firmware for Intel(R) Wireless WiFi Link 6000 AGN Adapter 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 @@ Summary: Firmware for Intel(R) Wireless WiFi Link 6005 Series Adapters 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 @@ Summary: Firmware for Intel(R) Wireless WiFi Link 6030 Series Adapters 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 @@ Summary: Firmware for Intel(R) Wireless WiFi Link 6050 Series Adapters 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 @@ License: Redistributable, no modification permitted 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 @@ contained inside the provided LICENSE file. Please read it carefully. 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 @@ Firmware for Marvell Libertas USB 8388 Network Adapter %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 @@ support. %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,6 +266,7 @@ Firmware for Marvell Libertas SD 8686 Network Adapter %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 @@ -289,69 +316,72 @@ 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 +391,28 @@ sed -e 's/^/%%dir /' linux-firmware.dirs >> linux-firmware.files %{_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.* %changelog * Tue Jan 22 2019 Peter Robinson 20190118-91.gita8b75cac From 0ba87e08ce230f5b1d16946af3c93178167d14fd Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Jan 29 2019 00:27:48 +0000 Subject: [PATCH 2/3] Move netronome firmware to a dedicated sub package The netronome firmware currently equates to around 100Mb which is about 25% of the current total size of the actual firmware in linux-firmware. It's also increasing in size overall quite a bit. Being a high end Smart NIC that is basically a linux instance to offload eBPF to the NIC itself it also has quite a small user base. --- diff --git a/linux-firmware.spec b/linux-firmware.spec index 6f4dd8b..0298e64 100644 --- a/linux-firmware.spec +++ b/linux-firmware.spec @@ -270,6 +270,13 @@ Requires: linux-firmware-whence %description -n libertas-sd8787-firmware Firmware for Marvell Libertas SD 8787 Network 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} @@ -310,6 +317,7 @@ sed -i -e '/^iwlwifi/d' \ -i -e '/^libertas\/sd8686/d' \ -i -e '/^libertas\/usb8388/d' \ -i -e '/^mrvl\/sd8787/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 @@ -414,6 +422,11 @@ sed -e 's/^/%%dir /' linux-firmware.dirs >> linux-firmware.files %dir %{_firmwarepath} %license LICENCE.* LICENSE.* +%files -n netronome-firmware +%license LICENCE.Netronome +%dir %{_firmwarepath}/netronome +%{_firmwarepath}/netronome/* + %changelog * Tue Jan 22 2019 Peter Robinson 20190118-91.gita8b75cac - Latest Intel 9000 series WiFi/Bluetooth firmware From ff6920ab215a39d1d5322bd415cdcae5d10545b3 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Jan 29 2019 12:06:08 +0000 Subject: [PATCH 3/3] Put Cavium LiquidIO in it's own sub package At the moment the Cavium LiquidIO drivers aren't built in the Fedora kernel and take up a reasonable amount of space. Ship them in their own sub package so if someone builds them into their own kernel the firmware is still available. --- diff --git a/linux-firmware.spec b/linux-firmware.spec index 0298e64..a35d347 100644 --- a/linux-firmware.spec +++ b/linux-firmware.spec @@ -270,6 +270,13 @@ 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 @@ -317,6 +324,7 @@ sed -i -e '/^iwlwifi/d' \ -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} @@ -422,6 +430,11 @@ sed -e 's/^/%%dir /' linux-firmware.dirs >> linux-firmware.files %dir %{_firmwarepath} %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