mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-30 11:25:47 +00:00
Refactor the libvirt RPM daemon pieces
There are a number of flaws with our packaging of the libvirtd daemon: - Installing 'libvirt' does not install 'qemu-kvm' or 'xen' etc which are required to actually run the hypervisor in question - Installing 'libvirt' pulls in the default configuration files which may not be wanted & cause problems if installed inside a guest - It is not possible to explicitly required all the peices required to manage a specific hypervisor This change takes the 'libvirt' RPM and and changes it thus - libvirt: just a virtual package with dep on libvirt-daemon, libvirt-daemon-config-network & libvirt-daemon-config-nwfilter - libvirt-daemon: the libvirt daemon and related pieces - libvirt-daemon-config-network: the default network config - libvirt-daemon-config-nwfilter: the network filter configs - libvirt-docs: the website HTML We then introduce some more virtual (empty) packages - libvirt-daemon-qemu: Deps on libvirt-daemon & 'qemu' - libvirt-daemon-kvm: Deps on libvirt-daemon & 'qemu-kvm' - libvirt-daemon-lxc: Deps on libvirt-daemon - libvirt-daemon-uml: Deps on libvirt-daemon - libvirt-daemon-xen: Deps on libvirt-daemon & 'xen' - libvirt-qemu: Deps on libvirt-daemon-qemu & libvirt-daemon-config-{network,nwfilter} - libvirt-kvm: Deps on libvirt-daemon-kvm & libvirt-daemon-config-{network,nwfilter} - libvirt-lxc: Deps on libvirt-daemon-lxc & libvirt-daemon-config-{network,nwfilter} - libvirt-uml: Deps on libvirt-daemon-uml & libvirt-daemon-config-{network,nwfilter} - libvirt-xen: Deps on libvirt-daemon-xen & libvirt-daemon-config-network My intent in the future is to turn on the driver modules by default, at which time 'libvirt-daemon' will cease to include any specific drivers, instead we'll get libvirt-daemon-driver-XXXX packages for each driver. The libvirt-daemon-XXX packages will then pull in each driver that they require. It is recommended that applications required a locally installed libvirtd daemon, use either 'Requires: libvirt-daemon-XXXX' or 'Requires: libvirt-XXX' and *not* "Requires: libvirt-daemon" or 'Requires: libvirt' * libvirt.spec.in: Refactor RPMs * docs/packaging.html.in, docs/sitemap.html.in: Document new RPM split rationale
This commit is contained in:
parent
2711ac8716
commit
06a0d57f5a
106
docs/packaging.html.in
Normal file
106
docs/packaging.html.in
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<h1>Distribution packaging</h1>
|
||||||
|
|
||||||
|
<ul id="toc"></ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2><a name="real">Real packages</a></h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>libvirt-client</dt>
|
||||||
|
<dd>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</dd>
|
||||||
|
<dt>libvirt-devel</dt>
|
||||||
|
<dd>This package provides the header files and libraries required
|
||||||
|
to compile and link C applications using libvirt</dd>
|
||||||
|
<dt>libvirt-python</dt>
|
||||||
|
<dd>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</dd>
|
||||||
|
<dt>libvirt-daemon</dt>
|
||||||
|
<dd>This package provides server side libvirtd daemon, which is
|
||||||
|
required in order to manage any stateful hypervisors (currently
|
||||||
|
QEMU, KVM, Xen, LXC and UML).</dd>
|
||||||
|
<dt>libvirt-daemon-config-network</dt>
|
||||||
|
<dd>This package provides the standard configuration files for
|
||||||
|
setting up a NAT based network</dd>
|
||||||
|
<dt>libvirt-daemon-config-nwfilter</dt>
|
||||||
|
<dd>This package provides the standard configuration files for
|
||||||
|
network filter rules for ensuring clean VM traffic.</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<h2><a name="virtual">Virtual packages</a></h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The virtual packages provide convenient targets for application dependencies to
|
||||||
|
pull in functionality related to specific hypervisors. Since the packaging of
|
||||||
|
the <code>libvirt-daemon</code> 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 <code>libvirt-daemon</code>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>libvirt</dt>
|
||||||
|
<dd>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</dd>
|
||||||
|
|
||||||
|
<dt>libvirt-daemon-qemu</dt>
|
||||||
|
<dd>This package pulls in the server side daemon, drivers and the QEMU TCG binaries
|
||||||
|
required to provide emulation of non-native architectures</dd>
|
||||||
|
<dt>libvirt-daemon-kvm</dt>
|
||||||
|
<dd>This package pulls in the server side daemon, drivers and the KVM binaries
|
||||||
|
required to provide hardware accelerated virtualization of the native
|
||||||
|
architectures</dd>
|
||||||
|
<dt>libvirt-daemon-lxc</dt>
|
||||||
|
<dd>This package pulls in the server side daemon and drivers required to
|
||||||
|
run native Linux containers</dd>
|
||||||
|
<dt>libvirt-daemon-uml</dt>
|
||||||
|
<dd>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</dd>
|
||||||
|
<dt>libvirt-daemon-xen</dt>
|
||||||
|
<dd>This package pulls in the server side daemon and drivers required to
|
||||||
|
run guests on the Xen hypervisor.</dd>
|
||||||
|
|
||||||
|
<dt>libvirt-qemu</dt>
|
||||||
|
<dd>This package pulls in the server side daemon, drivers and the QEMU TCG binaries
|
||||||
|
required to provide emulation of non-native architectures</dd>
|
||||||
|
<dt>libvirt-kvm</dt>
|
||||||
|
<dd>This package pulls in the server side daemon, drivers and the KVM binaries
|
||||||
|
required to provide hardware accelerated virtualization of the native
|
||||||
|
architectures</dd>
|
||||||
|
<dt>libvirt-lxc</dt>
|
||||||
|
<dd>This package pulls in the server side daemon, drivers and default
|
||||||
|
configuration files required to run native Linux containers</dd>
|
||||||
|
<dt>libvirt-uml</dt>
|
||||||
|
<dd>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</dd>
|
||||||
|
<dt>libvirt-xen</dt>
|
||||||
|
<dd>This package pulls in the server side daemon, drivers and default
|
||||||
|
configuration files required to run guests on the Xen hypervisor.</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -84,6 +84,10 @@
|
|||||||
<a href="hooks.html">Hooks</a>
|
<a href="hooks.html">Hooks</a>
|
||||||
<span>Hooks for system specific management</span>
|
<span>Hooks for system specific management</span>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="packaging.html">Distribution packaging</a>
|
||||||
|
<span>Rationale for distribution RPM packaging</span>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
508
libvirt.spec.in
508
libvirt.spec.in
@ -52,6 +52,14 @@
|
|||||||
%define with_libxl 0%{!?_without_libxl:%{server_drivers}}
|
%define with_libxl 0%{!?_without_libxl:%{server_drivers}}
|
||||||
%define with_vmware 0%{!?_without_vmware:%{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
|
# Then the hypervisor drivers that talk via a native remote protocol
|
||||||
%define with_phyp 0%{!?_without_phyp:1}
|
%define with_phyp 0%{!?_without_phyp:1}
|
||||||
%define with_esx 0%{!?_without_esx:1}
|
%define with_esx 0%{!?_without_esx:1}
|
||||||
@ -125,8 +133,10 @@
|
|||||||
|
|
||||||
# RHEL-5 has restricted QEMU to x86_64 only and is too old for LXC
|
# RHEL-5 has restricted QEMU to x86_64 only and is too old for LXC
|
||||||
%if 0%{?rhel} == 5
|
%if 0%{?rhel} == 5
|
||||||
|
%define with_qemu_tcg 0
|
||||||
%ifnarch x86_64
|
%ifnarch x86_64
|
||||||
%define with_qemu 0
|
%define with_qemu 0
|
||||||
|
%define with_qemu_kvm 0
|
||||||
%endif
|
%endif
|
||||||
%define with_lxc 0
|
%define with_lxc 0
|
||||||
%endif
|
%endif
|
||||||
@ -134,8 +144,10 @@
|
|||||||
# RHEL-6 has restricted QEMU to x86_64 only, stopped including Xen
|
# RHEL-6 has restricted QEMU to x86_64 only, stopped including Xen
|
||||||
# on all archs. Other archs all have LXC available though
|
# on all archs. Other archs all have LXC available though
|
||||||
%if 0%{?rhel} >= 6
|
%if 0%{?rhel} >= 6
|
||||||
|
%define with_qemu_tcg 0
|
||||||
%ifnarch x86_64
|
%ifnarch x86_64
|
||||||
%define with_qemu 0
|
%define with_qemu 0
|
||||||
|
%define with_qemu_kvm 0
|
||||||
%endif
|
%endif
|
||||||
%define with_xen 0
|
%define with_xen 0
|
||||||
%endif
|
%endif
|
||||||
@ -206,10 +218,13 @@
|
|||||||
%define with_storage_disk 0
|
%define with_storage_disk 0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with_qemu}
|
%if %{with_qemu} || %{with_lxc} || %{with_uml}
|
||||||
%define with_nwfilter 0%{!?_without_nwfilter:%{server_drivers}}
|
%define with_nwfilter 0%{!?_without_nwfilter:%{server_drivers}}
|
||||||
# Enable libpcap library
|
# Enable libpcap library
|
||||||
%define with_libpcap 0%{!?_without_libpcap:%{server_drivers}}
|
%define with_libpcap 0%{!?_without_libpcap:%{server_drivers}}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_qemu}
|
||||||
%define with_macvtap 0%{!?_without_macvtap:%{server_drivers}}
|
%define with_macvtap 0%{!?_without_macvtap:%{server_drivers}}
|
||||||
|
|
||||||
# numad is used to manage the CPU placement dynamically,
|
# numad is used to manage the CPU placement dynamically,
|
||||||
@ -268,109 +283,22 @@ Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz
|
|||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
URL: http://libvirt.org/
|
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}
|
%if %{with_libvirtd}
|
||||||
# for modprobe of pci devices
|
Requires: libvirt-daemon = %{version}-%{release}
|
||||||
Requires: module-init-tools
|
|
||||||
# for /sbin/ip & /sbin/tc
|
|
||||||
Requires: iproute
|
|
||||||
%if %{with_avahi}
|
|
||||||
Requires: avahi-libs
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
%if %{with_network}
|
%if %{with_network}
|
||||||
Requires: dnsmasq >= 2.41
|
Requires: libvirt-daemon-config-network = %{version}-%{release}
|
||||||
Requires: radvd
|
|
||||||
%endif
|
|
||||||
%if %{with_network} || %{with_nwfilter}
|
|
||||||
Requires: iptables
|
|
||||||
Requires: iptables-ipv6
|
|
||||||
%endif
|
%endif
|
||||||
%if %{with_nwfilter}
|
%if %{with_nwfilter}
|
||||||
Requires: ebtables
|
Requires: libvirt-daemon-config-nwfilter = %{version}-%{release}
|
||||||
%endif
|
%endif
|
||||||
# needed for device enumeration
|
# XXX when we turn on driver modules, we need to add
|
||||||
%if %{with_hal}
|
# deps on each driver (Requires: libvirt-daemon-drv-qemu)
|
||||||
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
|
%endif
|
||||||
|
Requires: libvirt-docs = %{version}-%{release}
|
||||||
|
Requires: libvirt-client = %{version}-%{release}
|
||||||
|
|
||||||
# All build-time requirements
|
# All build-time requirements. Run-time requirements are
|
||||||
|
# listed against each sub-RPM
|
||||||
%if 0%{?enable_autotools}
|
%if 0%{?enable_autotools}
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
@ -537,6 +465,275 @@ Libvirt is a C toolkit to interact with the virtualization capabilities
|
|||||||
of recent versions of Linux (and other OSes). The main package includes
|
of recent versions of Linux (and other OSes). The main package includes
|
||||||
the libvirtd server exporting the virtualization support.
|
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
|
%package client
|
||||||
Summary: Client side library and utilities of the libvirt library
|
Summary: Client side library and utilities of the libvirt library
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
@ -582,7 +779,7 @@ Group: Development/Libraries
|
|||||||
Requires: sanlock >= 1.8
|
Requires: sanlock >= 1.8
|
||||||
#for virt-sanlock-cleanup require augeas
|
#for virt-sanlock-cleanup require augeas
|
||||||
Requires: augeas
|
Requires: augeas
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name}-daemon = %{version}-%{release}
|
||||||
|
|
||||||
%description lock-sanlock
|
%description lock-sanlock
|
||||||
Includes the Sanlock lock manager plugin for the QEMU
|
Includes the Sanlock lock manager plugin for the QEMU
|
||||||
@ -884,6 +1081,12 @@ rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
|
|||||||
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml
|
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-%{version} $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-docs-%{version}
|
||||||
|
|
||||||
|
%if ! %{with_nwfilter}
|
||||||
|
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter
|
||||||
|
%endif
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -fr %{buildroot}
|
rm -fr %{buildroot}
|
||||||
|
|
||||||
@ -898,7 +1101,8 @@ do
|
|||||||
done
|
done
|
||||||
make check
|
make check
|
||||||
|
|
||||||
%pre
|
%if %{with_libvirtd}
|
||||||
|
%pre daemon
|
||||||
%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
|
%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
|
||||||
# Normally 'setup' adds this in /etc/passwd, but this is
|
# Normally 'setup' adds this in /etc/passwd, but this is
|
||||||
# here for case of upgrades from earlier Fedora/RHEL. This
|
# here for case of upgrades from earlier Fedora/RHEL. This
|
||||||
@ -910,22 +1114,9 @@ getent passwd qemu >/dev/null || \
|
|||||||
-c "qemu user" qemu
|
-c "qemu user" qemu
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%post
|
%post daemon
|
||||||
|
|
||||||
%if %{with_libvirtd}
|
|
||||||
%if %{with_network}
|
%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,</name>,</name>\n <uuid>$UUID</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
|
# All newly defined networks will have a mac address for the bridge
|
||||||
# auto-generated, but networks already existing at the time of upgrade
|
# auto-generated, but networks already existing at the time of upgrade
|
||||||
# will not. We need to go through all the network configs, look for
|
# will not. We need to go through all the network configs, look for
|
||||||
@ -991,8 +1182,8 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%preun
|
|
||||||
%if %{with_libvirtd}
|
%if %{with_libvirtd}
|
||||||
|
%preun daemon
|
||||||
%if %{with_systemd}
|
%if %{with_systemd}
|
||||||
if [ $1 -eq 0 ] ; then
|
if [ $1 -eq 0 ] ; then
|
||||||
# Package removal, not upgrade
|
# Package removal, not upgrade
|
||||||
@ -1007,8 +1198,8 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%postun
|
|
||||||
%if %{with_libvirtd}
|
%if %{with_libvirtd}
|
||||||
|
%postun daemon
|
||||||
%if %{with_systemd}
|
%if %{with_systemd}
|
||||||
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
||||||
if [ $1 -ge 1 ] ; then
|
if [ $1 -ge 1 ] ; then
|
||||||
@ -1018,6 +1209,20 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
%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,</name>,</name>\n <uuid>$UUID</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_libvirtd}
|
||||||
%if %{with_systemd}
|
%if %{with_systemd}
|
||||||
%triggerun -- libvirt < 0.9.4
|
%triggerun -- libvirt < 0.9.4
|
||||||
@ -1064,10 +1269,19 @@ fi
|
|||||||
/bin/systemctl try-restart libvirt-guests.service >/dev/null 2>&1 || :
|
/bin/systemctl try-restart libvirt-guests.service >/dev/null 2>&1 || :
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with_libvirtd}
|
|
||||||
%files
|
%files
|
||||||
%defattr(-, root, root)
|
%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
|
||||||
|
%defattr(-, root, root)
|
||||||
|
|
||||||
%doc AUTHORS ChangeLog.gz NEWS README COPYING.LIB TODO
|
%doc AUTHORS ChangeLog.gz NEWS README COPYING.LIB TODO
|
||||||
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
|
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
|
||||||
|
|
||||||
@ -1078,7 +1292,6 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
|
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
|
||||||
%{_sysconfdir}/libvirt/nwfilter/*.xml
|
|
||||||
|
|
||||||
%{_sysconfdir}/rc.d/init.d/libvirtd
|
%{_sysconfdir}/rc.d/init.d/libvirtd
|
||||||
%if %{with_systemd}
|
%if %{with_systemd}
|
||||||
@ -1190,6 +1403,67 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/sysctl.d/libvirtd
|
|||||||
%{_mandir}/man8/libvirtd.8*
|
%{_mandir}/man8/libvirtd.8*
|
||||||
|
|
||||||
%doc docs/*.xml
|
%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
|
%endif
|
||||||
|
|
||||||
%if %{with_sanlock}
|
%if %{with_sanlock}
|
||||||
|
Loading…
Reference in New Issue
Block a user