[libvirt PATCH v2 9/9] spec: Introduce arches_*

Andrea Bolognani abologna at redhat.com
Fri Oct 9 09:25:46 UTC 2020

With this commit, all architecture lists that we base feature
enablement decisions on are defined within a few lines of each
other, increasing maintainability.

Additionally, generic architecture lists that appear in the
conditions for multiple features are defined, so that repetition
is reduced.

Note that a few checks (numactl, zfs, ceph) have been changed
from %ifarch to %ifnarch for consistency: while doing so, the
corresponding list of architectures has also been replaced with
the complement of the original one to ensure the overall behavior
would be preserved.

Signed-off-by: Andrea Bolognani <abologna at redhat.com>
 libvirt.spec.in | 48 ++++++++++++++++++++++++++----------------------
 1 file changed, 26 insertions(+), 22 deletions(-)

diff --git a/libvirt.spec.in b/libvirt.spec.in
index a0cd5ce5af..cbcf7dcc60 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -17,18 +17,30 @@
     %define _vpath_builddir %{_target_platform}
-%define qemu_kvm_arches         %{ix86} x86_64 %{power64} %{arm} aarch64 s390x
+%define arches_qemu_kvm         %{ix86} x86_64 %{power64} %{arm} aarch64 s390x
 %if 0%{?rhel}
-    %define qemu_kvm_arches     x86_64 %{power64} aarch64 s390x
+    %define arches_qemu_kvm     x86_64 %{power64} aarch64 s390x
+%define arches_64bit            x86_64 %{power64} aarch64 s390x riscv64
+%define arches_x86              %{ix86} x86_64
+%define arches_systemtap_64bit  %{arches_64bit}
+%define arches_dmidecode        %{arches_x86}
+%define arches_xen              %{arches_x86} aarch64
+%define arches_vbox             %{arches_x86}
+%define arches_ceph             %{arches_64bit}
+%define arches_zfs              %{arches_x86} %{power64} %{arm}
+%define arches_numactl          %{arches_x86} %{power64} aarch64
+%define arches_numad            %{arches_x86} %{power64} aarch64
 # The hypervisor drivers that run in libvirtd
 %define with_qemu          0%{!?_without_qemu:1}
 %define with_lxc           0%{!?_without_lxc:1}
 %define with_libxl         0%{!?_without_libxl:1}
 %define with_vbox          0%{!?_without_vbox:1}
-%ifarch %{qemu_kvm_arches}
+%ifarch %{arches_qemu_kvm}
     %define with_qemu_kvm      %{with_qemu}
     %define with_qemu_kvm      0
@@ -60,7 +72,7 @@
 %define with_storage_gluster 0%{!?_without_storage_gluster:1}
-%ifnarch %{qemu_kvm_arches}
+%ifnarch %{arches_qemu_kvm}
     # gluster is only built where qemu driver is enabled on RHEL 8
     %if 0%{?rhel} >= 8
         %define with_storage_gluster 0
@@ -97,28 +109,20 @@
 # Finally set the OS / architecture specific special cases
-# Xen is available only on some architectures
-%ifnarch %{ix86} x86_64 aarch64
+# Architecture-dependent features
+%ifnarch %{arches_xen}
     %define with_libxl 0
-# vbox is available only on i386 x86_64
-%ifnarch %{ix86} x86_64
+%ifnarch %{arches_vbox}
     %define with_vbox 0
-# Numactl is not available on many non-x86 archs
-%ifarch s390x %{arm} riscv64
+%ifnarch %{arches_numactl}
     %define with_numactl 0
-# zfs-fuse is not available on some architectures
-%ifarch s390x aarch64 riscv64
+%ifnarch %{arches_zfs}
     %define with_storage_zfs 0
-# Ceph dropped support for 32-bit hosts
-%ifarch %{arm} %{ix86}
+%ifnarch %{arches_ceph}
     %define with_storage_rbd 0
@@ -154,7 +158,7 @@
     %define with_sanlock 0%{!?_without_sanlock:1}
 %if 0%{?rhel}
-    %ifarch %{qemu_kvm_arches}
+    %ifarch %{arches_qemu_kvm}
         %define with_sanlock 0%{!?_without_sanlock:1}
@@ -178,12 +182,12 @@
 %if %{with_qemu} || %{with_lxc}
 # numad is used to manage the CPU and memory placement dynamically,
 # it's not available on many non-x86 architectures.
-    %ifnarch s390x %{arm} riscv64
+    %ifnarch %{arches_numad}
         %define with_numad    0%{!?_without_numad:1}
-%ifarch %{ix86} x86_64
+%ifarch %{arches_dmidecode}
     %define with_dmidecode 0%{!?_without_dmidecode:1}
@@ -1256,7 +1260,7 @@ rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
 # Copied into libvirt-docs subpackage eventually
 mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt libvirt-docs
-%ifarch %{power64} s390x x86_64 aarch64 riscv64
+%ifarch %{arches_systemtap_64bit}
 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes.stp \

More information about the libvir-list mailing list