# $Id: slip-kmod.spec,v 1.24 2009/10/28 18:41:30 slords Exp $ # Define the kmod package name here. %define kmod_name slip # hint: this can he overridden with "--define kversion foo" on the rpmbuild command line, e.g. # --define "kversion 2.6.16-1.2096_FC5" %{!?kversion: %define kversion 2.6.9-89.0.15.EL} Name: %{kmod_name}-kmod Version: 1.0 Release: 6%{?dist} Group: System Environment/Kernel License: GPL Summary: %{kmod_name} kernel modules BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: i586 i686 x86_64 # Sources. Source0: %{kmod_name}-%{version}-src.tgz Source10: kmodtool-%{kmod_name} # Define the variants for each architecture. %define upvar "" %define smpvar smp %ifarch i686 %define hugememvar hugemem %define xenvar xenU %endif %ifarch x86_64 %define largesmpvar largesmp %define xenvar xenU %endif # If kvariants isn't defined on the rpmbuild line, build all variants for this architecture. %{!?kvariants: %define kvariants %{?upvar} %{?smpvar} %{?xenvar} %{?hugememvar} %{?largesmpvar}} # Magic hidden here. %define kmodtool sh %{SOURCE10} %{expand:%(%{kmodtool} rpmtemplate_kmp %{kmod_name} %{kversion} %{kvariants} 2>/dev/null)} %description %{summary}. %prep %setup -q -c echo 'obj-m += slip.o' > %{kmod_name}/Makefile for kvariant in %{kvariants} ; do cp -a %{kmod_name} _kmod_build_$kvariant done %build for kvariant in %{kvariants} ; do # ksrc=%{_usrsrc}/kernels/%{kversion}${kvariant:+-$kvariant}-%{_target_cpu} # pushd _kmod_build_$kvariant # make -C "${ksrc}" modules M=$PWD # popd ksrc=/lib/modules/"%{kversion}${kvariant:+$kvariant}"/build cd _kmod_build_$kvariant # make TOPDIR=${ksrc} modules %{?_smp_mflags} make -C "${ksrc}" SUBDIRS=${PWD} modules %{?_smp_mflags} cd .. done %install export INSTALL_MOD_PATH=$RPM_BUILD_ROOT export INSTALL_MOD_DIR=extra/%{kmod_name} for kvariant in %{kvariants} ; do # ksrc=%{_usrsrc}/kernels/%{kversion}${kvariant:+-$kvariant}-%{_target_cpu} # pushd _kmod_build_$kvariant # make -C "${ksrc}" modules_install M=$PWD # install -d ${INSTALL_MOD_PATH}/usr/lib/debug # popd ksrc=/lib/modules/"%{kversion}${kvariant:+$kvariant}"/build cd _kmod_build_$kvariant make -C ${ksrc} SUBDIRS=`pwd` INSTALL_MOD_PATH=$RPM_BUILD_ROOT modinst_dir='$(MODLIB)/extra/'%{kmod_name} modules_install # make TOPDIR=${ksrc} INSTALL_MOD_PATH=$RPM_BUILD_ROOT INSTALL_MOD_DIR=extra/%{kmod_name}/ modules_install %{?_smp_mflags} cd .. mkdir -p ${INSTALL_MOD_PATH}/usr/share/doc/kmod-%{kmod_name}/%{kversion}/ find ${INSTALL_MOD_PATH}/lib/modules/"%{kversion}${kvariant:+$kvariant}"/ -type f -name \*.ko | sed "s,${INSTALL_MOD_PATH},," \ > ${INSTALL_MOD_PATH}/usr/share/doc/kmod-%{kmod_name}/%{kversion}/"modules${kvariant:+-$kvariant}" done # Strip the module(s). find ${INSTALL_MOD_PATH} -type f -name \*.ko -exec strip --strip-debug \{\} \; # %clean rm -rf $RPM_BUILD_ROOT %changelog * Wed Apr 21 2010 Shad L. Lords 1.0-6.sme - Update scriptlets to not call rpm [SME: 5448] * Tue Oct 26 2009 Shad L. Lords 1.0-5.sme - Make preuninstall script not fail on upgrade * Tue May 26 2009 Shad L. Lords 1.0-4.sme - Initial build of the kABI-tracking version from 1.0. - Modified spec and kmodtool(-slip) - Note: weak-modules became available as of CentOS-4.7 - Strip the module(s) added * Thu Feb 5 2009 Shad L. Lords - Fix post scripts [SME: 4864] * Mon May 7 2007 Shad L. Lords - Update to use kmodtool * Fri Dec 01 2006 Shad L. Lords - Initial package.