diff --git a/README.md b/README.md index e83d427..b8274f2 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # linux-firmware +Collection of firmware files used by the Linux Kernel. + diff --git a/linux-firmware.spec b/linux-firmware.spec new file mode 100644 index 0000000..092cbba --- /dev/null +++ b/linux-firmware.spec @@ -0,0 +1,215 @@ +# openmamba linux-firmware specfile +# Copyright (C) 2011-2013 by Silvan Calarco +# +# To build for a specific kernel target: +# +# rpm -ba --define="KERNEL_TARGET mamba" linux-firmware.spec +# +# default is "mamba" +# + +%define kernel_majversion %(echo %KERNEL_VER | cut -d. -f1-2) +%define kernel_ver %(echo %KERNEL_VER | cut -d. -f1-3) + +%if "%{?KERNEL_TARGET}" == "" + # build a mamba kernel by default +%ifarch arm + %define KERNEL_TARGET mamba-arm +%endif +%ifarch x86_64 + %define KERNEL_TARGET mamba-x86_64 +%endif +%ifarch %{ix86} + %define KERNEL_TARGET mamba +%endif +%else + %define KERNEL_TARGET_APPEND -%{KERNEL_TARGET} +%endif + +%if "%{?KERNEL_VER}" == "" + %define KERNEL_VER %(uname -r | sed "s|\\([0-9.]*\\).*|\\1|" ) +%endif + +Name: linux-firmware +Version: 20131013.7d0c7a8 +Release: 1mamba +Summary: Collection of firmware files used by the Linux Kernel +Group: System/Kernel and Hardware +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/ +Source: git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/master/linux-firmware-%{version}.tar.bz2 +# packaged created from git clone +# git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git +# cd linux-firmware +# git archive --format=tar --prefix=linux-firmware-0.0.git20120908/ HEAD | xz > ../../SOURCES/linux-firmware-0.0.git20120908.tar.xz +License: Distributable +## AUTOBUILDREQ-BEGIN +## AUTOBUILDREQ-END +BuildRequires: kernel-%{KERNEL_TARGET} >= %{kernel_ver} +BuildRequires: kernel-%{KERNEL_TARGET} <= %{kernel_ver}.255 +BuildRequires: kernel-%{KERNEL_TARGET}-sound >= %{kernel_ver} +BuildRequires: kernel-%{KERNEL_TARGET}-sound <= %{kernel_ver}.255 +BuildRequires: kernel-%{KERNEL_TARGET}-wireless >= %{kernel_ver} +BuildRequires: kernel-%{KERNEL_TARGET}-wireless <= %{kernel_ver}.255 +BuildRequires: kmod +Provides: iwlwifi-firmware +Obsoletes: iwlwifi-firmware +Provides: rt2860-firmware +Obsoletes: rt2860-firmware +Provides: rt2870-firmware +Obsoletes: rt2870-firmware +Provides: radeon-firmware +Obsoletes: radeon-firmware +Provides: rt2501-firmware +Obsoletes: rt2501-firmware +Provides: linux_firmware +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +Collection of firmware files used by the Linux Kernel. + +%package extra +Summary: Collection of extra firmware files that are not used by the Linux Kernel modules +Group: System/Kernel and Hardware +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description extra +Collection of extra firmware files that are not used by the Linux Kernel modules. + +%prep +%setup -q + +%build + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +install -d -m0755 %{buildroot}/lib/firmware +cp -a * %{buildroot}/lib/firmware/ + +find /lib/modules/%{KERNEL_VER}%{KERNEL_TARGET}/ -type f -name *.ko | \ +while read l; do + /sbin/modinfo $l | grep ^firmware: | sed "s|firmware:[[:space:]]*|/lib/firmware/|" >> extracted-kernel-firmware.list +done + +cat extracted-kernel-firmware.list | sort -u > kernel-firmware.list +while read l; do + [ -e %{buildroot}${l} ] && echo "${l}" >> matching-firmware.list +done < kernel-firmware.list + +pushd %{buildroot}/lib/firmware +# atk3k-1.fw needs microcode files in /lib/firmware/ar3k +grep "ath3k-1.fw" %{_builddir}/%{name}-%{version}/matching-firmware.list && { + find ar3k/ -type f | \ + while read l; do + [ -e %{buildroot}/lib/firmware/${l} ] && echo "/lib/firmware/${l}" >> %{_builddir}/%{name}-%{version}/matching-firmware.list + done +} + +# add symlinked files +find -type l -exec readlink -f {} \; | \ + while read l; do + n=`echo "${l/*\/lib\/firmware\/}"` + grep ${n} %{_builddir}/%{name}-%{version}/matching-firmware.list || \ + echo "/lib/firmware/${n}" >> %{_builddir}/%{name}-%{version}/matching-firmware.list + done +popd + +find %{buildroot}/lib/firmware/ \( -type f -or -type l \) -and \ + -not -name LICENSE\* -and -not -name LICENCE\* -and -not -name GPL-3 | \ +while read l; do + f=`echo $l | sed "s|%{buildroot}||"` + grep "^$f$" matching-firmware.list || echo "${f}" >> not-matching-firmware.list +done + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%files -f matching-firmware.list +%defattr(-,root,root) +/lib/firmware/iwlwifi-6000g2b-5.ucode +/lib/firmware/GPL-3 +/lib/firmware/LICENCE.agere +/lib/firmware/LICENSE.amd-ucode +/lib/firmware/LICENCE.atheros_firmware +/lib/firmware/LICENCE.go7007 +/lib/firmware/LICENCE.i2400m +/lib/firmware/LICENCE.iwlwifi_firmware +/lib/firmware/LICENCE.mwl8335 +/lib/firmware/LICENCE.myri10ge_firmware +/lib/firmware/LICENCE.phanfw +/lib/firmware/LICENCE.qla2xxx +/lib/firmware/LICENCE.ralink-firmware.txt +/lib/firmware/LICENCE.rtlwifi_firmware.txt +/lib/firmware/LICENCE.ti-connectivity +/lib/firmware/LICENSE.radeon +/lib/firmware/LICENCE.wl1251 + +%files extra -f not-matching-firmware.list +%defattr(-,root,root) +%exclude /lib/firmware/iwlwifi-6000g2b-5.ucode +/lib/firmware/LICENCE.Marvell +/lib/firmware/LICENCE.OLPC +/lib/firmware/LICENCE.broadcom_bcm43xx +/lib/firmware/LICENCE.chelsio_firmware +/lib/firmware/LICENCE.ene_firmware +/lib/firmware/LICENCE.ralink_a_mediatek_company_firmware +/lib/firmware/LICENCE.tda7706-firmware.txt +/lib/firmware/LICENCE.ueagle-atm4-firmware +/lib/firmware/LICENCE.via_vt6656 +/lib/firmware/LICENCE.xc5000 +/lib/firmware/LICENSE.dib0700 +/lib/firmware/LICENCE.ca0132 +/lib/firmware/LICENCE.ibt_firmware + +%changelog +* Tue Oct 29 2013 Automatic Build System 20131013.7d0c7a8-1mamba +- automatic version update by autodist + +* Tue Sep 17 2013 Automatic Build System 20130903-1mamba +- automatic version update by autodist + +* Mon Jul 29 2013 Automatic Build System 20130725-1mamba +- automatic version update by autodist + +* Fri Jun 14 2013 Automatic Build System 20130610-1mamba +- automatic version update by autodist + +* Fri May 31 2013 Automatic Build System 20130528-1mamba +- automatic version update by autodist + +* Thu May 09 2013 Automatic Build System 20130430-1mamba +- automatic version update by autodist + +* Thu Apr 18 2013 Silvan Calarco 20130414git-2mamba +- move from extra to main ar3k microcode files required by ath3k-1.fw +- move from extra to main symlinked files + +* Sun Apr 14 2013 Silvan Calarco 20130414git-1mamba +- update to 20130414git + +* Thu Nov 22 2012 Silvan Calarco 0.0.git20121122-1mamba +- update to 0.0.git20121122 + +* Sun Sep 23 2012 Silvan Calarco 0.0.git20120908-2mamba +- rebuilt with kernel 3.4 + +* Sat Sep 08 2012 Silvan Calarco 0.0.git20120908-1mamba +- update to 0.0.git20120908 + +* Fri Feb 24 2012 Silvan Calarco 0.0.git20120202-3mamba +- iwlagn: move some firmwares from -extra to main package + +* Fri Feb 17 2012 Silvan Calarco 0.0.git20120202-2mamba +- rebuilt for 3.2 + +* Thu Feb 02 2012 Silvan Calarco 0.0.git20120202-1mamba +- update to 0.0.git20120202 + +* Tue Sep 20 2011 Silvan Calarco 0.0.git20110821-2mamba +- rebuilt with kernel 3.0 + +* Sun Aug 21 2011 Silvan Calarco 0.0-1mamba +- package created by autospec +http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-100-ucode-39.31.5.1.tgz