# $Id$ # authority: matthias # ExclusiveDist: fc4 fc5 # Stuff to be implemented externally : Source10: kmodtool %define kmodtool sh %{SOURCE10} # End stuff to be ... # Temporarily hardcoded : #%{!?kver: %define kver 2.6.17-1.2339.fc6} %{!?kver: %define kver 2.6.16-1.2289} %ifarch i686 #%define kvariants "" smp xen0 xenU %define kvariants "" %endif %ifarch x86_64 %define kvariants "" xen0 xenU %endif %define kmod_name ipw3945 %define kverrel %(%{kmodtool} verrel %{?kver} 2>/dev/null) %{!?kvariants: %global kvariants %(%{kmodtool} variant %{?kver} 2>/dev/null)} Summary: Kernel module for IntelĀ® PRO/Wirelss 3945 network adaptors Name: %{kmod_name}-kmod Version: 1.0.12 Release: 1.%(echo %{kverrel} | tr - _) Group: System Environment/Kernel License: GPL URL: http://ipw3945.sourceforge.net/ Source0: http://dl.sf.net/ipw3945/ipw3945-%{version}.tgz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root # ExclusiveArch to assist the FE build system. ExclusiveArch: i686 x86_64 %description This RPM contains a binary Linux kernel module built for %{kernel}. It provides a driver for IntelĀ® PRO/Wireless3945 based wireless network adapters. # magic hidden here: %{expand:%(%{kmodtool} rpmtemplate %{kmod_name} %{kverrel} %{kvariants} 2>/dev/null)} # *-kmod-common %package -n %{kmod_name}-kmod-common Summary: Common files for the %{kmod_name} kernel module Group: System Environment/Kernel Provides: kernel-modules = %{verrel}%{variant} Provides: %{kmod_name}-kmod-common Requires: kmod-%{kmod_name} = %{version} Requires: ipw3945-ucode %description -n %{kmod_name}-kmod-common Common files for the %{kmod_name} kernel module. %files -n %{kmod_name}-kmod-common %defattr(-, root, root, -) %attr(0644, root, root) %config /etc/modules.d/ipw3945 %prep # To understand the magic better or to debug it, uncomment this : #{kmodtool} rpmtemplate %{kmod_name} %{kverrel} %{kvariants} 2>/dev/null #sleep 5 %setup -c for kvariant in %{kvariants}; do cp -a ipw3945-%{version} _kmod_build_$kvariant done %build for kvariant in %{kvariants}; do ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} cd _kmod_build_$kvariant #make KSRC="${ksrc}" IEEE80211_INC="${ksrc}/include" make KSRC="${ksrc}" IEEE80211_INC="${ksrc}/include" IEEE80211_IGNORE_DUPLICATE=y cd .. done %install [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT %{__rm} -rf $RPM_BUILD_ROOT for kvariant in %{kvariants}; do %{__install} -D -m 0755 _kmod_build_${kvariant}/%{kmod_name}.ko \ $RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/%{kmod_name}/%{kmod_name}.ko done %{__mkdir_p} $RPM_BUILD_ROOT/etc/modules.d %{__cat} > $RPM_BUILD_ROOT/etc/modules.d/ipw3945 << EOF install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945 EOF %clean [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT %changelog * Tue Jul 4 2006 Satoru SATOH - 1.0.5-1 - Merged ipw3945-kmod-common into ipw3945-kmod * Fri Mar 31 2006 Matthias Saou 0.0.73-1 - Initial RPM release, based on the new Extras kernel module template, unfortunately the build fails and would require replacing the ieee80211 kernel stack with a more recent one, which can't be done without messing with files installed by kernel and kernel-devel packages.