[libvirt] [PATCH] spec: fix logic bug in deciding to turn on cgconfig

Eric Blake eblake at redhat.com
Thu Dec 8 20:38:35 UTC 2011


Commit ecd8725 tried to silence a spurious warning on the initial
libvirt install, and commit ba6cbb1 tried to fix up the logic to the
correct Fedora version, but the warning was still present due to a
logic bug: since %{fedora} and %{rhel} are never simulatanously
set, then 0%{rhel} <= 6 made the %if always true.  Checking for
minimum versions (via >=) is okay, but checking for maximum versions
(via <=) requires a prerequisite test that the platform being tested
is non-zero.

Also fix a bogus setting of with_libxl (although we previously
hard-code with_libxl to 0 for rhel earlier in the file, so this
was not as severe a bug).

* libvirt.spec.in (with_cgconfig): Don't enable cgconfig on F16.

How embarrassing that I've botched this patch twice; I didn't notice
the botch because 'yum reinstall libvirt' is not an initial install,
so it didn't trigger the scriptlet in question.  It took a full
'yum erase libvirt' followed by 'yum install libvirt' to prove this
patch (finally) gets it right.

 libvirt.spec.in |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libvirt.spec.in b/libvirt.spec.in
index 4fe1c6a..72bf641 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -142,7 +142,7 @@

 # Fedora doesn't have new enough Xen for libxl until F16
-%if 0%{?fedora} < 16
+%if 0%{?fedora} && 0%{?fedora} < 16
 %define with_libxl 0

@@ -934,7 +934,7 @@ fi
 %if %{with_cgconfig}
 # Starting with Fedora 16, systemd automounts all cgroups, and cgconfig is
 # no longer a necessary service.
-%if 0%{?fedora} <= 15 || 0%{?rhel} <= 6
+%if 0%{?rhel} || (0%{?fedora} && 0%{?fedora} < 16)
 if [ "$1" -eq "1" ]; then
 /sbin/chkconfig cgconfig on

More information about the libvir-list mailing list