From a6e20f50f6732544d74d78dffab2e68e2cbbed2e Mon Sep 17 00:00:00 2001 From: loli10K Date: Tue, 30 Jan 2018 23:15:00 +0100 Subject: [PATCH] Fix systemd_ RPM macros usage on Debian-based distributions Debian-based distributions do not seem to provide RPM macros for dealing with systemd pre- and post- (un)install actions: this results in errors when installing or upgrading .deb packages because the resulting control scripts contain the following unresolved macros: * %systemd_post * %systemd_preun * %systemd_postun Fix this by providing default values for postinstall, preuninstall and postuninstall scripts when these macros are not defined. Signed-off-by: loli10K --- rpm/generic/zfs.spec.in | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/rpm/generic/zfs.spec.in b/rpm/generic/zfs.spec.in index faa73e3b794f..27a2424df898 100644 --- a/rpm/generic/zfs.spec.in +++ b/rpm/generic/zfs.spec.in @@ -266,8 +266,15 @@ find %{?buildroot}%{_libdir} -name '*.la' -exec rm -f {} \; %post %if 0%{?_systemd} +%if 0%{?systemd_post:1} %systemd_post %{systemd_svcs} %else +if [ "$1" = "1" -o "$1" = "install" ] ; then + # Initial installation + systemctl preset %{systemd_svcs} >/dev/null || true +fi +%endif +%else if [ -x /sbin/chkconfig ]; then /sbin/chkconfig --add zfs-import /sbin/chkconfig --add zfs-mount @@ -279,9 +286,17 @@ exit 0 %preun %if 0%{?_systemd} +%if 0%{?systemd_preun:1} %systemd_preun %{systemd_svcs} %else -if [ "$1" = "0" ] && [ -x /sbin/chkconfig ]; then +if [ "$1" = "0" -o "$1" = "remove" ] ; then + # Package removal, not upgrade + systemctl --no-reload disable %{systemd_svcs} >/dev/null || true + systemctl stop %{systemd_svcs} >/dev/null || true +fi +%endif +%else +if [ "$1" = "0" -o "$1" = "remove" ] && [ -x /sbin/chkconfig ]; then /sbin/chkconfig --del zfs-import /sbin/chkconfig --del zfs-mount /sbin/chkconfig --del zfs-share @@ -292,7 +307,11 @@ exit 0 %postun %if 0%{?_systemd} +%if 0%{?systemd_postun:1} %systemd_postun %{systemd_svcs} +%else +systemctl --system daemon-reload >/dev/null || true +%endif %endif %files