%{?!module_name: %{error: You did not specify a module name (%%module_name)}} %{?!version: %{error: You did not specify a module version (%%version)}} %{?!kernel_versions: %{error: You did not specify kernel versions (%%kernel_version)}} %{?!packager: %define packager Mandrakelinux Team <http://www.mandrakeexpert.com>} %{?!license: %define license Commercial} %{?!_dkmsdir: %define _dkmsdir %_localstatedir/dkms} %{?!_srcdir: %define _srcdir %_prefix/src} Name: %{module_name}-kernel Version: %{version} Release: 1mdk Summary: %{module_name} driver for kernels %{kernel_versions} Group: System/Kernel and hardware License: %{license} BuildRoot: %{_tmppath}/%{name}-buildroot Provides: %{module_name} = %{version} PreReq(post): dkms-minimal >= 1.94 PreReq(preun): dkms-minimal >= 1.94 %description dkms binary kernel modules for the %{module_name} driver version %{version}, built for the %{kernel_versions} kernel(s). %(for kernel in %kernel_versions;do echo -e "%package $kernel\nSummary:\t%{module_name} driver for Kernel ${kernel} \nVersion:\t%{version} \nRelease:\t1mdk \nLicense:\tUnknown \nGroup:\t\tSystem/Kernel and hardware \nRequires:\t\tdkms-minimal >= 1.90 \n\n%description $kernel\ndkms binary kernel modules for the %{module_name} driver version %{version},\nbuilt for the ${kernel} kernel.";done) %prep %install rm -rf $RPM_BUILD_ROOT for kernel in %kernel_versions;do mkdir -p %{buildroot}/%{_dkmsdir}/%{module_name}/%{version}/${kernel} cp -a %{_dkmsdir}/%{module_name}/%{version}/${kernel} %{buildroot}/%{_dkmsdir}/%{module_name}/%{version} install %{_srcdir}/%{module_name}-%{version}/dkms.conf %{buildroot}/%{_dkmsdir}/%{module_name}/%{version}/${kernel} done %clean rm -rf $RPM_BUILD_ROOT %(for kernel in %{kernel_versions};do echo -e "%post ${kernel}\n[ -e %{_srcdir}/%{module_name}-%{version} ] || mkdir -p %{_srcdir}/%{module_name}-%{version}\n[ -e %{_srcdir}/%{module_name}-%{version}/dkms.conf ] || cp -a %{_dkmsdir}/%{module_name}/%{version}/${kernel}/dkms.conf %{_srcdir}/%{module_name}-%{version}\n[ -e %{_dkmsdir}/%{module_name}/%{version}/source ] || ln -sf %{_srcdir}/%{module_name}-%{version} %{_dkmsdir}/%{module_name}/%{version}/source\ndkms install -m %{module_name} -v %{version} -k ${kernel} --rpm_safe_upgrade\ndkms status -m %{module_name} -v %{version}";done) %(for kernel in %{kernel_versions};do echo -e "%preun ${kernel}\ndkms remove -m %{module_name} -v %{version} -k ${kernel} --rpm_safe_upgrade";done) %(for kernel in %{kernel_versions};do echo -e "%files ${kernel}\n%defattr(-,root,root)\n%{_dkmsdir}/%{module_name}/%{version}/${kernel}\n";done) %changelog * %(date "+%a %b %d %Y") %packager %{version}-%{release} - Automatic build by dkms