Sophie

Sophie

distrib > Mageia > 1 > x86_64 > by-pkgid > d1fd64efa723864411adc44984750383 > files > 5

dkms-minimal-2.0.19-24.mga1.noarch.rpm

%{?!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 Mageia Team <http://www.mageia.org>}
%{?!license: %define license Commercial}

%{?!_dkmsdir: %define _dkmsdir %_localstatedir/lib/dkms}
%{?!_srcdir: %define _srcdir %_prefix/src}
%define fake_version %version
%{?rel: %define fake_version %version-%rel}
%{?!rel: %define rel %mkrel 1}
%define modulesrcdir %{_srcdir}/%{module_name}-%{fake_version}
%define moduledkmsdir %{_dkmsdir}/%{module_name}/%{fake_version}/
%define _dkmsbinarydir %_localstatedir/lib/dkms-binary
%define moduledkmsbinarydir %{_dkmsbinarydir}/%{module_name}/%{fake_version}

%define kernel_flavour_rx /(?:.*)-(\\D.*)-(?:[^-]+(?:mga))$/
%define kernel_flavour_cmd perl -e '$ARGV[0] =~ %kernel_flavour_rx and print "$1\\n"'
# find latest kernel for each flavour of the defined kernels
%define kernels_latest %(perl -e 'foreach my $ver (sort(qw(%kernel_versions))) { $ver =~ %kernel_flavour_rx and $kernels{$1} = $ver }; print join(" ", values(%%kernels)) . "\\n"')
%define latest_date %(date +%%Y%%m%%d)

Name:		dkms-%{module_name}
Version:	%{version}
Release:	%{rel}
Summary:	%{module_name} driver for kernels %{kernel_versions}
Group:		System/Kernel and hardware
License:	%{license}
BuildRoot:	%{_tmppath}/%{name}-buildroot
Provides:	%{module_name} = %{version}

%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 kflavour=`%kernel_flavour_cmd $kernel`; \
      kpackage=`rpm -qf --qf '%{NAME}' /lib/modules/$kernel`; \
      echo -e "\
%package -n %{module_name}-kernel-$kernel\n\
Summary:	%{module_name} driver for kernel ${kernel} \n\
Version:	%{version} \n\
Release:	%{rel} \n\
License:	%{license} \n\
Group:		System/Kernel and hardware\n\
Requires(post):	dkms-minimal >= 2.0.19\n\
Requires(preun):	dkms-minimal >= 2.0.19\n\
Requires:	${kpackage}
Requires(post):	${kpackage}
Requires(preun):	${kpackage}
Suggests:	%{module_name}-kernel-${kflavour}-latest \n\
\n\
%description -n %{module_name}-kernel-${kernel}\n\
dkms binary kernel modules for the %{module_name} driver version %{version},\n\
built for the ${kernel} kernel."\
;done)

%(for kernel in %kernels_latest; do kflavour=`%kernel_flavour_cmd $kernel`; echo -e "\
%package -n %{module_name}-kernel-$kflavour-latest\n\
Summary:	%{module_name} driver for latest kernel-${kflavour} \n\
Version:	%{version} \n\
Release:	1.%{latest_date}.%{rel} \n\
License:	%{license} \n\
Group:		System/Kernel and hardware\n\
Requires:	%{module_name}-kernel-$kernel = %{version}-%{rel} \n\
\n\
%description -n %{module_name}-kernel-${kflavour}-latest\n\
dkms binary kernel modules for the %{module_name} driver version %{version},\n\
built for latest kernel-${kflavour}."\
;done)

%prep

%install
rm -rf $RPM_BUILD_ROOT
for kernel in %kernel_versions; do
mkdir -p %{buildroot}/%{moduledkmsbinarydir}/${kernel}
cp -a %{moduledkmsdir}/${kernel} %{buildroot}/%{moduledkmsbinarydir}
install %{modulesrcdir}/dkms.conf %{buildroot}/%{moduledkmsbinarydir}/${kernel}
done

%clean
rm -rf $RPM_BUILD_ROOT

%(for kernel in %{kernel_versions}; do echo -e "\
%post -n %{module_name}-kernel-${kernel}\n\
dkms install --binary -m %{module_name} -v %{fake_version} -k ${kernel} --rpm_safe_upgrade\n\
dkms status -m %{module_name} -v %{fake_version}\n\
:"\
;done)

%(for kernel in %{kernel_versions}; do echo -e "\
%preun -n %{module_name}-kernel-${kernel}\n\
dkms uninstall --binary -m %{module_name} -v %{fake_version} -k ${kernel} --rpm_safe_upgrade\n\
:"\
;done)

%(for kernel in %{kernel_versions};do echo -e "\
%files -n %{module_name}-kernel-${kernel}\n%defattr(-,root,root)\n\
%dir %{_dkmsbinarydir}/%{module_name}\n\
%dir %{moduledkmsbinarydir}\n\
%{moduledkmsbinarydir}/${kernel}\n\
";done)

%(for kernel in %kernels_latest; do kflavour=`%kernel_flavour_cmd $kernel`; echo -e "\
%files -n %{module_name}-kernel-$kflavour-latest\n%defattr(-,root,root)\n\
";done)

%changelog
* %(LC_ALL=C date "+%a %b %d %Y") %packager %{version}-%{release}
- Automatic build by dkms