[libvirt PATCH 1/1] libvirt.spec.in: Replace %global with %define
Michal Prívozník
mprivozn at redhat.com
Thu Sep 23 08:06:10 UTC 2021
On 9/21/21 7:30 PM, Erik Skultety wrote:
> Commit b5e8db8f14d tuned the SPEC file so that libvirt daemons restart
> on package upgrade. In order to do that it added a bunch of
> parametrized macros using the %global directive. This caused a problem
> when running RPM builds on CentOS Stream 8 resulting in:
>
> error: Too many levels of recursion in macro expansion. It is likely
> caused by recursive macro declaration.
> error: Macro %libvirt_daemon_perform_restart failed to expand
> error: line 1275: %global libvirt_daemon_perform_restart() \
> if test %libvirt_daemon_needs_restart %1 \
> then \
> /bin/systemctl try-restart %1.service >/dev/null 2>&1 || : \
> fi \
> %libvirt_daemon_finish_restart %1
>
> There are 2 important differences between %global and %define
> directives:
> 1) %define is local-only and does have scope - in reality though, its
> scope is apparently not really enforced because it behaves exactly
> the same way as %global
> 2) %define is evaluated at the of use while %global is evaluated at the
> time of definition
>
> The latter and the fact the macro is parametrized is the reason why the
> RPM builds fails on CentOS. Strangely enough this only happens on
> CentOS Stream, but not Fedora (which is also the main proponent of
> replacing %define with %global). Anyhow, replacing %global with %define
> makes the rpmbuild to pass on both and along with package upgrades.
>
> Signed-off-by: Erik Skultety <eskultet at redhat.com>
> ---
> libvirt.spec.in | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
Reviewed-by: Michal Privoznik <mprivozn at redhat.com>
Michal
More information about the libvir-list
mailing list