Re: [PATCH] Revert "spec: Simplify setting features off by default"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2020-10-27 at 14:05 +0100, Andrea Bolognani wrote:
> I'm not convinced reverting this was the right call.
> 
> The way RPM conditional macros work is that, if you have
> 
>   %{!?macro:value}
> 
> that will expand to 'value' if 'macro' is *not* defined, and to
> nothing otherwise. So if you have for example
> 
>   %define with_fuse          0%{!?_without_fuse:0}
> 
> that means that, if you pass
> 
>   --define '_without_fuse 1'
> 
> to rpmbuild the line will expand to
> 
>   %define with_fuse          0
> 
> and if you don't pass the extra option to rpmbuild it will instead
> expand to
> 
>   %define with_fuse          00
> 
> The two are clearly equivalent, so there is no point in keeping the 
> conditional macro - it merely obfuscates the logic.
> 
> Of course things would be different if you had
> 
>   %define with_fuse          0%{!?_without_fuse:1}
> 
> instead: in this case, the line would expand to
> 
>   %define with_fuse          0
> 
> and
> 
>   %define with_fuse          01
> 
> respectively, which means the feature would be enabled by default but
> could optionally be disabled by passing the correct argument to
> rpmbuild, as expected. We have plenty similar macros in libvirt.spec,
> and since they work just as intended 31d687a3218c didn't touch them.
> 
> Note that in this case I've removed
> 
>   # fuse is used to provide virtualized /proc for LXC
>   %if %{with_lxc}
>       %define with_fuse      0%{!?_without_fuse:1}
>   %endif
> 
> from the spec to make sure that the value for the 'fuse' option
> passed to Meson depended solely on the value of the _without_fuse
> macro, and then checked the rpmbuild output to compare.

Also note that I'm aware you want to eventually push for adoption of
the standard bcond macros, and I fully stand behind that desire! If
this patch had been the first in a series that introduced bcond
support and was clearing the path for that, I would have zero
problems with it. As it is, however, you're simply reintroducing some
of the obfuscation we had recently managed to get rid of, without
getting anything in return.

-- 
Andrea Bolognani / Red Hat / Virtualization




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux