[libvirt] [PATCH] rpm spec cleanup and split off client only requirements
Daniel Veillard
veillard at redhat.com
Mon Jul 20 16:34:26 UTC 2009
This early patch changes the spec file to:
- remove the old Obsoletes: livir and such, that was 3 years ago
- make sure the inter packages require %{version}-%{release} and
not just %{version}
- compresses the ChangeLog which is getting close to a megabyte
- split out a separate libvirt-client binary rpm including only
what is needed to access the libvirt service from a client
viewpioint. The main package requires the client anyway
So I moved in the client:
- the shared library, I guess it's uncontroversial
- the virsh/virt-xml-validate binaries, I guess it it doesn't block
i386/x86_64 to be parallel installable that's fine
- the man pages, obvious based on previous
- the proxy when built, more controversial, it assumes that there
is a service running locally so could be left on the main package
- sasl and policykit data, more controversial, I guess it's better
to associate them with the client
- the schemas to allow checking on the client
Some of this is still open, including the name of the subpackage which I
initially expected to be libvirt-libs but in retrospect maybe -client
will be more in line with the content,
Comments welcome :-)
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
-------------- next part --------------
diff --git a/libvirt.spec.in b/libvirt.spec.in
index a561aad..893aa62 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -76,26 +76,15 @@ Source: libvirt-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
URL: http://libvirt.org/
BuildRequires: python python-devel
-Requires: libxml2
-Requires: readline
-Requires: ncurses
+
+# The client side, i.e. shared libs and virsh are in a subpackage
+Requires: libvirt-client = %{version}-%{release}
+
Requires: dnsmasq
Requires: bridge-utils
Requires: iptables
# needed for device enumeration
Requires: hal
-# 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
%if %{with_storage_fs}
# For mount/umount in FS driver
BuildRequires: util-linux
@@ -186,24 +175,46 @@ BuildRequires: numactl-devel
%if %{with_capng}
BuildRequires: capng-devel >= 0.5.0
%endif
-Obsoletes: libvir
# Fedora build root suckage
BuildRequires: gawk
%description
Libvirt is a C toolkit to interact with the virtualization capabilities
-of recent versions of Linux (and other OSes).
+of recent versions of Linux (and other OSes). The main package includes
+the libvirtd server exporting the virtualization support.
+
+%package client
+Summary: client side library and utilities of the libvirt library
+Group: Development/Libraries
+Requires: libxml2
+Requires: readline
+Requires: ncurses
+# So remote clients can access libvirt over SSH tunnel
+# (client invokes 'nc' against the UNIX socket on the server)
+Requires: nc
+%if %{with_polkit}
+Requires: PolicyKit >= 0.6
+%endif
+%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
+
+%description client
+Shared libraries and client binaries needed to access to the
+virtualization capabilities of recent versions of Linux (and other OSes).
%package devel
Summary: Libraries, includes, etc. to compile with the libvirt library
Group: Development/Libraries
-Requires: libvirt = %{version}
+Requires: libvirt = %{version}-%{release}
Requires: pkgconfig
%if %{with_xen}
Requires: xen-devel
%endif
-Obsoletes: libvir-devel
%description devel
Includes and documentations for the C library providing an API to use
@@ -213,8 +224,7 @@ the virtualization capabilities of recent versions of Linux (and other OSes).
%package python
Summary: Python bindings for the libvirt library
Group: Development/Libraries
-Requires: libvirt = %{version}
-Obsoletes: libvir-python
+Requires: libvirt = %{version}-%{release}
%description python
The libvirt-python package contains a module that permits applications
@@ -322,6 +332,7 @@ of recent versions of Linux (and other OSes).
--with-init-script=redhat \
--with-remote-pid-file=%{_localstatedir}/run/libvirtd.pid
make %{?_smp_mflags}
+gzip -9 ChangeLog
%install
rm -fr %{buildroot}
@@ -399,15 +410,10 @@ fi
%postun
/sbin/ldconfig
-%files -f %{name}.lang
+%files
%defattr(-, root, root)
-%doc AUTHORS ChangeLog NEWS README COPYING.LIB TODO
-%{_mandir}/man1/virsh.1*
-%{_mandir}/man1/virt-xml-validate.1*
-%{_bindir}/virsh
-%{_bindir}/virt-xml-validate
-%{_libdir}/lib*.so.*
+%doc AUTHORS ChangeLog.gz NEWS README COPYING.LIB TODO
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
%if %{with_qemu}
@@ -427,26 +433,12 @@ fi
%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 %{_datadir}/libvirt/
-%dir %{_datadir}/libvirt/schemas/
-
-%{_datadir}/libvirt/schemas/domain.rng
-%{_datadir}/libvirt/schemas/network.rng
-%{_datadir}/libvirt/schemas/storagepool.rng
-%{_datadir}/libvirt/schemas/storagevol.rng
-%{_datadir}/libvirt/schemas/nodedev.rng
-%{_datadir}/libvirt/schemas/capability.rng
-
%dir %{_localstatedir}/run/libvirt/
%dir %{_localstatedir}/lib/libvirt/
@@ -484,18 +476,10 @@ fi
%{_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
-
%if %{with_lxc}
%attr(0755, root, root) %{_libexecdir}/libvirt_lxc
%endif
@@ -507,6 +491,38 @@ fi
%doc docs/*.xml
+%files client -f %{name}.lang
+%defattr(-, root, root)
+%doc AUTHORS ChangeLog.gz NEWS README COPYING.LIB TODO
+
+%{_mandir}/man1/virsh.1*
+%{_mandir}/man1/virt-xml-validate.1*
+%{_bindir}/virsh
+%{_bindir}/virt-xml-validate
+%{_libdir}/lib*.so.*
+
+%if %{with_xen_proxy}
+%attr(4755, root, root) %{_libexecdir}/libvirt_proxy
+%endif
+
+%dir %{_datadir}/libvirt/
+%dir %{_datadir}/libvirt/schemas/
+
+%{_datadir}/libvirt/schemas/domain.rng
+%{_datadir}/libvirt/schemas/network.rng
+%{_datadir}/libvirt/schemas/storagepool.rng
+%{_datadir}/libvirt/schemas/storagevol.rng
+%{_datadir}/libvirt/schemas/nodedev.rng
+%{_datadir}/libvirt/schemas/capability.rng
+
+%if %{with_polkit}
+%{_datadir}/PolicyKit/policy/org.libvirt.unix.policy
+%endif
+
+%if %{with_sasl}
+%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
+%endif
+
%files devel
%defattr(-, root, root)
More information about the libvir-list
mailing list