diff --git a/docs/packaging.html.in b/docs/packaging.html.in deleted file mode 100644 index 0adffd3b26..0000000000 --- a/docs/packaging.html.in +++ /dev/null @@ -1,106 +0,0 @@ - - - -

Distribution packaging

- - - -

- This page describes the rationale behind the libvirt distribution -packaging in RPM format. The RPM specfile provided with libvirt targets -all Fedora and RHEL releases. It is split up into a number of sub-RPMs -in order to facilitate minimal installations, targetting specific -feature sets. -

- -

Real packages

- -

- The so called "real" packages provide the actual file payloads - related to libvirt. If very specific / targetted functionality - is required, then applications can depend on one or more of these - real packages. -

- -
-
libvirt-client
-
This package provides the main libvirt.so library along with - the virsh command line tool. If a C based application only wants - to be able to manage remote hypervisors, this is all that they - need depend on
-
libvirt-devel
-
This package provides the header files and libraries required - to compile and link C applications using libvirt
-
libvirt-python
-
This package provides the Python binding to the C libraries. - It will pull in the libvirt-client RPM. If a Python application - only wants to be able to manage remote hypervisors, this is all - that they need depend on
-
libvirt-daemon
-
This package provides server side libvirtd daemon, which is - required in order to manage any stateful hypervisors (currently - QEMU, KVM, Xen, LXC and UML).
-
libvirt-daemon-config-network
-
This package provides the standard configuration files for - setting up a NAT based network
-
libvirt-daemon-config-nwfilter
-
This package provides the standard configuration files for - network filter rules for ensuring clean VM traffic.
-
- -

Virtual packages

- -

- The virtual packages provide convenient targets for application dependencies to - pull in functionality related to specific hypervisors. Since the packaging of - the libvirt-daemon RPM is expected to change in the future to split - each hypervisor driver out into a separate RPM, applications are strongly - recommended to depend on one of the following virtual packages, instead of - depending directly on libvirt-daemon -

