[libvirt] Refactor libvirt spec file

Matthias Bolte matthias.bolte at googlemail.com
Thu Sep 17 13:23:29 UTC 2009


2009/9/17 Daniel P. Berrange <berrange at redhat.com>:
> The following patch refactors the libvirt spec file conditional
> logic to make it a little easier to manage all the different
> Fedora/RHEL OS build variations, and also allow for easy
> creation of a client-only build
>
> The patch follows, but I'm including the full specfile below
> too, since its easier to understand than the diff
>
> # -*- rpm-spec -*-
>
> # A client only build will create a libvirt.so only containing
> # the generic RPC driver, and test driver and no libvirtd
> # Default to a full server + client build
> %define client_only        0
>
> # Now turn off server build in certain cases
>
> # RHEL-5 builds are client-only for s390, ppc
> %if 0%{?rhel} == 5
> %ifnarch i386 i586 i686 x86_64 ia64
> %define client_only        1
> %endif
> %endif
>
> # Disable all server side drivers if client only build requested
> %if %{client_only}
> %define server_drivers     0
> %else
> %define server_drivers     1
> %endif
>
>
> # Now set the defaults for all the important features, independant
> # of any particular OS
>
> # First the daemon itself
> %define with_libvirtd      0%{!?_without_libvirtd:%{server_drivers}}
> %define with_avahi         0%{!?_without_avahi:%{server_drivers}}
>
> # Then the hypervisor drivers
> %define with_xen           0%{!?_without_xen:%{server_drivers}}
> %define with_xen_proxy     0%{!?_without_xen_proxy:%{server_drivers}}
> %define with_qemu          0%{!?_without_qemu:%{server_drivers}}
> %define with_openvz        0%{!?_without_openvz:%{server_drivers}}
> %define with_lxc           0%{!?_without_lxc:%{server_drivers}}
> %define with_vbox          0%{!?_without_vbox:%{server_drivers}}
> %define with_uml           0%{!?_without_uml:%{server_drivers}}
> %define with_one           0%{!?_without_one:%{server_drivers}}
> %define with_phyp          0%{!?_without_phyp:%{server_drivers}}
> %define with_esx           0%{!?_without_esx:%{server_drivers}}

Technically the phyp and esx drivers are client side drivers, because
they don't rely on libvirtd for their remote communication. If the
phyp and esx drivers are disabled due to a client only build, then the
access to phyp and esx servers (using this client only build) is not
possible, because there is no libvirtd running on phyp and esx servers
a client only libvirt could connect to.

[...]
> %if %{with_phyp}
> BuildRequires: libssh2-devel
> %endif

The build requirement for libssh2-devel should have an explicit check
for version >= 1.0.

I think a build requirement for libcurl is missing here.

%if %{with_esx}
BuildRequires: libcurl-devel > 7.18.0
%endif

Matthias




More information about the libvir-list mailing list