# $Id$ # Authority: dag ### FIXME: GPFS kernel modules should be versioned (so multiple can be installed in parallel). ### FIXME: gpfs.gpl tarball would be handy to not create a 48MB source package. ### FIXME: Package is x86_64 specific because (non-conform arch names all over), easy to adapt by hand ### FIXME: SPEC file is smp specific, as SLES9 has non-conforming kernel version/release #define kernel %(uname -r) %{!?kernel:%define kernel %(rpm -qa kernel-smp --qf '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}\\n' | head -n 1)} Summary: GPFS Linux portability layer Name: kernel-module-gpfs %define real_version 2.3.0-7 Version: 2.3.0.7_193smp Release: 2.dag License: GPL Packager: Dag Wieers Vendor: Dag Wieers Group: System Environment/Kernel URL: http://techsupport.services.ibm.com/server/gpfs/download/ Source: ftp://techsupport.services.ibm.com/eserver/pseries/cluster/gpfs/fixes/gpfs-%{real_version}.%{_arch}.update.tar.gz BuildRoot: %{_tmppath}/root-%{name}-%{version}-%{release} ExclusiveArch: x86_64 BuildRequires: kernel-source = %{kernel}, gpfs.base = %{real_version} Requires: kernel-smp = %{kernel}, k_smp, gpfs.base Obsoletes: gpfsgpl, gpfs.gpl %description GPFS Linux portability layer. This package is compiled against kernel %{kernel}. %package -n gpfs-utils Summary: GPFS Linux utilities Group: Environment/Kernel Requires: gpfs.base Obsoletes: gpfsgpl, gpfs.gpl %description -n gpfs-utils GPFS Linux utilities. %define srcdir %{_builddir}/%{name}-%{version} %prep %setup -c ### Extract source from gpfs.gpl RPM rpm2cpio %{_builddir}/%{name}-%{version}/gpfs.gpl-%{real_version}.noarch.rpm | cpio -i --make-directories ### Put documentation in place (2 conflicting README files) %{__mv} -f README README.rpms %{__mv} -f usr/lpp/mmfs/src/README README.build %{__mv} -f usr/lpp/mmfs/src/gpl-linux/LICENSE LICENSE ### Rewrite configuration to adapt to SLES9/kernel/arch %{__cp} -vf %{_builddir}/%{name}-%{version}/usr/lpp/mmfs/src/config/site.mcr.proto \ %{_builddir}/%{name}-%{version}/usr/lpp/mmfs/src/config/site.mcr %{__perl} -pi -e ' s|^(LINUX_DISTRIBUTION)\s*=\s*.+$|$1 = SUSE_LINUX|; s|^(#define LINUX_KERNEL_VERSION)\s*.+$|$1 2060507|; s|^(#define GPFS_ARCH_.+)$|#define GPFS_ARCH_X86_64|; s|^(KERNEL_HEADER_DIR)\s*=\s*.+$|$1 = /lib/modules/`uname -r`/source/include|; ' %{_builddir}/%{name}-%{version}/usr/lpp/mmfs/src/config/site.mcr ### Prepare kernel-source /etc/init.d/running-kernel start %build export SHARKCLONEROOT=%{_builddir}/%{name}-%{version}/usr/lpp/mmfs/src %{__make} -C "%{_builddir}/%{name}-%{version}/usr/lpp/mmfs/src" clean World\ DESTDIR="%{_builddir}/%{name}-%{version}/usr/lpp/mmfs/src" %install export SHARKCLONEROOT=%{_builddir}/%{name}-%{version}/usr/lpp/mmfs/src %{__make} -C "%{_builddir}/%{name}-%{version}/usr/lpp/mmfs/src" InstallImages\ DESTDIR="%{_builddir}/%{name}-%{version}/usr/lpp/mmfs/src" \ LPPBIN="%{buildroot}/usr/lpp/mmfs/bin" ### Move kernel modules and utilities around to designated location cd usr/lpp/mmfs/src/ %{__install} -d -m0755 %{buildroot}%{_prefix}/lpp/mmfs/{bin,src/gpl-linux}/ %{__cp} -auvx bin/* %{buildroot}%{_prefix}/lpp/mmfs/bin/ #%{__cp} -auvx gpl-linux/*.{ko,map} %{buildroot}%{_prefix}/lpp/mmfs/src/gpl-linux/ #%{__install} -d -m0755 %{buildroot}/lib/modules/%{kernel}-smp/extra/ #%{__cp} -auvx gpl-linux/*.{ko,map} %{buildroot}/lib/modules/%{kernel}-smp/extra/ ### Clean up buildroot %{__rm} -f %{buildroot}%{_prefix}/lpp/mmfs/bin/mmfs %clean %{__rm} -rf %{buildroot} %files %defattr(-, root, root, 0755) #%{_prefix}/lpp/mmfs/src/gpl-linux/ #/lib/modules/%{kernel}-smp/extra/ #%files -n gpfs-utils #%defattr(-, root, root, 0755) %doc LICENSE README* %{_prefix}/lpp/mmfs/bin/ #%{_prefix}/lpp/mmfs/src/lib/ %changelog * Tue Oct 25 2005 Dag Wieers - 2.3.0.7_193smp-2.dag - Removed .ko files. (GPFS development team) - Used /etc/init.d/current-kernel on SLES9. *sigh* (GPFS development team) * Mon Oct 24 2005 Dag Wieers - 2.3.0.7_193smp-1.dag - Initial version.