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.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #7074 
Closes #7100
This commit is contained in:
LOLi 2018-02-02 22:50:42 +01:00 committed by Brian Behlendorf
parent 1b66810bad
commit fbd4254268
1 changed files with 20 additions and 1 deletions

View File

@ -266,8 +266,15 @@ find %{?buildroot}%{_libdir} -name '*.la' -exec rm -f {} \;
%post %post
%if 0%{?_systemd} %if 0%{?_systemd}
%if 0%{?systemd_post:1}
%systemd_post %{systemd_svcs} %systemd_post %{systemd_svcs}
%else %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 if [ -x /sbin/chkconfig ]; then
/sbin/chkconfig --add zfs-import /sbin/chkconfig --add zfs-import
/sbin/chkconfig --add zfs-mount /sbin/chkconfig --add zfs-mount
@ -279,9 +286,17 @@ exit 0
%preun %preun
%if 0%{?_systemd} %if 0%{?_systemd}
%if 0%{?systemd_preun:1}
%systemd_preun %{systemd_svcs} %systemd_preun %{systemd_svcs}
%else %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-import
/sbin/chkconfig --del zfs-mount /sbin/chkconfig --del zfs-mount
/sbin/chkconfig --del zfs-share /sbin/chkconfig --del zfs-share
@ -292,7 +307,11 @@ exit 0
%postun %postun
%if 0%{?_systemd} %if 0%{?_systemd}
%if 0%{?systemd_postun:1}
%systemd_postun %{systemd_svcs} %systemd_postun %{systemd_svcs}
%else
systemctl --system daemon-reload >/dev/null || true
%endif
%endif %endif
%files %files