From 422311ff325cb90f42614ec3bbb99069e8bff58e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 17 Sep 2008 14:09:13 +0000 Subject: [PATCH] libvirt.spec.in: Specfile enhancements for minimal "client only" build (Ben Guthro). --- ChangeLog | 5 +++ libvirt.spec.in | 112 +++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 107 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index faf25bdf3e..ed403ee0c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 17 15:03:00 BST 2008 Richard W.M. Jones + + * libvirt.spec.in: Specfile enhancements for minimal + "client only" build (Ben Guthro). + Wed Sep 17 15:03:00 BST 2008 Richard W.M. Jones * configure.in, src/qemu_driver.h, src/qemu_driver.c: KVM diff --git a/libvirt.spec.in b/libvirt.spec.in index 18b2127ce8..cc5aca56bd 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -1,11 +1,15 @@ # -*- rpm-spec -*- -%define with_xen 1 -%define with_xen_proxy 1 -%define with_qemu 1 -%define with_openvz 1 -%define with_lxc 1 -%define with_polkit 0 +%define with_xen 0%{!?_without_xen:1} +%define with_xen_proxy 0%{!?_without_xen_proxy:1} +%define with_qemu 0%{!?_without_qemu:1} +%define with_openvz 0%{!?_without_openvz:1} +%define with_lxc 0%{!?_without_lxc:1} +%define with_sasl 0%{!?_without_sasl:1} +%define with_avahi 0%{!?_without_avahi:1} +%define with_polkit 0%{!?_without_polkit:0} +%define with_python 0%{!?_without_python:1} +%define with_libvirtd 0%{!?_without_libvirtd:1} # Xen is available only on i386 x86_64 ia64 %ifnarch i386 i686 x86_64 ia64 @@ -23,7 +27,7 @@ %endif %if 0%{fedora} >= 8 -%define with_polkit 1 +%define with_polkit 0%{!?_without_polkit:1} %define with_xen_proxy 0 %endif @@ -46,10 +50,12 @@ Requires: iptables # So remote clients can access libvirt over SSH tunnel # (client invokes 'nc' against the UNIX socket on the server) Requires: nc +%if %{with_sasl} Requires: cyrus-sasl # Not technically required, but makes 'out-of-box' config # work correctly & doesn't have onerous dependencies Requires: cyrus-sasl-md5 +%endif %if %{with_polkit} Requires: PolicyKit >= 0.6 %endif @@ -82,14 +88,18 @@ BuildRequires: readline-devel BuildRequires: ncurses-devel BuildRequires: gettext BuildRequires: gnutls-devel +%if %{with_avahi} BuildRequires: avahi-devel +%endif BuildRequires: libselinux-devel BuildRequires: dnsmasq BuildRequires: bridge-utils %if %{with_qemu} BuildRequires: qemu %endif +%if %{with_sasl} BuildRequires: cyrus-sasl-devel +%endif %if %{with_polkit} BuildRequires: PolicyKit-devel >= 0.6 %endif @@ -133,6 +143,7 @@ Obsoletes: libvir-devel Includes and documentations for the C library providing an API to use the virtualization capabilities of recent versions of Linux (and other OSes). +%if %{with_python} %package python Summary: Python bindings for the libvirt library Group: Development/Libraries @@ -144,6 +155,7 @@ The libvirt-python package contains a module that permits applications written in the Python programming language to use the interface supplied by the libvirt library to use the virtualization capabilities of recent versions of Linux (and other OSes). +%endif %prep %setup -q @@ -165,10 +177,35 @@ of recent versions of Linux (and other OSes). %define _without_lxc --without-lxc %endif +%if ! %{with_sasl} +%define _without_sasl --without-sasl +%endif + +%if ! %{with_avahi} +%define _without_avahi --without-avahi +%endif + +%if ! %{with_polkit} +%define _without_polkit --without-polkit +%endif + +%if ! %{with_python} +%define _without_python --without-python +%endif + +%if ! %{with_libvirtd} +%define _without_libvirtd --without-libvirtd +%endif + %configure %{?_without_xen} \ %{?_without_qemu} \ %{?_without_openvz} \ %{?_without_lxc} \ + %{?_without_sasl} \ + %{?_without_avahi} \ + %{?_without_polkit} \ + %{?_without_python} \ + %{?_without_libvirtd} \ --with-init-script=redhat \ --with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid \ --with-remote-file=%{_localstatedir}/run/libvirtd.pid @@ -190,6 +227,7 @@ install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/lib/libvirt/images/ # Default dir for kernel+initrd images defnied in SELinux policy install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/lib/libvirt/boot/ +%if %{with_qemu} # We don't want to install /etc/libvirt/qemu/networks in the main %files list # because if the admin wants to delete the default network completely, we don't # want to end up re-incarnating it on every RPM upgrade. @@ -200,14 +238,31 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml # Strip auto-generated UUID - we need it generated per-install sed -i -e "//d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml +%endif %find_lang %{name} +# If we are not building with certain options, we need to remove files +# so that we don't get Installed (but unpackaged) errors +rm -rf $RPM_BUILD_ROOT%{_datadir}/gtk-doc/html/libvirt +rm -rf $RPM_BUILD_ROOT%{_includedir}/libvirt +rm -rf $RPM_BUILD_ROOT%{_libdir}/lib*.so +rm -rf $RPM_BUILD_ROOT%{_libdir}/pkgconfig/libvirt.pc + +%if ! %{with_python} +rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-python-%{version} +%endif + +%if ! %{with_qemu} +rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf +%endif + %clean rm -fr %{buildroot} %post /sbin/ldconfig +%if %{with_libvirtd} # We want to install the default network for initial RPM installs # or on the first upgrade from a non-network aware libvirt only. # We check this by looking to see if the daemon is already installed @@ -222,12 +277,15 @@ then fi /sbin/chkconfig --add libvirtd +%endif %preun +%if %{with_libvirtd} if [ $1 = 0 ]; then /sbin/service libvirtd stop 1>/dev/null 2>&1 /sbin/chkconfig --del libvirtd fi +%endif %postun /sbin/ldconfig @@ -240,37 +298,69 @@ fi %{_bindir}/virsh %{_libdir}/lib*.so.* %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/ + +%if %{with_qemu} %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart +%endif + +%if %{with_libvirtd} %{_sysconfdir}/rc.d/init.d/libvirtd %config(noreplace) %{_sysconfdir}/sysconfig/libvirtd %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf +%endif + +%if %{with_qemu} %config(noreplace) %{_sysconfdir}/libvirt/qemu.conf +%endif + +%if %{with_sasl} %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf +%endif + +%if %{with_qemu} %dir %{_datadir}/libvirt/ %dir %{_datadir}/libvirt/networks/ %{_datadir}/libvirt/networks/default.xml +%endif + %dir %{_localstatedir}/run/libvirt/ %dir %{_localstatedir}/lib/libvirt/ %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/images/ %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/boot/ -%{_datadir}/augeas/lenses/libvirtd.aug + +%if %{with_qemu} %{_datadir}/augeas/lenses/libvirtd_qemu.aug -%{_datadir}/augeas/lenses/tests/test_libvirtd.aug %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug +%endif + +%if %{with_libvirtd} +%{_datadir}/augeas/lenses/libvirtd.aug +%{_datadir}/augeas/lenses/tests/test_libvirtd.aug +%endif + %if %{with_polkit} %{_datadir}/PolicyKit/policy/org.libvirt.unix.policy %endif + +%if %{with_qemu} %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/ +%endif + %if %{with_xen_proxy} %attr(4755, root, root) %{_libexecdir}/libvirt_proxy %endif -%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper + %if %{with_lxc} %attr(0755, root, root) %{_libexecdir}/libvirt_lxc %endif + +%if %{with_libvirtd} +%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper %attr(0755, root, root) %{_sbindir}/libvirtd +%endif + %doc docs/*.rng %doc docs/*.xml @@ -290,6 +380,7 @@ fi %doc docs/examples %doc docs/libvirt-api.xml +%if %{with_python} %files python %defattr(-, root, root) @@ -300,6 +391,7 @@ fi %doc python/TODO %doc python/libvirtclass.txt %doc docs/examples/python +%endif %changelog * Mon Sep 8 2008 Daniel Veillard - 0.4.5-1