diff options
Diffstat (limited to 'rpm/generic')
-rw-r--r-- | rpm/generic/.gitignore | 3 | ||||
-rw-r--r-- | rpm/generic/Makefile.am | 1 | ||||
-rw-r--r-- | rpm/generic/spl-dkms.spec.in | 68 | ||||
-rw-r--r-- | rpm/generic/spl-kmod.spec.in | 148 | ||||
-rw-r--r-- | rpm/generic/spl.spec.in | 40 |
5 files changed, 260 insertions, 0 deletions
diff --git a/rpm/generic/.gitignore b/rpm/generic/.gitignore new file mode 100644 index 000000000..67129ff14 --- /dev/null +++ b/rpm/generic/.gitignore @@ -0,0 +1,3 @@ +/spl-dkms.spec +/spl-kmod.spec +/spl.spec diff --git a/rpm/generic/Makefile.am b/rpm/generic/Makefile.am new file mode 100644 index 000000000..da6c4abe2 --- /dev/null +++ b/rpm/generic/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = spl.spec.in spl-kmod.spec.in spl-dkms.spec.in diff --git a/rpm/generic/spl-dkms.spec.in b/rpm/generic/spl-dkms.spec.in new file mode 100644 index 000000000..d395bf07a --- /dev/null +++ b/rpm/generic/spl-dkms.spec.in @@ -0,0 +1,68 @@ +%define module @PACKAGE@ +%define mkconf scripts/dkms.mkconf + +Name: %{module}-dkms + +Version: @VERSION@ +Release: @RELEASE@%{?dist} +Summary: Kernel module(s) (dkms) + +Group: System Environment/Kernel +License: GPLv2+ +URL: http://zfsonlinux.org/ +Source0: %{module}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch: noarch + +Requires: dkms >= 2.2.0.2 +Provides: %{module}-kmod = %{version} +Conflicts: %{module}-kmod + +%description +This package contains the dkms kernel modules required to emulate +several interfaces provided by the Solaris kernel. + +%prep +%setup -q -n %{module}-%{version} + +%build +%{mkconf} -n %{module} -v %{version} -f dkms.conf + +%install +if [ "$RPM_BUILD_ROOT" != "/" ]; then + rm -rf $RPM_BUILD_ROOT +fi +mkdir -p $RPM_BUILD_ROOT/usr/src/ +cp -rf ${RPM_BUILD_DIR}/%{module}-%{version} $RPM_BUILD_ROOT/usr/src/ + +%clean +if [ "$RPM_BUILD_ROOT" != "/" ]; then + rm -rf $RPM_BUILD_ROOT +fi + +%files +%defattr(-,root,root) +/usr/src/%{module}-%{version} + +%post +for POSTINST in /usr/lib/dkms/common.postinst; do + if [ -f $POSTINST ]; then + $POSTINST %{module} %{version} + exit $? + fi + echo "WARNING: $POSTINST does not exist." +done +echo -e "ERROR: DKMS version is too old and %{module} was not" +echo -e "built with legacy DKMS support." +echo -e "You must either rebuild %{module} with legacy postinst" +echo -e "support or upgrade DKMS to a more current version." +exit 1 + +%preun +dkms remove -m %{module} -v %{version} --all --rpm_safe_upgrade +exit 0 + +%changelog +* Tue Mar 12 2013 Brian Behlendorf <[email protected]> - 0.6.0-1 +- Initial dkms packaging. + diff --git a/rpm/generic/spl-kmod.spec.in b/rpm/generic/spl-kmod.spec.in new file mode 100644 index 000000000..dc23548a0 --- /dev/null +++ b/rpm/generic/spl-kmod.spec.in @@ -0,0 +1,148 @@ +%define module @PACKAGE@ + +%bcond_with debug +%bcond_with debug_log +%bcond_with debug_kmem +%bcond_with debug_kmem_tracking +%bcond_with atomic_spinlocks + + +Name: %{module}-kmod + +Version: @VERSION@ +Release: @RELEASE@%{?dist} +Summary: Kernel module(s) + +Group: System Environment/Kernel +License: GPLv2+ +URL: http://zfsonlinux.org/ +Source0: %{module}-%{version}.tar.gz +Source10: kmodtool +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +# The developments headers will conflict with the dkms packages. +Conflicts: %{module}-dkms + +# Source packages minimally require a kernel-devel dependency. +%{?rhel:BuildRequires: kernel-devel} +%{?fedora:BuildRequires: kernel-devel} +%{?suse_version:BuildRequires: kernel-source} + +# Binary packages build against all installed kernels by default. +%if !%{defined kernels} && !%{defined build_src_rpm} + %if 0%{?rhel}%{?fedora}%{?suse_version} + %define kernels %(ls -1 /usr/src/kernels) + %else + %define kernels %(ls -1 /lib/modules) + %endif +%endif + +%if 0%{?fedora} >= 17 +%define prefix /usr +%endif + +# Kmodtool does its magic here. A patched version of kmodtool is shipped +# because the latest versions may not be available for your distribution. +# https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714 +%{expand:%(bash %{SOURCE10} --target %{_target_cpu} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + + +%description +This package contains the kernel modules required to emulate +several interfaces provided by the Solaris kernel. + +%prep +# Error out if there was something wrong with kmodtool. +%{?kmodtool_check} + +# Print kmodtool output for debugging purposes: +bash %{SOURCE10} --target %{_target_cpu} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%if %{with debug} + %define debug --enable-debug +%else + %define debug --disable-debug +%endif + +%if %{with debug_log} + %define debug_log --enable-debug-log +%else + %define debug_log --disable-debug-log +%endif + +%if %{with debug_kmem} + %define debug_kmem --enable-debug-kmem +%else + %define debug_kmem --disable-debug-kmem +%endif + +%if %{with debug_kmem_tracking} + %define debug_kmem_tracking --enable-debug-kmem-tracking +%else + %define debug_kmem_tracking --disable-debug-kmem-tracking +%endif + +%if %{with atomic_spinlocks} + %define atomic_spinlocks --enable-atomic-spinlocks +%else + %define atomic_spinlocks --disable-atomic-spinlocks +%endif + +# Leverage VPATH from configure to avoid making multiple copies. +%define _configure ../%{module}-%{version}/configure + +%setup -q -c -T -a 0 + +for kernel_version in %{?kernel_versions}; do + %{__mkdir} _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions}; do + cd _kmod_build_${kernel_version%%___*} + %configure \ + --with-config=kernel \ +%if 0%{?rhel}%{?fedora} + --with-linux="${kernel_version##*___}" \ + --with-linux-obj="${kernel_version##*___}" \ +%else + --with-linux=\ + %(if [ -e /lib/modules/${kernel_version%%___*}/source ]; then \ + echo "/lib/modules/${kernel_version%%___*}/source" \ + else \ + echo "/lib/modules/${kernel_version%%___*}/build" \ + fi) \ + --with-linux-obj="/lib/modules/${kernel_version%%___*}/build" \ +%endif + %{debug} \ + %{debug_log} \ + %{debug_kmem} \ + %{debug_kmem_tracking} \ + %{atomic_spinlocks} + make %{?_smp_mflags} + cd .. +done + + +%install +rm -rf ${RPM_BUILD_ROOT} + +# Relies on the kernel 'modules_install' make target. +for kernel_version in %{?kernel_versions}; do + cd _kmod_build_${kernel_version%%___*} + make install \ + DESTDIR=${RPM_BUILD_ROOT} \ + %{?prefix:INSTALL_MOD_PATH=%{?prefix}} \ + INSTALL_MOD_DIR=%{kmodinstdir_postfix} + cd .. +done +chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/* +%{?akmod_install} + + +%clean +rm -rf $RPM_BUILD_ROOT + +%changelog +* Tue Mar 12 2013 Brian Behlendorf <[email protected]> - 0.6.0-1 +- Initial kmods2 packaging. diff --git a/rpm/generic/spl.spec.in b/rpm/generic/spl.spec.in new file mode 100644 index 000000000..4b8cf0756 --- /dev/null +++ b/rpm/generic/spl.spec.in @@ -0,0 +1,40 @@ +Name: @PACKAGE@ +Version: @VERSION@ +Release: @RELEASE@%{?dist} +Summary: Commands to control the kernel modules + +Group: System Environment/Kernel +License: GPLv2+ +URL: http://zfsonlinux.org/ +Source0: %{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +ExclusiveArch: i386 i686 x86_64 + +# May build but untested on ppc/ppc64 +ExcludeArch: ppc ppc64 + +Requires: %{name}-kmod >= %{version} +Provides: %{name}-kmod-common = %{version} + +%description +This package contains the commands to verify the SPL +kernel modules are functioning properly. + +%prep +%setup -q + +%build +%configure --with-config=user +make %{?_smp_mflags} + +%install +%{__rm} -rf $RPM_BUILD_ROOT +make install DESTDIR=%{?buildroot} + +%files +%doc AUTHORS COPYING DISCLAIMER +%{_sbindir}/* + +%changelog +* Tue Mar 12 2013 Brian Behlendorf <[email protected]> - 0.6.0-1 +- Refreshed RPM packaging. |