On Tue, 2018-03-20 at 13:54 -0400, Laine Stump wrote: > 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. > > Introduced in commit bffdd6c3034164127b1543ffd2e9ed599baf4838, present > in released libvirt-4.1.0. > > > This is going to be problematic for any rpm-based distro that has a > 4.1.0 rpm, e.g. Fedora rawhide and F28 - if someone has updated to the > broken rpm, they won't be able to get rid of it with a plain update, and > dnf has no command that passes through the necessary --nopreun command > to rpm. Instead, they'll need to run rpm manually - "rpm --nopreun blah > blah". > > If there is already a 4.1.0-maint branch, we should pull this patch back > to there, and think about how to notify the poor F28/rawhide users of > their predicament (hopefully there aren't too many, as F28 isn't yet > released) IIUC Fedora and other distributions each have their own spec file which, while probably derived from and for the most part identical to the upstream one, is actually maintained separately. Assuming the above is correct, I'd argue the fix is possibly not even worth backporting to the maintenance branch. The downstream maintainers, on the other hand, should definitely be notified of the issue so that they can make sure their own spec files are not affected by it. -- Andrea Bolognani / Red Hat / Virtualization -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list