
On Thu, Sep 17, 2009 at 03:23:29PM +0200, Matthias Bolte wrote:
2009/9/17 Daniel P. Berrange <berrange@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.
Good point - I'll make them toggle independantly on the 'server_drivers' flag.
[...]
%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
I think that's pulled in to the build roots automatically, but there's no harm in adding an explicit requires too. Daniel. -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|