[libvirt] Refactor libvirt spec file

Daniel P. Berrange berrange at redhat.com
Thu Sep 17 13:33:53 UTC 2009


On Thu, Sep 17, 2009 at 03:23:29PM +0200, Matthias Bolte wrote:
> 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.

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 :|




More information about the libvir-list mailing list