Add RHEL style kmod packages
Provide a Redhat specific zfs-kmod.spec file which uses the old style kmods (not kmods2) packaging. By using the provided kmodtool script packages can be built which support weak modules. This allows for the kernel to be updated without having to rebuild the ZFS kernel modules. Packages for RHEL/Centos/SL/TOSS which use this spec file can by built as follows: $ ./configure --with-spec=redhat $ make rpms Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
parent
d820d2e9cf
commit
ee2ca1db28
@ -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])
|
||||
|
@ -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
|
||||
|
@ -1 +1 @@
|
||||
SUBDIRS = generic
|
||||
SUBDIRS = generic redhat
|
||||
|
3
rpm/redhat/.gitignore
vendored
Normal file
3
rpm/redhat/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
/zfs-dkms.spec
|
||||
/zfs-kmod.spec
|
||||
/zfs.spec
|
1
rpm/redhat/Makefile.am
Normal file
1
rpm/redhat/Makefile.am
Normal file
@ -0,0 +1 @@
|
||||
EXTRA_DIST = zfs.spec.in zfs-kmod.spec.in zfs-dkms.spec.in
|
1
rpm/redhat/zfs-dkms.spec.in
Symbolic link
1
rpm/redhat/zfs-dkms.spec.in
Symbolic link
@ -0,0 +1 @@
|
||||
../generic/zfs-dkms.spec.in
|
86
rpm/redhat/zfs-kmod.spec.in
Normal file
86
rpm/redhat/zfs-kmod.spec.in
Normal file
@ -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}
|
1
rpm/redhat/zfs.spec.in
Symbolic link
1
rpm/redhat/zfs.spec.in
Symbolic link
@ -0,0 +1 @@
|
||||
../generic/zfs.spec.in
|
Loading…
Reference in New Issue
Block a user