提交 7495b1a7 编写于 作者: D Daniel P. Berrangé

rpm: fix incorrect expansion of macros with line continuations for args

Macros in RPMs are expanded before line continuations, so when we write

   %systemd_preun foo \
                  bar

What happens is that it expands to

   if [ $1 -eq 0 ] ; then
        # Package removal, not upgrade
        systemctl --no-reload disable --now foo \ > /dev/null 2>&1 || :
   fi
                 bar

which is obviously complete garbage and not what we expected. It is
simply not safe to ever use line continuations in combination with
macros.
Reviewed-by: NLaine Stump <laine@laine.org>
Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
上级 ec34c51e
......@@ -1519,9 +1519,9 @@ exit 0
%if %{with_systemd}
%if %{with_systemd_macros}
%systemd_post virtlockd.socket virtlockd-admin.socket \
virtlogd.socket virtlogd-admin.socket \
libvirtd.service
%systemd_post virtlockd.socket virtlockd-admin.socket
%systemd_post virtlogd.socket virtlogd-admin.socket
%systemd_post libvirtd.service
%else
if [ $1 -eq 1 ] ; then
# Initial installation
......@@ -1556,9 +1556,9 @@ touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
%preun daemon
%if %{with_systemd}
%if %{with_systemd_macros}
%systemd_preun libvirtd.service \
virtlogd.socket virtlogd-admin.socket virtlogd.service \
virtlockd.socket virtlockd-admin.socket virtlockd.service
%systemd_preun libvirtd.service
%systemd_preun virtlogd.socket virtlogd-admin.socket virtlogd.service
%systemd_preun virtlockd.socket virtlockd-admin.socket virtlockd.service
%else
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册