Been playing with how I'd make the kernel package deal with the new 'make firmware_install' stuff. Currently looks something like this.
I suspect that (for now) we should make the kernel binary packages depend on kernel-firmware?
Should the package own the /lib/firmware/ directory?
Ideally we'll want kernel-firmware to be a .noarch.rpm, but we can't get that until we start to build it from a separate srpm.
Other comments?
(the patch is from git.infradead.org/users/dwmw2/firmware-2.6.git)
Index: config-generic =================================================================== RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v retrieving revision 1.109 diff -u -p -r1.109 config-generic --- config-generic 4 Jun 2008 00:22:50 -0000 1.109 +++ config-generic 9 Jun 2008 09:59:12 -0000 @@ -2479,9 +2479,9 @@ CONFIG_SND_ICE1724=m CONFIG_SND_INTEL8X0=m CONFIG_SND_INTEL8X0M=m CONFIG_SND_KORG1212=m -CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y +# CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL is not set CONFIG_SND_MAESTRO3=m -CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y +# CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL is not set CONFIG_SND_MIRO=m CONFIG_SND_MIXART=m CONFIG_SND_NM256=m @@ -2502,7 +2502,7 @@ CONFIG_SND_VIA82XX_MODEM=m CONFIG_SND_VIRTUOSO=m CONFIG_SND_VX222=m CONFIG_SND_YMFPCI=m -CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y +# CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL is not set
# # ALSA USB devices @@ -3536,3 +3536,14 @@ CONFIG_SOC_CAMERA_MT9M001=m CONFIG_SOC_CAMERA_MT9V022=m # MT9V022_PCA9536_SWITCH is not set
+CONFIG_BUILTIN_FIRMWARE="" +# CONFIG_USB_KAWETH_FIRMWARE is not set +# CONFIG_DVB_TTUSB_BUDGET_FIRMWARE is not set +# CONFIG_USB_SERIAL_WHITEHEAT_FIRMWARE is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA_FIRMWARE is not set +# CONFIG_USB_SERIAL_TI_3410_FIRMWARE is not set +# CONFIG_USB_SERIAL_TI_5052_FIRMWARE is not set +# CONFIG_USB_SERIAL_XIRCOM_FIRMWARE is not set +# CONFIG_USB_EMI62_FIRMWARE is not set +# CONFIG_USB_EMI26_FIRMWARE is not set + Index: kernel.spec =================================================================== RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v retrieving revision 1.679 diff -u -p -r1.679 kernel.spec --- kernel.spec 7 Jun 2008 01:48:53 -0000 1.679 +++ kernel.spec 9 Jun 2008 09:59:13 -0000 @@ -76,6 +76,8 @@ Summary: The Linux kernel (the core of t %define with_doc %{?_without_doc: 0} %{?!_without_doc: 1} # kernel-headers %define with_headers %{?_without_headers: 0} %{?!_without_headers: 1} +# kernel-firmware +%define with_firmware %{?_without_firmware: 0} %{?!_without_firmware: 1} # kernel-debuginfo %define with_debuginfo %{?_without_debuginfo: 0} %{!?_without_debuginfo: 1} # kernel-bootwrapper (for creating zImages from kernel + initrd) @@ -565,6 +567,7 @@ Patch07: linux-2.6-compile-fixes.patch #Patch08: linux-2.6-compile-fix-gcc-43.patch
%if !%{nopatches} +Patch5: linux-2.6-firmware.patch
Patch10: linux-2.6-hotfixes.patch
@@ -693,6 +696,14 @@ header files define structures and const building most standard programs and are also needed for rebuilding the glibc package.
+%package firmware +Summary: Firmware files used by the Linux kernel +Group: Development/System +License: Redistributable +%description firmware +Kernel-firmware includes firmware files required for some devices to +operate. + %package bootwrapper Summary: Boot wrapper files for generating combined kernel + initrd images Group: Development/System @@ -992,6 +1003,7 @@ fi
%if !%{nopatches}
+ApplyPatch linux-2.6-firmware.patch ApplyPatch linux-2.6-hotfixes.patch
# Roland's utrace ptrace replacement. @@ -1581,6 +1593,10 @@ rm -f $RPM_BUILD_ROOT/usr/include/asm*/i rm -f $RPM_BUILD_ROOT/usr/include/asm*/irq.h %endif
+%if %{with_firmware} +make INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware firmware_install +%endif + %if %{with_bootwrapper} make DESTDIR=$RPM_BUILD_ROOT bootwrapper_install WRAPPER_OBJDIR=%{_libdir}/kernel-wrapper WRAPPER_DTSDIR=%{_libdir}/kernel-wrapper/dts %endif @@ -1690,6 +1706,12 @@ fi /usr/include/* %endif
+%if %{with_firmware} +%files firmware +%defattr(-,root,root) +/lib/firmware/* +%endif + %if %{with_bootwrapper} %files bootwrapper %defattr(-,root,root)