- -
-
libvirt
-
This package, simply pulls in every single other server side RPM. - If an application wants to ensure all possible libvirt drivers are installed, - this is what they should depend on
- -
libvirt-daemon-qemu
-
This package pulls in the server side daemon, drivers and the QEMU TCG binaries - required to provide emulation of non-native architectures
-
libvirt-daemon-kvm
-
This package pulls in the server side daemon, drivers and the KVM binaries - required to provide hardware accelerated virtualization of the native - architectures
-
libvirt-daemon-lxc
-
This package pulls in the server side daemon and drivers required to - run native Linux containers
-
libvirt-daemon-uml
-
This package pulls in the server side daemon and drivers required to - run User Mode Linux. The application must still provide the actual - UML binary kernels
-
libvirt-daemon-xen
-
This package pulls in the server side daemon and drivers required to - run guests on the Xen hypervisor.
- -
libvirt-qemu
-
This package pulls in the server side daemon, drivers and the QEMU TCG binaries - required to provide emulation of non-native architectures
-
libvirt-kvm
-
This package pulls in the server side daemon, drivers and the KVM binaries - required to provide hardware accelerated virtualization of the native - architectures
-
libvirt-lxc
-
This package pulls in the server side daemon, drivers and default - configuration files required to run native Linux containers
-
libvirt-uml
-
This package pulls in the server side daemon, drivers and default - configuration files required to run User Mode Linux. The application - must still provide the actual UML binary kernels
-
libvirt-xen
-
This package pulls in the server side daemon, drivers and default - configuration files required to run guests on the Xen hypervisor.
-
- - - diff --git a/docs/sitemap.html.in b/docs/sitemap.html.in index 620c98997a..1de2b20c1b 100644 --- a/docs/sitemap.html.in +++ b/docs/sitemap.html.in @@ -84,10 +84,6 @@ Hooks Hooks for system specific management -
  • - Distribution packaging - Rationale for distribution RPM packaging -
  • diff --git a/examples/xml/nwfilter/Makefile.am b/examples/xml/nwfilter/Makefile.am index c503682bb8..12a36198cb 100644 --- a/examples/xml/nwfilter/Makefile.am +++ b/examples/xml/nwfilter/Makefile.am @@ -22,7 +22,6 @@ FILTERS = \ EXTRA_DIST=$(FILTERS) -if WITH_NWFILTER confdir = $(sysconfdir)/libvirt NWFILTER_DIR = "$(DESTDIR)$(sysconfdir)/libvirt/nwfilter" @@ -38,4 +37,3 @@ uninstall-local:: rm -f "$(NWFILTER_DIR)/$$f"; \ done -test -z $(shell ls $(NWFILTER_DIR)) || rmdir $(NWFILTER_DIR) -endif diff --git a/libvirt.spec.in b/libvirt.spec.in index b787fde172..91da6e5962 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -52,14 +52,6 @@ %define with_libxl 0%{!?_without_libxl:%{server_drivers}} %define with_vmware 0%{!?_without_vmware:%{server_drivers}} -%define with_qemu_tcg %{with_qemu} -# Change if we ever provide qemu-kvm binaries on non-x86 hosts -%ifarch %{ix86} x86_64 -%define with_qemu_kvm %{with_qemu} -%else -%define with_qemu_kvm 0 -%endif - # Then the hypervisor drivers that talk via a native remote protocol %define with_phyp 0%{!?_without_phyp:1} %define with_esx 0%{!?_without_esx:1} @@ -133,10 +125,8 @@ # RHEL-5 has restricted QEMU to x86_64 only and is too old for LXC %if 0%{?rhel} == 5 -%define with_qemu_tcg 0 %ifnarch x86_64 %define with_qemu 0 -%define with_qemu_kvm 0 %endif %define with_lxc 0 %endif @@ -144,10 +134,8 @@ # RHEL-6 has restricted QEMU to x86_64 only, stopped including Xen # on all archs. Other archs all have LXC available though %if 0%{?rhel} >= 6 -%define with_qemu_tcg 0 %ifnarch x86_64 %define with_qemu 0 -%define with_qemu_kvm 0 %endif %define with_xen 0 %endif @@ -218,13 +206,10 @@ %define with_storage_disk 0 %endif -%if %{with_qemu} || %{with_lxc} || %{with_uml} +%if %{with_qemu} %define with_nwfilter 0%{!?_without_nwfilter:%{server_drivers}} # Enable libpcap library %define with_libpcap 0%{!?_without_libpcap:%{server_drivers}} -%endif - -%if %{with_qemu} %define with_macvtap 0%{!?_without_macvtap:%{server_drivers}} # numad is used to manage the CPU placement dynamically, @@ -283,22 +268,109 @@ Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root URL: http://libvirt.org/ +# All runtime requirements for the libvirt package (runtime requrements +# for subpackages are listed later in those subpackages) + +# The client side, i.e. shared libs and virsh are in a subpackage +Requires: %{name}-client = %{version}-%{release} + +# Used by many of the drivers, so turn it on whenever the +# daemon is present %if %{with_libvirtd} -Requires: libvirt-daemon = %{version}-%{release} +# for modprobe of pci devices +Requires: module-init-tools +# for /sbin/ip & /sbin/tc +Requires: iproute +%if %{with_avahi} +Requires: avahi-libs +%endif +%endif %if %{with_network} -Requires: libvirt-daemon-config-network = %{version}-%{release} +Requires: dnsmasq >= 2.41 +Requires: radvd +%endif +%if %{with_network} || %{with_nwfilter} +Requires: iptables +Requires: iptables-ipv6 %endif %if %{with_nwfilter} -Requires: libvirt-daemon-config-nwfilter = %{version}-%{release} +Requires: ebtables %endif -# XXX when we turn on driver modules, we need to add -# deps on each driver (Requires: libvirt-daemon-drv-qemu) +# needed for device enumeration +%if %{with_hal} +Requires: hal +%endif +%if %{with_udev} +Requires: udev >= 145 +%endif +%if %{with_polkit} +%if 0%{?fedora} >= 12 || 0%{?rhel} >=6 +Requires: polkit >= 0.93 +%else +Requires: PolicyKit >= 0.6 +%endif +%endif +%if %{with_storage_fs} +Requires: nfs-utils +# For mkfs +Requires: util-linux-ng +# For pool-build probing for existing pools +BuildRequires: libblkid-devel >= 2.17 +# 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_cgconfig} +Requires: libcgroup +%endif +%ifarch %{ix86} x86_64 ia64 +# For virConnectGetSysinfo +Requires: dmidecode +%endif +# For service management +%if %{with_systemd} +Requires(post): systemd-units +Requires(post): systemd-sysv +Requires(preun): systemd-units +Requires(postun): systemd-units +%endif +%if %{with_numad} +Requires: numad %endif -Requires: libvirt-docs = %{version}-%{release} -Requires: libvirt-client = %{version}-%{release} -# All build-time requirements. Run-time requirements are -# listed against each sub-RPM +# All build-time requirements %if 0%{?enable_autotools} BuildRequires: autoconf BuildRequires: automake @@ -465,275 +537,6 @@ Libvirt is a C toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes). The main package includes the libvirtd server exporting the virtualization support. -%package docs -Summary: Documentation for libvirt library and daemon -Group: Development/Libraries - -%description docs -Copy of the libvirt website documentation - -%if %{with_libvirtd} -%package daemon -Summary: Server side daemon and supporting files for libvirt library -Group: Development/Libraries - -# All runtime requirements for the libvirt package (runtime requrements -# for subpackages are listed later in those subpackages) - -# The client side, i.e. shared libs and virsh are in a subpackage -Requires: %{name}-client = %{version}-%{release} - -# for modprobe of pci devices -Requires: module-init-tools -# for /sbin/ip & /sbin/tc -Requires: iproute -%if %{with_avahi} -Requires: avahi-libs -%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 -# needed for device enumeration -%if %{with_hal} -Requires: hal -%endif -%if %{with_udev} -Requires: udev >= 145 -%endif -%if %{with_polkit} -%if 0%{?fedora} >= 12 || 0%{?rhel} >=6 -Requires: polkit >= 0.93 -%else -Requires: PolicyKit >= 0.6 -%endif -%endif -%if %{with_storage_fs} -Requires: nfs-utils -# For mkfs -Requires: util-linux-ng -# For pool-build probing for existing pools -BuildRequires: libblkid-devel >= 2.17 -# 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_cgconfig} -Requires: libcgroup -%endif -%ifarch %{ix86} x86_64 ia64 -# For virConnectGetSysinfo -Requires: dmidecode -%endif -# For service management -%if %{with_systemd} -Requires(post): systemd-units -Requires(post): systemd-sysv -Requires(preun): systemd-units -Requires(postun): systemd-units -%endif -%if %{with_numad} -Requires: numad -%endif - -%description daemon -Server side daemon required to manage the virtualization capabilities -of recent versions of Linux. Requires a hypervisor specific sub-RPM -for specific drivers. - -%if %{with_network} -%package daemon-config-network -Summary: Default configuration files for the libvirtd daemon -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} - -%description daemon-config-network -Default configuration files for setting up NAT based networking -%endif - -%if %{with_nwfilter} -%package daemon-config-nwfilter -Summary: Network filter configuration files for the libvirtd daemon -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} - -%description daemon-config-nwfilter -Network filter configuration files for cleaning guest traffic -%endif - -# XXX when we turn on driver modules, we will need to -# create daemon-drv-XXX sub-RPMs and add them as deps -# to all of the following daemon-XXX RPMs - -%if %{with_qemu_tcg} -%package daemon-qemu -Summary: Server side daemon & driver required to run QEMU guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: qemu - -%description daemon-qemu -Server side daemon and driver required to manage the virtualization -capabilities of the QEMU TCG emulators - -%package qemu -Summary: Server side daemon, driver & default configs required to run QEMU guests -Group: Development/Libraries - -Requires: libvirt-daemon-qemu = %{version}-%{release} -Requires: libvirt-daemon-config-network = %{version}-%{release} -Requires: libvirt-daemon-config-nwfilter = %{version}-%{release} - -%description qemu -Server side daemon, driver and default network & firewall configs -required to manage the virtualization capabilities of QEMU. -%endif - - -%if %{with_qemu_kvm} -%package daemon-kvm -Summary: Server side daemon & driver required to run QEMU guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: qemu-kvm - -%description daemon-kvm -Server side daemon and driver required to manage the virtualization -capabilities of the QEMU KVM hypervisor - -%package kvm -Summary: Server side daemon, driver & default configs required to run KVM guests -Group: Development/Libraries - -Requires: libvirt-daemon-kvm = %{version}-%{release} -Requires: libvirt-daemon-config-network = %{version}-%{release} -Requires: libvirt-daemon-config-nwfilter = %{version}-%{release} - -%description kvm -Server side daemon, driver and default network & firewall configs -required to manage the virtualization capabilities of KVM. -%endif - - -%if %{with_lxc} -%package daemon-lxc -Summary: Server side daemon & driver required to run LXC guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} - -%description daemon-lxc -Server side daemon and driver required to manage the virtualization -capabilities of LXC - -%package lxc -Summary: Server side daemon, driver & default configs required to run LXC guests -Group: Development/Libraries - -Requires: libvirt-daemon-lxc = %{version}-%{release} -Requires: libvirt-daemon-config-network = %{version}-%{release} -Requires: libvirt-daemon-config-nwfilter = %{version}-%{release} - -%description lxc -Server side daemon, driver and default network & firewall configs -required to manage the virtualization capabilities of LXC. -%endif - - -%if %{with_uml} -%package daemon-uml -Summary: Server side daemon & driver required to run UML guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -# There are no UML kernel RPMs in Fedora/RHEL to depend on. - -%description daemon-uml -Server side daemon and driver required to manage the virtualization -capabilities of UML - -%package uml -Summary: Server side daemon, driver & default configs required to run UML guests -Group: Development/Libraries - -Requires: libvirt-daemon-uml = %{version}-%{release} -Requires: libvirt-daemon-config-network = %{version}-%{release} -Requires: libvirt-daemon-config-nwfilter = %{version}-%{release} - -%description uml -Server side daemon, driver and default network & firewall configs -required to manage the virtualization capabilities of UML. -%endif - - -%if %{with_xen} -%package daemon-xen -Summary: Server side daemon & driver required to run XEN guests -Group: Development/Libraries - -Requires: libvirt-daemon = %{version}-%{release} -Requires: xen - -%description daemon-xen -Server side daemon and driver required to manage the virtualization -capabilities of XEN - -%package xen -Summary: Server side daemon, driver & default configs required to run XEN guests -Group: Development/Libraries - -Requires: libvirt-daemon-xen = %{version}-%{release} -Requires: libvirt-daemon-config-network = %{version}-%{release} - -%description xen -Server side daemon, driver and default network & firewall configs -required to manage the virtualization capabilities of Xen. -%endif -%endif - %package client Summary: Client side library and utilities of the libvirt library Group: Development/Libraries @@ -779,7 +582,7 @@ Group: Development/Libraries Requires: sanlock >= 1.8 #for virt-sanlock-cleanup require augeas Requires: augeas -Requires: %{name}-daemon = %{version}-%{release} +Requires: %{name} = %{version}-%{release} %description lock-sanlock Includes the Sanlock lock manager plugin for the QEMU @@ -1071,9 +874,6 @@ rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml %endif -mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-%{version} \ - $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-docs-%{version} - %clean rm -fr %{buildroot} @@ -1088,8 +888,7 @@ do done make check -%if %{with_libvirtd} -%pre daemon +%pre %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 # Normally 'setup' adds this in /etc/passwd, but this is # here for case of upgrades from earlier Fedora/RHEL. This @@ -1101,9 +900,22 @@ getent passwd qemu >/dev/null || \ -c "qemu user" qemu %endif -%post daemon +%post +%if %{with_libvirtd} %if %{with_network} +# 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 +if ! /sbin/chkconfig libvirtd && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml +then + UUID=`/usr/bin/uuidgen` + sed -e "s,,\n $UUID," \ + < %{_datadir}/libvirt/networks/default.xml \ + > %{_sysconfdir}/libvirt/qemu/networks/default.xml + ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml +fi + # All newly defined networks will have a mac address for the bridge # auto-generated, but networks already existing at the time of upgrade # will not. We need to go through all the network configs, look for @@ -1169,8 +981,8 @@ fi %endif %endif +%preun %if %{with_libvirtd} -%preun daemon %if %{with_systemd} if [ $1 -eq 0 ] ; then # Package removal, not upgrade @@ -1185,8 +997,8 @@ fi %endif %endif +%postun %if %{with_libvirtd} -%postun daemon %if %{with_systemd} /bin/systemctl daemon-reload >/dev/null 2>&1 || : if [ $1 -ge 1 ] ; then @@ -1196,20 +1008,6 @@ fi %endif %endif -%if %{with_libvirtd} -%if %{with_network} -%post daemon-config-network -if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then - UUID=`/usr/bin/uuidgen` - sed -e "s,,\n $UUID," \ - < %{_datadir}/libvirt/networks/default.xml \ - > %{_sysconfdir}/libvirt/qemu/networks/default.xml - ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml -fi -%endif -%endif - - %if %{with_libvirtd} %if %{with_systemd} %triggerun -- libvirt < 0.9.4 @@ -1256,17 +1054,8 @@ fi /bin/systemctl try-restart libvirt-guests.service >/dev/null 2>&1 || : %endif -%files -%defattr(-, root, root) - -%files docs -%defattr(-, root, root) -%dir %{_datadir}/doc/libvirt-docs-%{version} -%dir %{_datadir}/doc/libvirt-docs-%{version}/html -%{_datadir}/doc/libvirt-docs-%{version}/html/* - %if %{with_libvirtd} -%files daemon +%files %defattr(-, root, root) %doc AUTHORS ChangeLog.gz NEWS README COPYING.LIB TODO @@ -1279,6 +1068,7 @@ fi %endif %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/ +%{_sysconfdir}/libvirt/nwfilter/*.xml %{_sysconfdir}/rc.d/init.d/libvirtd %if %{with_systemd} @@ -1386,67 +1176,6 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/sysctl.d/libvirtd %{_mandir}/man8/libvirtd.8* %doc docs/*.xml - -%if %{with_network} -%files daemon-config-network -%defattr(-, root, root) -%endif - -%if %{with_nwfilter} -%files daemon-config-nwfilter -%defattr(-, root, root) -%{_sysconfdir}/libvirt/nwfilter/*.xml -%endif - -%if %{with_qemu_tcg} -%files daemon-qemu -%defattr(-, root, root) -%endif - -%if %{with_qemu_kvm} -%files daemon-kvm -%defattr(-, root, root) -%endif - -%if %{with_lxc} -%files daemon-lxc -%defattr(-, root, root) -%endif - -%if %{with_uml} -%files daemon-uml -%defattr(-, root, root) -%endif - -%if %{with_xen} -%files daemon-xen -%defattr(-, root, root) -%endif - -%if %{with_qemu_tcg} -%files qemu -%defattr(-, root, root) -%endif - -%if %{with_qemu_kvm} -%files kvm -%defattr(-, root, root) -%endif - -%if %{with_lxc} -%files lxc -%defattr(-, root, root) -%endif - -%if %{with_uml} -%files uml -%defattr(-, root, root) -%endif - -%if %{with_xen} -%files xen -%defattr(-, root, root) -%endif %endif %if %{with_sanlock}