[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