On 03/20/2018 01:00 PM, Daniel P. Berrangé wrote: > 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. I forgot to ask this in the previous message - would it be reasonable to have a syntax-check rule that forbid any line in libvirt.spec.in that started with "<whitespace>%" and ended with \ ? (Personally I had no idea of this rule, and I'm sure most others didn't either). > > Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx> > --- > libvirt.spec.in | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/libvirt.spec.in b/libvirt.spec.in > index bc8257f34b..6bf8368476 100644 > --- a/libvirt.spec.in > +++ b/libvirt.spec.in > @@ -1512,9 +1512,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 > @@ -1549,9 +1549,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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list