[libvirt] [PATCH] Push RPM deps down into libvirt-daemon-driver-XXXX sub-RPMs

Daniel P. Berrange berrange at redhat.com
Tue Oct 29 12:16:30 UTC 2013


From: "Daniel P. Berrange" <berrange at redhat.com>

For inexplicable reasons, many of the 3rd party package deps
were left against the 'libvirt-daemon' RPM when the drivers
were split out. This makes a minimal install heavier that
it should be. Push them all down into libvirt-daemon-driver-XXX
so they're only pulled in when truely needed

With this change applied, a minimal install of just the
libvirt-daemon-driver-lxc RPM is reduced by 41 MB on a
Fedora 19 host.

Fedora cloud team has requested that we cut down minimal
libvirt install size as much as is possible. Fixing these
deps is the biggest win without coding work, per:

  https://bugzilla.redhat.com/show_bug.cgi?id=1012198

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 libvirt.spec.in | 135 +++++++++++++++++++++++++++-----------------------------
 1 file changed, 66 insertions(+), 69 deletions(-)

diff --git a/libvirt.spec.in b/libvirt.spec.in
index fb4d46f..48feea5 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -657,31 +657,6 @@ Requires: avahi
 Requires: avahi-libs
         %endif
     %endif
-    %if %{with_network}
-Requires: dnsmasq >= 2.41
-Requires: radvd
-    %endif
-    %if %{with_network} || %{with_nwfilter}
-Requires: iptables
-Requires: iptables-ipv6
-    %endif
-    %if %{with_nwfilter}
-Requires: ebtables
-    %endif
-    %if %{with_netcf} && (0%{?fedora} >= 18 || 0%{?rhel} >= 7)
-Requires: netcf-libs >= 0.2.2
-    %endif
-# needed for device enumeration
-    %if %{with_hal}
-Requires: hal
-    %endif
-    %if %{with_udev}
-        %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
-Requires: systemd >= 185
-        %else
-Requires: udev >= 145
-        %endif
-    %endif
     %if %{with_polkit}
         %if 0%{?fedora} >= 12 || 0%{?rhel} >=6
 Requires: polkit >= 0.93
@@ -689,50 +664,6 @@ Requires: polkit >= 0.93
 Requires: PolicyKit >= 0.6
         %endif
     %endif
-    %if %{with_storage_fs}
-Requires: nfs-utils
-# For mkfs
-Requires: util-linux
-# For glusterfs
-        %if 0%{?fedora} >= 11
-Requires: glusterfs-client >= 2.0.1
-        %endif
-    %endif
-    %if %{with_qemu}
-# From QEMU RPMs
-Requires: /usr/bin/qemu-img
-# For image compression
-Requires: gzip
-Requires: bzip2
-Requires: lzop
-Requires: xz
-    %else
-        %if %{with_xen}
-# From Xen RPMs
-Requires: /usr/sbin/qcow-create
-        %endif
-    %endif
-    %if %{with_storage_lvm}
-# For LVM drivers
-Requires: lvm2
-    %endif
-    %if %{with_storage_iscsi}
-# For ISCSI driver
-Requires: iscsi-initiator-utils
-    %endif
-    %if %{with_storage_disk}
-# For disk driver
-Requires: parted
-Requires: device-mapper
-    %endif
-    %if %{with_storage_mpath}
-# For multipath support
-Requires: device-mapper
-    %endif
-    %if %{with_storage_sheepdog}
-# For Sheepdog support
-Requires: sheepdog
-    %endif
     %if %{with_cgconfig}
 Requires: libcgroup
     %endif
@@ -788,6 +719,10 @@ Network filter configuration files for cleaning guest traffic
 Summary: Network driver plugin for the libvirtd daemon
 Group: Development/Libraries
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: dnsmasq >= 2.41
+Requires: radvd
+Requires: iptables
+Requires: iptables-ipv6
 
 %description daemon-driver-network
 The network driver plugin for the libvirtd daemon, providing
@@ -801,6 +736,9 @@ bridge capabilities.
 Summary: Nwfilter driver plugin for the libvirtd daemon
 Group: Development/Libraries
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: iptables
+Requires: iptables-ipv6
+Requires: ebtables
 
 %description daemon-driver-nwfilter
 The nwfilter driver plugin for the libvirtd daemon, providing
@@ -814,6 +752,17 @@ iptables and ip6tables capabilities
 Summary: Nodedev driver plugin for the libvirtd daemon
 Group: Development/Libraries
 Requires: libvirt-daemon = %{version}-%{release}
+# needed for device enumeration
+            %if %{with_hal}
+Requires: hal
+            %endif
+            %if %{with_udev}
+                %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
+Requires: systemd >= 185
+                %else
+Requires: udev >= 145
+                %endif
+            %endif
 
 %description daemon-driver-nodedev
 The nodedev driver plugin for the libvirtd daemon, providing
@@ -827,6 +776,9 @@ capabilities.
 Summary: Interface driver plugin for the libvirtd daemon
 Group: Development/Libraries
 Requires: libvirt-daemon = %{version}-%{release}
+            %if %{with_netcf} && (0%{?fedora} >= 18 || 0%{?rhel} >= 7)
+Requires: netcf-libs >= 0.2.2
+            %endif
 
 %description daemon-driver-interface
 The interface driver plugin for the libvirtd daemon, providing
@@ -850,6 +802,45 @@ an implementation of the secret key APIs.
 Summary: Storage driver plugin for the libvirtd daemon
 Group: Development/Libraries
 Requires: libvirt-daemon = %{version}-%{release}
+            %if %{with_storage_fs}
+Requires: nfs-utils
+# For mkfs
+Requires: util-linux
+# For glusterfs
+                %if 0%{?fedora} >= 11
+Requires: glusterfs-client >= 2.0.1
+                %endif
+            %endif
+            %if %{with_storage_lvm}
+# For LVM drivers
+Requires: lvm2
+            %endif
+            %if %{with_storage_iscsi}
+# For ISCSI driver
+Requires: iscsi-initiator-utils
+            %endif
+            %if %{with_storage_disk}
+# For disk driver
+Requires: parted
+Requires: device-mapper
+            %endif
+            %if %{with_storage_mpath}
+# For multipath support
+Requires: device-mapper
+            %endif
+            %if %{with_storage_sheepdog}
+# For Sheepdog support
+Requires: sheepdog
+            %endif
+            %if %{with_qemu}
+# From QEMU RPMs
+Requires: /usr/bin/qemu-img
+            %else
+                %if %{with_xen}
+# From Xen RPMs
+Requires: /usr/sbin/qcow-create
+                %endif
+            %endif
 
 %description daemon-driver-storage
 The storage driver plugin for the libvirtd daemon, providing
@@ -865,6 +856,12 @@ Group: Development/Libraries
 Requires: libvirt-daemon = %{version}-%{release}
 # There really is a hard cross-driver dependency here
 Requires: libvirt-daemon-driver-network = %{version}-%{release}
+Requires: /usr/bin/qemu-img
+# For image compression
+Requires: gzip
+Requires: bzip2
+Requires: lzop
+Requires: xz
 
 %description daemon-driver-qemu
 The qemu driver plugin for the libvirtd daemon, providing
-- 
1.8.3.1




More information about the libvir-list mailing list