aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/zfs-build.m42
-rw-r--r--configure.ac4
-rw-r--r--rpm/Makefile.am2
-rw-r--r--rpm/redhat/.gitignore3
-rw-r--r--rpm/redhat/Makefile.am1
l---------rpm/redhat/zfs-dkms.spec.in1
-rw-r--r--rpm/redhat/zfs-kmod.spec.in86
l---------rpm/redhat/zfs.spec.in1
8 files changed, 98 insertions, 2 deletions
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index 73ba979d10d1..8d3a373047ec 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -151,7 +151,7 @@ AC_DEFUN([ZFS_AC_RPM], [
RPM_SPEC_DIR="rpm/generic"
AC_ARG_WITH([spec],
AS_HELP_STRING([--with-spec=SPEC],
- [Spec files 'generic']),
+ [Spec files 'generic|redhat']),
[RPM_SPEC_DIR="rpm/$withval"])
AC_MSG_CHECKING([whether spec files are available])
diff --git a/configure.ac b/configure.ac
index 854af771c076..63d0073e9a13 100644
--- a/configure.ac
+++ b/configure.ac
@@ -134,6 +134,10 @@ AC_CONFIG_FILES([
scripts/zpool-config/Makefile
scripts/common.sh
rpm/Makefile
+ rpm/redhat/Makefile
+ rpm/redhat/zfs.spec
+ rpm/redhat/zfs-kmod.spec
+ rpm/redhat/zfs-dkms.spec
rpm/generic/Makefile
rpm/generic/zfs.spec
rpm/generic/zfs-kmod.spec
diff --git a/rpm/Makefile.am b/rpm/Makefile.am
index b564eeefd9f4..f2cf72cef13c 100644
--- a/rpm/Makefile.am
+++ b/rpm/Makefile.am
@@ -1 +1 @@
-SUBDIRS = generic
+SUBDIRS = generic redhat
diff --git a/rpm/redhat/.gitignore b/rpm/redhat/.gitignore
new file mode 100644
index 000000000000..7f5daafdd6d4
--- /dev/null
+++ b/rpm/redhat/.gitignore
@@ -0,0 +1,3 @@
+/zfs-dkms.spec
+/zfs-kmod.spec
+/zfs.spec
diff --git a/rpm/redhat/Makefile.am b/rpm/redhat/Makefile.am
new file mode 100644
index 000000000000..89b13640d622
--- /dev/null
+++ b/rpm/redhat/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = zfs.spec.in zfs-kmod.spec.in zfs-dkms.spec.in
diff --git a/rpm/redhat/zfs-dkms.spec.in b/rpm/redhat/zfs-dkms.spec.in
new file mode 120000
index 000000000000..ffa051baaf03
--- /dev/null
+++ b/rpm/redhat/zfs-dkms.spec.in
@@ -0,0 +1 @@
+../generic/zfs-dkms.spec.in \ No newline at end of file
diff --git a/rpm/redhat/zfs-kmod.spec.in b/rpm/redhat/zfs-kmod.spec.in
new file mode 100644
index 000000000000..ecc809bc6520
--- /dev/null
+++ b/rpm/redhat/zfs-kmod.spec.in
@@ -0,0 +1,86 @@
+%bcond_with debug
+%bcond_with debug_dmu_tx
+
+Name: @PACKAGE@-kmod
+Version: @VERSION@
+Release: @RELEASE@%{?dist}
+
+Summary: Kernel module(s)
+Group: System Environment/Kernel
+License: @ZFS_META_LICENSE@
+URL: http://zfsonlinux.org/
+BuildRequires: %kernel_module_package_buildreqs
+BuildRequires: kmod-spl-devel = %{version}
+Source0: @PACKAGE@-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+# Additional dependency information for the kmod sub-package must be specified
+# by generating a preamble text file which kmodtool can append to the spec file.
+%(/bin/echo -e "\
+Requires: spl-kmod\n\
+Requires: @PACKAGE@ = %{version}\n\
+Conflicts: @PACKAGE@-dkms\n\n" > %{_sourcedir}/kmod-preamble)
+
+%description
+This package contains the ZFS kernel modules.
+
+%define kmod_name @PACKAGE@
+%define debug_package %{nil}
+
+%kernel_module_package -n %{kmod_name} -p %{_sourcedir}/kmod-preamble
+
+%define ksrc %{_usrsrc}/kernels/%{kverrel}
+%define kobj %{ksrc}
+%define splsrc %{_usrsrc}/spl-%{version}
+%define splobj %{splsrc}/%{kverrel}
+
+%package -n kmod-%{kmod_name}-devel
+Summary: ZFS kernel module(s) devel common
+Group: System Environment/Kernel
+Requires: kmod-spl-devel = %{version}
+
+%description -n kmod-%{kmod_name}-devel
+This package provides the header files and objects to build kernel modules
+which depend on the spl kernel module.
+
+%prep
+if ! [ -d "%{ksrc}" ]; then
+ echo "Kernel build directory isn't set properly, cannot continue"
+ exit 1
+fi
+
+%if %{with debug}
+%define debug --enable-debug
+%else
+%define debug --disable-debug
+%endif
+
+%if %{with debug_dmu_tx}
+%define debug_dmu_tx --enable-debug-dmu-tx
+%else
+%define debug_dmu_tx --disable-debug-dmu-tx
+%endif
+
+%setup -n %{kmod_name}-%{version}
+%build
+%configure \
+ --with-config=kernel \
+ --with-linux=%{ksrc} \
+ --with-linux-obj=%{kobj} \
+ --with-spl="%{splsrc}" \
+ --with-spl-obj="%{splobj}" \
+ %{debug} \
+ %{debug_dmu_tx}
+make %{?_smp_mflags}
+
+%install
+make install \
+ DESTDIR=${RPM_BUILD_ROOT} \
+ INSTALL_MOD_DIR=extra/%{kmod_name}
+%{__rm} -f %{buildroot}/lib/modules/%{kverrel}/modules.*
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files -n kmod-%{kmod_name}-devel
+%{_usrsrc}/%{kmod_name}-%{version}
diff --git a/rpm/redhat/zfs.spec.in b/rpm/redhat/zfs.spec.in
new file mode 120000
index 000000000000..4c8079166ff8
--- /dev/null
+++ b/rpm/redhat/zfs.spec.in
@@ -0,0 +1 @@
+../generic/zfs.spec.in \ No newline at end of file