From 7670f721fc82e6cdcdd31f83760a79b6f2f2b998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Neal=20Gompa=20=28=E3=83=8B=E3=83=BC=E3=83=AB=E3=83=BB?= =?UTF-8?q?=E3=82=B4=E3=83=B3=E3=83=91=29?= Date: Sun, 15 Oct 2017 16:00:44 -0400 Subject: [PATCH] Add DKMS package on Debian-based distributions * config/deb.am: Enable building DKMS packages for Debian * rpm/generic/zfs-dkms.spec.in: Adjust spec to be Debian-compatible * Condition kernel-devel Req to RPM distros * Adjust the DKMS Req to have a minimum of a version only * Ensure that --rpm_safe_upgrade isn't used on non-RPM distros * config/deb.am: Drop CONFIG_KERNEL and CONFIG_USER guards * Makefile.am: Add pkg-dkms target Reviewed-by: Brian Behlendorf Signed-off-by: Neal Gompa Closes #6044 Closes #6731 --- Makefile.am | 1 + config/deb.am | 15 ++++++++++----- rpm/generic/zfs-dkms.spec.in | 10 ++++++++-- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Makefile.am b/Makefile.am index 53a852832d..c51be2b4c5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -98,5 +98,6 @@ etags: tags: ctags etags pkg: @DEFAULT_PACKAGE@ +pkg-dkms: @DEFAULT_PACKAGE@-dkms pkg-kmod: @DEFAULT_PACKAGE@-kmod pkg-utils: @DEFAULT_PACKAGE@-utils diff --git a/config/deb.am b/config/deb.am index 6665e4a2d4..98e98e45f4 100644 --- a/config/deb.am +++ b/config/deb.am @@ -15,17 +15,23 @@ deb-local: fi) deb-kmod: deb-local rpm-kmod -if CONFIG_KERNEL name=${PACKAGE}; \ version=${VERSION}-${RELEASE}; \ arch=`$(RPM) -qp $${name}-kmod-$${version}.src.rpm --qf %{arch} | tail -1`; \ pkg1=kmod-$${name}*$${version}.$${arch}.rpm; \ fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \ $(RM) $$pkg1 -endif + + +deb-dkms: deb-local rpm-dkms + name=${PACKAGE}; \ + version=${VERSION}-${RELEASE}; \ + arch=`$(RPM) -qp $${name}-dkms-$${version}.src.rpm --qf %{arch} | tail -1`; \ + pkg1=$${name}-dkms-$${version}.$${arch}.rpm; \ + fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \ + $(RM) $$pkg1 deb-utils: deb-local rpm-utils -if CONFIG_USER name=${PACKAGE}; \ version=${VERSION}-${RELEASE}; \ arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ @@ -58,6 +64,5 @@ if CONFIG_USER rmdir $${path_prepend}; \ $(RM) $$pkg1 $$pkg2 $$pkg3 $$pkg4 $$pkg5 $$pkg6 $$pkg7 \ $$pkg8 $$pkg9; -endif -deb: deb-kmod deb-utils +deb: deb-kmod deb-dkms deb-utils diff --git a/rpm/generic/zfs-dkms.spec.in b/rpm/generic/zfs-dkms.spec.in index e432bc4142..f6de492970 100644 --- a/rpm/generic/zfs-dkms.spec.in +++ b/rpm/generic/zfs-dkms.spec.in @@ -1,5 +1,9 @@ %{?!packager: %define packager Brian Behlendorf } +%if ! 0%{?rhel}%{?fedora}%{?mageia}%{?suse_version} +%define not_rpm 1 +%endif + %define module @PACKAGE@ %define mkconf scripts/dkms.mkconf @@ -16,10 +20,12 @@ Source0: %{module}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch -Requires: dkms >= 2.2.0.3-20 +Requires: dkms >= 2.2.0.3 Requires: spl-dkms = %{version} Requires: gcc, make, perl +%if 0%{?rhel}%{?fedora}%{?mageia}%{?suse_version} Requires: kernel-devel +%endif Provides: %{module}-kmod = %{version} %description @@ -69,7 +75,7 @@ DKMS_META_ALIAS=`cat $CONFIG_H 2>/dev/null | if [ "$SPEC_META_ALIAS" = "$DKMS_META_ALIAS" ]; then echo -e echo -e "Uninstall of %{module} module ($SPEC_META_ALIAS) beginning:" - dkms remove -m %{module} -v %{version} --all --rpm_safe_upgrade + dkms remove -m %{module} -v %{version} --all %{!?not_rpm:--rpm_safe_upgrade} fi exit 0