Add packaging directory and spec file
authorDariusz Michaluk <d.michaluk@samsung.com>
Tue, 20 May 2014 13:51:21 +0000 (15:51 +0200)
committerDariusz Michaluk <d.michaluk@samsung.com>
Tue, 20 May 2014 14:37:26 +0000 (16:37 +0200)
Change-Id: Ia751f8e5ae945f91332b9003ed90aa2cb1b51741
Signed-off-by: Dariusz Michaluk <d.michaluk@samsung.com>
packaging/libvirt.spec [new file with mode: 0644]

diff --git a/packaging/libvirt.spec b/packaging/libvirt.spec
new file mode 100644 (file)
index 0000000..0fd604e
--- /dev/null
@@ -0,0 +1,1547 @@
+# Default to skipping autoreconf.
+%define enable_autotools    0
+
+# Always build with dlopen'd modules
+%define with_driver_modules 1
+
+# Now set the defaults for all the important features, independent
+# of any particular OS
+
+# First the daemon itself
+%define with_libvirtd      0%{!?_without_libvirtd:1}
+%define with_avahi         0%{!?_without_avahi:0}
+
+# Then the hypervisor drivers that run in libvirtd
+%define with_xen           0%{!?_without_xen:0}
+%define with_qemu          0%{!?_without_qemu:0}
+%define with_lxc           0%{!?_without_lxc:1}
+%define with_uml           0%{!?_without_uml:0}
+%define with_libxl         0%{!?_without_libxl:0}
+%define with_vbox          0%{!?_without_vbox:0}
+
+# Then the hypervisor drivers that run outside libvirtd, in libvirt.so
+%define with_openvz        0%{!?_without_openvz:0}
+%define with_vmware        0%{!?_without_vmware:0}
+%define with_phyp          0%{!?_without_phyp:0}
+%define with_esx           0%{!?_without_esx:0}
+%define with_hyperv        0%{!?_without_hyperv:0}
+%define with_xenapi        0%{!?_without_xenapi:0}
+%define with_parallels     0%{!?_without_parallels:0}
+
+# Then the secondary host drivers, which run inside libvirtd
+%define with_interface        0%{!?_without_interface:0}
+%define with_network          0%{!?_without_network:1}
+%define with_storage_fs       0%{!?_without_storage_fs:1}
+%define with_storage_lvm      0%{!?_without_storage_lvm:0}
+%define with_storage_iscsi    0%{!?_without_storage_iscsi:0}
+%define with_storage_disk     0%{!?_without_storage_disk:0}
+%define with_storage_mpath    0%{!?_without_storage_mpath:0}
+%define with_storage_rbd      0%{!?_without_storage_rbd:0}
+%define with_storage_sheepdog 0%{!?_without_storage_sheepdog:0}
+%define with_storage_gluster  0%{!?_without_storage_gluster:0}
+%define with_numactl          0%{!?_without_numactl:0}
+%define with_selinux          0%{!?_without_selinux:0}
+%define with_apparmor         0%{!?_without_apparmor:0}
+
+# A few optional bits off by default, we enable later
+%define with_polkit        0%{!?_without_polkit:0}
+%define with_capng         0%{!?_without_capng:0}
+%define with_fuse          0%{!?_without_fuse:0}
+%define with_netcf         0%{!?_without_netcf:0}
+%define with_udev          0%{!?_without_udev:0}
+%define with_hal           0%{!?_without_hal:0}
+%define with_yajl          0%{!?_without_yajl:0}
+%define with_nwfilter      0%{!?_without_nwfilter:0}
+%define with_libpcap       0%{!?_without_libpcap:0}
+%define with_macvtap       0%{!?_without_macvtap:0}
+%define with_libnl         0%{!?_without_libnl:0}
+%define with_audit         0%{!?_without_audit:0}
+%define with_dtrace        0%{!?_without_dtrace:0}
+%define with_cgconfig      0%{!?_without_cgconfig:0}
+%define with_sanlock       0%{!?_without_sanlock:0}
+%define with_numad         0%{!?_without_numad:0}
+%define with_firewalld     0%{!?_without_firewalld:0}
+%define with_libssh2       0%{!?_without_libssh2:0}
+
+# Non-server/HV driver defaults which are always enabled
+%define with_sasl          0%{!?_without_sasl:0}
+
+# interface requires netcf
+%if ! 0%{?with_netcf}
+%define with_interface     0
+%endif
+
+# Disable some drivers when building without libvirt daemon.
+# The logic is the same as in configure.ac
+%if ! %{with_libvirtd}
+%define with_interface     0
+%define with_network       0
+%define with_qemu          0
+%define with_lxc           0
+%define with_uml           0
+%define with_hal           0
+%define with_udev          0
+%define with_storage_fs    0
+%define with_storage_lvm   0
+%define with_storage_iscsi 0
+%define with_storage_mpath 0
+%define with_storage_rbd   0
+%define with_storage_sheepdog 0
+%define with_storage_gluster  0
+%define with_storage_disk  0
+%endif
+
+%if %{with_qemu} || %{with_lxc} || %{with_uml}
+%define with_nwfilter      0%{!?_without_nwfilter:1}
+%define with_libpcap       0%{!?_without_libpcap:0}
+%define with_macvtap       0%{!?_without_macvtap:0}
+%endif
+
+%if %{with_macvtap}
+%define with_libnl         1
+%endif
+
+%if %{with_udev} || %{with_hal}
+%define with_nodedev       1
+%else
+%define with_nodedev       0
+%endif
+
+%if %{with_storage_fs} || %{with_storage_mpath} || %{with_storage_iscsi} || %{with_storage_lvm} || %{with_storage_disk}
+%define with_storage       1
+%else
+%define with_storage       0
+%endif
+
+Summary:        Library providing a simple virtualization API
+Name:           libvirt
+Version:        1.2.4
+Release:        0
+License:        LGPL-2.0+
+Group:          Development/Libraries
+URL:            http://libvirt.org/
+Source:         http://libvirt.org/sources/libvirt-%{version}.tar.gz
+
+%if %{with_libvirtd}
+Requires:       libvirt-daemon = %{version}-%{release}
+%if %{with_network}
+Requires:       libvirt-daemon-config-network = %{version}-%{release}
+%endif
+%if %{with_nwfilter}
+Requires:       libvirt-daemon-config-nwfilter = %{version}-%{release}
+%endif
+%if %{with_driver_modules}
+%if %{with_libxl}
+Requires:       libvirt-daemon-driver-libxl = %{version}-%{release}
+%endif
+%if %{with_lxc}
+Requires:       libvirt-daemon-driver-lxc = %{version}-%{release}
+%endif
+%if %{with_qemu}
+Requires:       libvirt-daemon-driver-qemu = %{version}-%{release}
+%endif
+%if %{with_uml}
+Requires:       libvirt-daemon-driver-uml = %{version}-%{release}
+%endif
+%if %{with_xen}
+Requires:       libvirt-daemon-driver-xen = %{version}-%{release}
+%endif
+%if %{with_vbox}
+Requires:       libvirt-daemon-driver-vbox = %{version}-%{release}
+%endif
+%if %{with_nwfilter}
+Requires:       libvirt-daemon-driver-nwfilter = %{version}-%{release}
+%endif
+%if %{with_interface}
+Requires:       libvirt-daemon-driver-interface = %{version}-%{release}
+%endif
+Requires:       libvirt-daemon-driver-secret = %{version}-%{release}
+Requires:       libvirt-daemon-driver-storage = %{version}-%{release}
+Requires:       libvirt-daemon-driver-network = %{version}-%{release}
+#Requires:      libvirt-daemon-driver-nodedev = %%{version}-%%{release}
+%endif
+%endif
+Requires:       libvirt-client = %{version}-%{release}
+
+# All build-time requirements. Run-time requirements are
+# listed against each sub-RPM
+%if 0%{?enable_autotools}
+BuildRequires:  autoconf
+BuildRequires:  automake
+BuildRequires:  gettext-devel
+BuildRequires:  libtool
+%endif
+BuildRequires:  python
+BuildRequires:  systemd
+BuildRequires:  systemd-devel
+%if %{with_xen} || %{with_libxl}
+BuildRequires:  xen-devel
+%endif
+BuildRequires:  libxml2-devel
+BuildRequires:  libxslt
+BuildRequires:  ncurses-devel
+BuildRequires:  gettext
+BuildRequires:  libtasn1-devel
+BuildRequires:  libattr-devel
+%if %{with_libvirtd}
+# For pool-build probing for existing pools
+BuildRequires:  libblkid-devel >= 2.17
+%endif
+%if %{with_hal}
+BuildRequires:  hal-devel
+%endif
+%if %{with_udev}
+BuildRequires:  systemd-devel >= 185
+BuildRequires:  libpciaccess-devel >= 0.10.9
+%endif
+%if %{with_yajl}
+BuildRequires:  yajl-devel
+%endif
+%if %{with_sanlock}
+BuildRequires:  sanlock-devel >= 2.4
+%endif
+%if %{with_libpcap}
+BuildRequires:  libpcap-devel
+%endif
+%if %{with_libnl}
+BuildRequires:  libnl3-devel
+%endif
+%if %{with_avahi}
+BuildRequires:  avahi-devel
+%endif
+%if %{with_selinux}
+BuildRequires:  libselinux-devel
+%endif
+%if %{with_apparmor}
+BuildRequires:  libapparmor-devel
+%endif
+%if %{with_network}
+BuildRequires:  dnsmasq >= 2.41
+BuildRequires:  iptables
+#BuildRequires: iptables-ipv6
+#BuildRequires: radvd
+%endif
+%if %{with_nwfilter}
+BuildRequires:  ebtables
+%endif
+BuildRequires:  module-init-tools
+%if %{with_sasl}
+BuildRequires:  cyrus-sasl-devel
+%endif
+%if %{with_polkit}
+BuildRequires:  polkit-devel >= 0.93
+%endif
+%if %{with_storage_fs}
+# For mount/umount in FS driver
+BuildRequires:  util-linux
+%endif
+%if %{with_qemu}
+# From QEMU RPMs
+BuildRequires:  /usr/bin/qemu-img
+%else
+%if %{with_xen}
+# From Xen RPMs
+BuildRequires:  /usr/sbin/qcow-create
+%endif
+%endif
+%if %{with_storage_lvm}
+# For LVM drivers
+BuildRequires:  lvm2
+%endif
+%if %{with_storage_iscsi}
+# For ISCSI driver
+BuildRequires:  iscsi-initiator-utils
+%endif
+%if %{with_storage_disk}
+# For disk driver
+BuildRequires:  parted-devel
+%endif
+%if %{with_storage_mpath}
+# For Multipath support
+BuildRequires:  device-mapper-devel
+%endif
+%if %{with_storage_rbd}
+BuildRequires:  ceph-devel
+%endif
+%if %{with_storage_gluster}
+BuildRequires:  glusterfs-api-devel >= 3.4.1
+BuildRequires:  glusterfs-devel >= 3.4.1
+%endif
+%if %{with_numactl}
+# For QEMU/LXC numa info
+BuildRequires:  numactl-devel
+%endif
+%if %{with_capng}
+BuildRequires:  libcap-ng-devel >= 0.5.0
+%endif
+%if %{with_fuse}
+BuildRequires:  fuse-devel >= 2.8.6
+%endif
+%if %{with_phyp} || %{with_libssh2}
+BuildRequires:  libssh2-devel >= 1.3.0
+%endif
+
+%if %{with_netcf}
+BuildRequires:  netcf-devel >= 0.2.2
+%endif
+%if %{with_esx}
+BuildRequires:  libcurl-devel
+%endif
+%if %{with_hyperv}
+BuildRequires:  libwsman-devel >= 2.2.3
+%endif
+%if %{with_audit}
+BuildRequires:  audit-libs-devel
+%endif
+%if %{with_dtrace}
+# we need /usr/sbin/dtrace
+BuildRequires:  systemtap-sdt-devel
+%endif
+
+%if %{with_storage_fs}
+# For mount/umount in FS driver
+BuildRequires:  util-linux
+# For showmount in FS driver (netfs discovery)
+#BuildRequires:  nfs-utils
+%endif
+
+BuildRequires:  dbus-devel
+
+%if %{with_numad}
+BuildRequires:  numad
+%endif
+
+%description
+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:        API reference and website documentation
+Group:          Development/Libraries
+
+%description docs
+Includes the API reference for the libvirt C library, and a complete
+copy of the libvirt.org 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
+%endif
+%if %{with_polkit}
+Requires:       polkit >= 0.93
+%endif
+# For service management
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+%if %{with_numad}
+Requires:       numad
+%endif
+# libvirtd depends on 'messagebus' service
+Requires:       dbus
+# For uid creation during pre
+#Requires(pre): shadow-utils
+
+%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}
+%if %{with_driver_modules}
+Requires: libvirt-daemon-driver-network = %{version}-%{release}
+%endif
+
+%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}
+%if %{with_driver_modules}
+Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
+%endif
+
+%description daemon-config-nwfilter
+Network filter configuration files for cleaning guest traffic
+%endif
+
+%if %{with_driver_modules}
+%if %{with_network}
+%package daemon-driver-network
+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
+an implementation of the virtual network APIs using the Linux
+bridge capabilities.
+%endif
+
+%if %{with_nwfilter}
+%package daemon-driver-nwfilter
+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
+an implementation of the firewall APIs using the ebtables,
+iptables and ip6tables capabilities
+%endif
+
+%if %{with_nodedev}
+%package daemon-driver-nodedev
+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}
+Requires:       systemd >= 185
+%endif
+
+%description daemon-driver-nodedev
+The nodedev driver plugin for the libvirtd daemon, providing
+an implementation of the node device APIs using the udev
+capabilities.
+%endif
+
+%if %{with_interface}
+%package daemon-driver-interface
+Summary:        Interface driver plugin for the libvirtd daemon
+Group:          Development/Libraries
+Requires:       libvirt-daemon = %{version}-%{release}
+%if %{with_netcf}
+Requires:       netcf-libs >= 0.2.2
+%endif
+
+%description daemon-driver-interface
+The interface driver plugin for the libvirtd daemon, providing
+an implementation of the network interface APIs using the
+netcf library
+%endif
+
+%package daemon-driver-secret
+Summary:        Secret driver plugin for the libvirtd daemon
+Group:          Development/Libraries
+Requires:       libvirt-daemon = %{version}-%{release}
+
+%description daemon-driver-secret
+The secret driver plugin for the libvirtd daemon, providing
+an implementation of the secret key APIs.
+
+%if %{with_storage}
+%package daemon-driver-storage
+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
+#Requires:       glusterfs-client >= 2.0.1
+%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
+an implementation of the storage APIs using LVM, iSCSI,
+parted and more.
+%endif
+
+%if %{with_qemu}
+%package daemon-driver-qemu
+Summary:        Qemu driver plugin for the libvirtd daemon
+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
+an implementation of the hypervisor driver APIs using QEMU
+%endif
+
+%if %{with_lxc}
+%package daemon-driver-lxc
+Summary:        LXC driver plugin for the libvirtd daemon
+Group:          Development/Libraries
+Requires:       libvirt-daemon = %{version}-%{release}
+# There really is a hard cross-driver dependency here
+Requires:       libvirt-daemon-driver-network = %{version}-%{release}
+
+%description daemon-driver-lxc
+The LXC driver plugin for the libvirtd daemon, providing
+an implementation of the hypervisor driver APIs using
+the Linux kernel
+%endif
+
+%if %{with_uml}
+%package daemon-driver-uml
+Summary:        Uml driver plugin for the libvirtd daemon
+Group:          Development/Libraries
+Requires:       libvirt-daemon = %{version}-%{release}
+
+%description daemon-driver-uml
+The UML driver plugin for the libvirtd daemon, providing
+an implementation of the hypervisor driver APIs using
+User Mode Linux
+%endif
+
+%if %{with_xen}
+%package daemon-driver-xen
+Summary:        Xen driver plugin for the libvirtd daemon
+Group:          Development/Libraries
+Requires:       libvirt-daemon = %{version}-%{release}
+
+%description daemon-driver-xen
+The Xen driver plugin for the libvirtd daemon, providing
+an implementation of the hypervisor driver APIs using Xen
+%endif
+
+%if %{with_vbox}
+%package daemon-driver-vbox
+Summary:        VirtualBox driver plugin for the libvirtd daemon
+Group:          Development/Libraries
+Requires:       libvirt-daemon = %{version}-%{release}
+
+%description daemon-driver-vbox
+The vbox driver plugin for the libvirtd daemon, providing
+an implementation of the hypervisor driver APIs using
+VirtualBox
+%endif
+
+%if %{with_libxl}
+%package daemon-driver-libxl
+Summary:        Libxl driver plugin for the libvirtd daemon
+Group:          Development/Libraries
+Requires:       libvirt-daemon = %{version}-%{release}
+
+%description daemon-driver-libxl
+The Libxl driver plugin for the libvirtd daemon, providing
+an implementation of the hypervisor driver APIs using Libxl
+%endif
+%endif
+
+%if %{with_qemu}
+%package daemon-qemu
+Summary:        Server side daemon & driver required to run QEMU guests
+Group:          Development/Libraries
+
+Requires:       libvirt-daemon = %{version}-%{release}
+%if %{with_driver_modules}
+Requires:       libvirt-daemon-driver-qemu = %{version}-%{release}
+Requires:       libvirt-daemon-driver-interface = %{version}-%{release}
+Requires:       libvirt-daemon-driver-network = %{version}-%{release}
+Requires:       libvirt-daemon-driver-nodedev = %{version}-%{release}
+Requires:       libvirt-daemon-driver-nwfilter = %{version}-%{release}
+Requires:       libvirt-daemon-driver-secret = %{version}-%{release}
+Requires:       libvirt-daemon-driver-storage = %{version}-%{release}
+%endif
+Requires:       qemu
+
+%description daemon-qemu
+Server side daemon and driver required to manage the virtualization
+capabilities of the QEMU emulators
+%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}
+%if %{with_driver_modules}
+Requires:       libvirt-daemon-driver-lxc = %{version}-%{release}
+#Requires:      libvirt-daemon-driver-interface = %%{version}-%%{release}
+Requires:       libvirt-daemon-driver-network = %{version}-%{release}
+#Requires:      libvirt-daemon-driver-nodedev = %%{version}-%%{release}
+Requires:       libvirt-daemon-driver-nwfilter = %{version}-%{release}
+Requires:       libvirt-daemon-driver-secret = %{version}-%{release}
+Requires:       libvirt-daemon-driver-storage = %{version}-%{release}
+%endif
+
+%description daemon-lxc
+Server side daemon and driver 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}
+%if %{with_driver_modules}
+Requires:       libvirt-daemon-driver-uml = %{version}-%{release}
+Requires:       libvirt-daemon-driver-interface = %{version}-%{release}
+Requires:       libvirt-daemon-driver-network = %{version}-%{release}
+Requires:       libvirt-daemon-driver-nodedev = %{version}-%{release}
+Requires:       libvirt-daemon-driver-nwfilter = %{version}-%{release}
+Requires:       libvirt-daemon-driver-secret = %{version}-%{release}
+Requires:       libvirt-daemon-driver-storage = %{version}-%{release}
+%endif
+
+%description daemon-uml
+Server side daemon and driver required to manage the virtualization
+capabilities of UML
+%endif
+
+%if %{with_xen} || %{with_libxl}
+%package daemon-xen
+Summary:        Server side daemon & driver required to run XEN guests
+Group:          Development/Libraries
+
+Requires:       libvirt-daemon = %{version}-%{release}
+%if %{with_driver_modules}
+%if %{with_xen}
+Requires:       libvirt-daemon-driver-xen = %{version}-%{release}
+%endif
+%if %{with_libxl}
+Requires:       libvirt-daemon-driver-libxl = %{version}-%{release}
+%endif
+Requires:       libvirt-daemon-driver-interface = %{version}-%{release}
+Requires:       libvirt-daemon-driver-network = %{version}-%{release}
+Requires:       libvirt-daemon-driver-nodedev = %{version}-%{release}
+Requires:       libvirt-daemon-driver-nwfilter = %{version}-%{release}
+Requires:       libvirt-daemon-driver-secret = %{version}-%{release}
+Requires:       libvirt-daemon-driver-storage = %{version}-%{release}
+%endif
+Requires:       xen
+
+%description daemon-xen
+Server side daemon and driver required to manage the virtualization
+capabilities of XEN
+%endif
+
+%if %{with_vbox}
+%package daemon-vbox
+Summary:        Server side daemon & driver required to run VirtualBox guests
+Group:          Development/Libraries
+
+Requires:       libvirt-daemon = %{version}-%{release}
+%if %{with_driver_modules}
+Requires:       libvirt-daemon-driver-vbox = %{version}-%{release}
+Requires:       libvirt-daemon-driver-interface = %{version}-%{release}
+Requires:       libvirt-daemon-driver-network = %{version}-%{release}
+Requires:       libvirt-daemon-driver-nodedev = %{version}-%{release}
+Requires:       libvirt-daemon-driver-nwfilter = %{version}-%{release}
+Requires:       libvirt-daemon-driver-secret = %{version}-%{release}
+Requires:       libvirt-daemon-driver-storage = %{version}-%{release}
+%endif
+
+%description daemon-vbox
+Server side daemon and driver required to manage the virtualization
+capabilities of VirtualBox
+%endif
+%endif
+
+%package client
+Summary:        Client side library and utilities of the libvirt library
+Group:          Development/Libraries
+Requires:       ncurses
+# So remote clients can access libvirt over SSH tunnel
+# (client invokes 'nc' against the UNIX socket on the server)
+#Requires:      netcat
+# Needed by /usr/libexec/libvirt-guests.sh script.
+Requires:       gettext
+# Needed by virt-pki-validate script.
+Requires:       gnutls
+%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).
+
+%if %{with_lxc}
+%package login-shell
+Summary:        Login shell for connecting users to an LXC container
+Group:          Development/Libraries
+Requires:       %{name}-client = %{version}-%{release}
+
+%description login-shell
+Provides the set-uid virt-login-shell binary that is used to
+connect a user to an LXC container when they login, by switching
+namespaces.
+%endif
+
+%package devel
+Summary:        Libraries, includes, etc. to compile with the libvirt library
+Group:          Development/Libraries
+Requires:       %{name}-client = %{version}-%{release}
+Requires:       %{name}-docs = %{version}-%{release}
+Requires:       pkgconfig
+
+%description devel
+Include header files & development libraries for the libvirt C library.
+
+%if %{with_sanlock}
+%package lock-sanlock
+Summary:        Sanlock lock manager plugin for QEMU driver
+Group:          Development/Libraries
+Requires:       sanlock >= 2.4
+#for virt-sanlock-cleanup require augeas
+Requires:       augeas
+Requires:       %{name}-daemon = %{version}-%{release}
+Requires:       %{name}-client = %{version}-%{release}
+
+%description lock-sanlock
+Includes the Sanlock lock manager plugin for the QEMU driver
+%endif
+
+%prep
+%setup -q
+
+%build
+%if ! %{with_xen}
+%define _without_xen    --without-xen
+%endif
+%if ! %{with_qemu}
+%define _without_qemu   --without-qemu
+%endif
+%if ! %{with_openvz}
+%define _without_openvz --without-openvz
+%endif
+%if ! %{with_lxc}
+%define _without_lxc    --without-lxc
+%endif
+%if ! %{with_vbox}
+%define _without_vbox   --without-vbox
+%endif
+%if ! %{with_xenapi}
+%define _without_xenapi --without-xenapi
+%endif
+%if ! %{with_libxl}
+%define _without_libxl  --without-libxl
+%endif
+%if ! %{with_sasl}
+%define _without_sasl   --without-sasl
+%endif
+%if ! %{with_avahi}
+%define _without_avahi  --without-avahi
+%endif
+%if ! %{with_phyp}
+%define _without_phyp   --without-phyp
+%endif
+%if ! %{with_esx}
+%define _without_esx    --without-esx
+%endif
+%if ! %{with_hyperv}
+%define _without_hyperv --without-hyperv
+%endif
+%if ! %{with_vmware}
+%define _without_vmware --without-vmware
+%endif
+%if ! %{with_parallels}
+%define _without_parallels --without-parallels
+%endif
+%if ! %{with_polkit}
+%define _without_polkit --without-polkit
+%endif
+%if ! %{with_libvirtd}
+%define _without_libvirtd --without-libvirtd
+%endif
+%if ! %{with_uml}
+%define _without_uml    --without-uml
+%endif
+%if ! %{with_interface}
+%define _without_interface --without-interface
+%endif
+%if ! %{with_network}
+%define _without_network --without-network
+%endif
+%if ! %{with_storage_fs}
+%define _without_storage_fs --without-storage-fs
+%endif
+%if ! %{with_storage_lvm}
+%define _without_storage_lvm --without-storage-lvm
+%endif
+%if ! %{with_storage_iscsi}
+%define _without_storage_iscsi --without-storage-iscsi
+%endif
+%if ! %{with_storage_disk}
+%define _without_storage_disk --without-storage-disk
+%endif
+%if ! %{with_storage_mpath}
+%define _without_storage_mpath --without-storage-mpath
+%endif
+%if ! %{with_storage_rbd}
+%define _without_storage_rbd --without-storage-rbd
+%endif
+%if ! %{with_storage_sheepdog}
+%define _without_storage_sheepdog --without-storage-sheepdog
+%endif
+%if ! %{with_storage_gluster}
+%define _without_storage_gluster --without-storage-gluster
+%endif
+%if ! %{with_numactl}
+%define _without_numactl --without-numactl
+%endif
+%if ! %{with_numad}
+%define _without_numad --without-numad
+%endif
+%if ! %{with_capng}
+%define _without_capng --without-capng
+%endif
+%if ! %{with_fuse}
+%define _without_fuse --without-fuse
+%endif
+%if ! %{with_netcf}
+%define _without_netcf --without-netcf
+%endif
+%if ! %{with_selinux}
+%define _without_selinux --without-selinux
+%endif
+%if ! %{with_apparmor}
+%define _without_apparmor --without-apparmor
+%endif
+%if ! %{with_hal}
+%define _without_hal --without-hal
+%endif
+%if ! %{with_udev}
+%define _without_udev --without-udev
+%endif
+%if ! %{with_yajl}
+%define _without_yajl --without-yajl
+%endif
+%if ! %{with_sanlock}
+%define _without_sanlock --without-sanlock
+%endif
+%if ! %{with_libpcap}
+%define _without_libpcap --without-libpcap
+%endif
+%if ! %{with_macvtap}
+%define _without_macvtap --without-macvtap
+%endif
+%if ! %{with_audit}
+%define _without_audit --without-audit
+%endif
+%if ! %{with_dtrace}
+%define _without_dtrace --without-dtrace
+%endif
+%if ! %{with_driver_modules}
+%define _without_driver_modules --without-driver-modules
+%endif
+%if %{with_firewalld}
+%define _with_firewalld --with-firewalld
+%endif
+%if %{with_selinux}
+%define with_selinux_mount --with-selinux-mount="/sys/fs/selinux"
+%endif
+
+# place macros above and build commands below this comment
+
+%if 0%{?enable_autotools}
+autoreconf -if
+%endif
+
+rm -rf po/stamp-po
+%configure %{?_without_xen} \
+           %{?_without_qemu} \
+           %{?_without_openvz} \
+           %{?_without_lxc} \
+           %{?_without_vbox} \
+           %{?_without_libxl} \
+           %{?_without_xenapi} \
+           %{?_without_sasl} \
+           %{?_without_avahi} \
+           %{?_without_polkit} \
+           %{?_without_libvirtd} \
+           %{?_without_uml} \
+           %{?_without_phyp} \
+           %{?_without_esx} \
+           %{?_without_hyperv} \
+           %{?_without_vmware} \
+           %{?_without_parallels} \
+           %{?_without_interface} \
+           %{?_without_network} \
+           %{?_without_storage_fs} \
+           %{?_without_storage_lvm} \
+           %{?_without_storage_iscsi} \
+           %{?_without_storage_disk} \
+           %{?_without_storage_mpath} \
+           %{?_without_storage_rbd} \
+           %{?_without_storage_sheepdog} \
+           %{?_without_storage_gluster} \
+           %{?_without_numactl} \
+           %{?_without_numad} \
+           %{?_without_capng} \
+           %{?_without_fuse} \
+           %{?_without_netcf} \
+           %{?_without_selinux} \
+           %{?_with_selinux_mount} \
+           %{?_without_apparmor} \
+           %{?_without_hal} \
+           %{?_without_udev} \
+           %{?_without_yajl} \
+           %{?_without_sanlock} \
+           %{?_without_libpcap} \
+           %{?_without_macvtap} \
+           %{?_without_audit} \
+           %{?_without_dtrace} \
+           %{?_without_driver_modules} \
+           %{?_with_firewalld} \
+           %{?enable_werror} \
+           --with-init_script=systemd \
+           --with-systemd-daemon \
+           --with-dbus \
+           --without-pm-utils
+make %{?_smp_mflags}
+gzip -9 ChangeLog
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=%{?buildroot} SYSTEMD_UNIT_DIR=%{_unitdir}
+
+for i in object-events dominfo domsuspend hellolibvirt openauth xml/nwfilter systemtap
+do
+  (cd examples/$i ; make clean ; rm -rf .deps .libs Makefile Makefile.in)
+done
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
+rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.la
+rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.a
+%if %{with_driver_modules}
+rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la
+rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a
+%endif
+%if %{with_network}
+install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/
+install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/
+cp $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml \
+   $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
+# Strip auto-generated UUID - we need it generated per-install
+sed -i -e "/<uuid>/d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
+%else
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
+%endif
+%if ! %{with_qemu}
+rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
+rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
+%endif
+%find_lang %{name}
+%if ! %{with_sanlock}
+rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirt_sanlock.aug
+rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
+%endif
+%if ! %{with_lxc}
+rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug
+rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
+%endif
+%if ! %{with_qemu}
+rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
+rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu
+%endif
+%if ! %{with_lxc}
+rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
+rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
+%endif
+%if ! %{with_uml}
+rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml
+%endif
+
+# Copied into libvirt-docs subpackage eventually
+mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-%{version} libvirt-docs
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%check
+cd tests
+make
+# This tests don't work, because of the lack of support for ipv6, cgroup, firewall in gbs chroot
+for i in virnetsockettest vircgrouptest virfirewalltest networkxml2firewalltest nwfilterebiptablestest nwfilterxml2firewalltest
+do
+  rm -f $i
+  printf 'int main(void) { return 0; }' > $i.c
+  printf '#!/bin/sh\nexit 0\n' > $i
+  chmod +x $i
+done
+if ! make check VIR_TEST_DEBUG=1
+then
+  cat test-suite.log || true
+  exit 1
+fi
+
+%if %{with_libvirtd}
+%if ! %{with_driver_modules}
+%if %{with_qemu}
+%pre daemon
+# We want soft static allocation of well-known ids, as disk images
+# are commonly shared across NFS mounts by id rather than name.
+getent group kvm >/dev/null || groupadd -f -g 36 -r kvm
+getent group qemu >/dev/null || groupadd -f -g 107 -r qemu
+if ! getent passwd qemu >/dev/null; then
+  if ! getent passwd 107 >/dev/null; then
+    useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
+  else
+    useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
+  fi
+fi
+exit 0
+%endif
+%endif
+
+%post daemon
+%if %{with_network}
+# 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
+# those that don't have a mac address, and add one.
+
+network_files=$( (cd %{_localstatedir}/lib/libvirt/network && \
+                  grep -L "mac address" *.xml; \
+                  cd %{_sysconfdir}/libvirt/qemu/networks && \
+                  grep -L "mac address" *.xml) 2>/dev/null \
+                | sort -u)
+
+for file in $network_files
+do
+   # each file exists in either the config or state directory (or both) and
+   # does not have a mac address specified in either. We add the same mac
+   # address to both files (or just one, if the other isn't there)
+
+   mac4=`printf '%X' $(($RANDOM % 256))`
+   mac5=`printf '%X' $(($RANDOM % 256))`
+   mac6=`printf '%X' $(($RANDOM % 256))`
+   for dir in %{_localstatedir}/lib/libvirt/network \
+              %{_sysconfdir}/libvirt/qemu/networks
+   do
+      if test -f $dir/$file
+      then
+         sed -i.orig -e \
+           "s|\(<bridge.*$\)|\0\n  <mac address='52:54:00:$mac4:$mac5:$mac6'/>|" \
+           $dir/$file
+         if test $? != 0
+         then
+             echo "failed to add <mac address='52:54:00:$mac4:$mac5:$mac6'/>" \
+                  "to $dir/$file"
+             mv -f $dir/$file.orig $dir/$file
+         else
+             rm -f $dir/$file.orig
+         fi
+      fi
+   done
+done
+%endif
+
+%systemd_post virtlockd.socket libvirtd.service
+
+%preun daemon
+%systemd_preun libvirtd.service virtlockd.socket virtlockd.service
+
+%postun daemon
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+    /bin/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || :
+    /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
+fi
+
+%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
+
+# If the package is allowed to autostart:
+/bin/systemctl --no-reload enable libvirtd.service >/dev/null 2>&1 ||:
+/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
+
+%if %{with_driver_modules}
+%if %{with_qemu}
+%pre daemon-driver-qemu
+# We want soft static allocation of well-known ids, as disk images
+# are commonly shared across NFS mounts by id rather than name.
+getent group kvm >/dev/null || groupadd -f -g 36 -r kvm
+getent group qemu >/dev/null || groupadd -f -g 107 -r qemu
+if ! getent passwd qemu >/dev/null; then
+  if ! getent passwd 107 >/dev/null; then
+    useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
+  else
+    useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
+  fi
+fi
+exit 0
+%endif
+%endif
+%endif
+
+%preun client
+%systemd_preun libvirt-guests.service
+
+%post client
+/sbin/ldconfig
+%systemd_post libvirt-guests.service
+
+%postun client
+/sbin/ldconfig
+%systemd_postun libvirt-guests.service
+# If the package is allowed to autostart:
+/bin/systemctl --no-reload enable libvirt-guests.service >/dev/null 2>&1 ||:
+
+%if %{with_sanlock}
+%post lock-sanlock
+if getent group sanlock > /dev/null ; then
+    chmod 0770 %{_localstatedir}/lib/libvirt/sanlock
+    chown root:sanlock %{_localstatedir}/lib/libvirt/sanlock
+fi
+%endif
+
+%files
+%defattr(-, root, root)
+
+%files docs
+%defattr(-, root, root)
+%doc AUTHORS ChangeLog.gz NEWS README TODO libvirt-docs/*
+
+# API docs
+%dir %{_datadir}/gtk-doc/html/libvirt/
+%doc %{_datadir}/gtk-doc/html/libvirt/*.devhelp
+%doc %{_datadir}/gtk-doc/html/libvirt/*.html
+%doc %{_datadir}/gtk-doc/html/libvirt/*.png
+%doc %{_datadir}/gtk-doc/html/libvirt/*.css
+
+%if %{with_libvirtd}
+%files daemon
+%defattr(-, root, root)
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
+%{_unitdir}/libvirtd.service
+%{_unitdir}/virtlockd.service
+%{_unitdir}/virtlockd.socket
+%doc daemon/libvirtd.upstart
+%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
+%config(noreplace) %{_sysconfdir}/sysconfig/virtlockd
+%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
+%config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
+%config(noreplace) %{_prefix}/lib/sysctl.d/libvirtd.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
+%dir %{_datadir}/libvirt/
+
+%ghost %dir %{_localstatedir}/run/libvirt/
+
+%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
+%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
+%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
+%dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
+
+
+%dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
+%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
+
+%{_datadir}/augeas/lenses/libvirtd.aug
+%{_datadir}/augeas/lenses/tests/test_libvirtd.aug
+%{_datadir}/augeas/lenses/virtlockd.aug
+%{_datadir}/augeas/lenses/tests/test_virtlockd.aug
+%{_datadir}/augeas/lenses/libvirt_lockd.aug
+%if %{with_qemu}
+%{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
+%endif
+
+%if %{with_polkit}
+%{_datadir}/polkit-1/actions/org.libvirt.unix.policy
+%{_datadir}/polkit-1/actions/org.libvirt.api.policy
+%endif
+
+%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/
+
+%attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
+
+%if %{with_apparmor}
+%attr(0755, root, root) %{_libexecdir}/virt-aa-helper
+%endif
+
+%attr(0755, root, root) %{_sbindir}/libvirtd
+%attr(0755, root, root) %{_sbindir}/virtlockd
+
+%{_mandir}/man8/libvirtd.8*
+%{_mandir}/man8/virtlockd.8*
+
+%if ! %{with_driver_modules}
+%if %{with_network} || %{with_qemu}
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
+%endif
+%if %{with_network} || %{with_nwfilter}
+%ghost %dir %{_localstatedir}/run/libvirt/network/
+%endif
+%if %{with_network}
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
+%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
+%endif
+%if %{with_nwfilter}
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
+%endif
+%if %{with_storage_disk}
+%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
+%endif
+%if %{with_qemu}
+%config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
+%config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
+%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
+%ghost %dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/
+%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
+%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/
+%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/target/
+%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
+%{_datadir}/augeas/lenses/libvirtd_qemu.aug
+%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
+%endif
+%if %{with_lxc}
+%config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
+%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
+%ghost %dir %{_localstatedir}/run/libvirt/lxc/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
+%{_datadir}/augeas/lenses/libvirtd_lxc.aug
+%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
+%attr(0755, root, root) %{_libexecdir}/libvirt_lxc
+%endif
+%if %{with_uml}
+%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.uml
+%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/uml/
+%ghost %dir %{_localstatedir}/run/libvirt/uml/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/
+%endif
+%if %{with_libxl}
+%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
+%ghost %dir %{_localstatedir}/run/libvirt/libxl/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
+%endif
+%if %{with_xen}
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/xen/
+%endif
+%endif
+
+%if %{with_network}
+%files daemon-config-network
+%defattr(-, root, root)
+%dir %{_datadir}/libvirt/networks/
+%{_datadir}/libvirt/networks/default.xml
+%endif
+
+%if %{with_nwfilter}
+%files daemon-config-nwfilter
+%defattr(-, root, root)
+%config %{_sysconfdir}/libvirt/nwfilter/*.xml
+%endif
+
+%if %{with_driver_modules}
+%if %{with_interface}
+%files daemon-driver-interface
+%defattr(-, root, root)
+%{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
+%endif
+
+%if %{with_network}
+%files daemon-driver-network
+%defattr(-, root, root)
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
+%ghost %dir %{_localstatedir}/run/libvirt/network/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
+%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
+%{_libdir}/%{name}/connection-driver/libvirt_driver_network.so
+%endif
+
+%if %{with_nodedev}
+%files daemon-driver-nodedev
+%defattr(-, root, root)
+%{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so
+%endif
+
+%if %{with_nwfilter}
+%files daemon-driver-nwfilter
+%defattr(-, root, root)
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
+%ghost %dir %{_localstatedir}/run/libvirt/network/
+%{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so
+%endif
+
+%files daemon-driver-secret
+%defattr(-, root, root)
+%{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so
+
+%if %{with_storage}
+%files daemon-driver-storage
+%defattr(-, root, root)
+%if %{with_storage_disk}
+%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
+%endif
+%{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so
+%endif
+
+%if %{with_qemu}
+%files daemon-driver-qemu
+%defattr(-, root, root)
+%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
+%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
+%config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
+%config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
+%ghost %dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/
+%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
+%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/
+%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/target/
+%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
+%{_datadir}/augeas/lenses/libvirtd_qemu.aug
+%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
+%{_libdir}/%{name}/connection-driver/libvirt_driver_qemu.so
+%endif
+
+%if %{with_lxc}
+%files daemon-driver-lxc
+%defattr(-, root, root)
+%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
+%config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
+%ghost %dir %{_localstatedir}/run/libvirt/lxc/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
+%{_datadir}/augeas/lenses/libvirtd_lxc.aug
+%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
+%attr(0755, root, root) %{_libexecdir}/libvirt_lxc
+%{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
+%endif
+
+%if %{with_uml}
+%files daemon-driver-uml
+%defattr(-, root, root)
+%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/uml/
+%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.uml
+%ghost %dir %{_localstatedir}/run/libvirt/uml/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/
+%{_libdir}/%{name}/connection-driver/libvirt_driver_uml.so
+%endif
+
+%if %{with_xen}
+%files daemon-driver-xen
+%defattr(-, root, root)
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/xen/
+%{_libdir}/%{name}/connection-driver/libvirt_driver_xen.so
+%endif
+
+%if %{with_libxl}
+%files daemon-driver-libxl
+%defattr(-, root, root)
+%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
+%ghost %dir %{_localstatedir}/run/libvirt/libxl/
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
+%{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so
+%endif
+
+%if %{with_vbox}
+%files daemon-driver-vbox
+%defattr(-, root, root)
+%{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so
+%endif
+%endif
+
+%if %{with_qemu}
+%files daemon-qemu
+%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} || %{with_libxl}
+%files daemon-xen
+%defattr(-, root, root)
+%endif
+
+%if %{with_vbox}
+%files daemon-vbox
+%defattr(-, root, root)
+%endif
+%endif
+
+%if %{with_sanlock}
+%files lock-sanlock
+%defattr(-, root, root)
+%if %{with_qemu}
+%config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
+%endif
+%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
+%{_datadir}/augeas/lenses/libvirt_sanlock.aug
+%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
+%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/sanlock
+%{_sbindir}/virt-sanlock-cleanup
+%{_mandir}/man8/virt-sanlock-cleanup.8*
+%attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
+%endif
+
+%files client -f %{name}.lang
+%defattr(-, root, root)
+%license COPYING COPYING.LESSER
+
+%config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
+%{_mandir}/man1/virsh.1*
+%{_mandir}/man1/virt-xml-validate.1*
+%{_mandir}/man1/virt-pki-validate.1*
+%{_mandir}/man1/virt-host-validate.1*
+%{_bindir}/virsh
+%{_bindir}/virt-xml-validate
+%{_bindir}/virt-pki-validate
+%{_bindir}/virt-host-validate
+%{_libdir}/lib*.so.*
+
+%if %{with_dtrace}
+%{_datadir}/systemtap/tapset/libvirt_probes*.stp
+%{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
+%{_datadir}/systemtap/tapset/libvirt_functions.stp
+%endif
+
+%dir %{_datadir}/libvirt/
+%dir %{_datadir}/libvirt/schemas/
+
+%{_datadir}/libvirt/schemas/basictypes.rng
+%{_datadir}/libvirt/schemas/capability.rng
+%{_datadir}/libvirt/schemas/domain.rng
+%{_datadir}/libvirt/schemas/domaincommon.rng
+%{_datadir}/libvirt/schemas/domainsnapshot.rng
+%{_datadir}/libvirt/schemas/interface.rng
+%{_datadir}/libvirt/schemas/network.rng
+%{_datadir}/libvirt/schemas/networkcommon.rng
+%{_datadir}/libvirt/schemas/nodedev.rng
+%{_datadir}/libvirt/schemas/nwfilter.rng
+%{_datadir}/libvirt/schemas/secret.rng
+%{_datadir}/libvirt/schemas/storagecommon.rng
+%{_datadir}/libvirt/schemas/storagepool.rng
+%{_datadir}/libvirt/schemas/storagevol.rng
+
+%{_datadir}/libvirt/cpu_map.xml
+%{_datadir}/libvirt/libvirtLogo.png
+
+%{_unitdir}/libvirt-guests.service
+%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
+%attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
+%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
+
+%if %{with_sasl}
+%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
+%endif
+
+%if %{with_lxc}
+%files login-shell
+%defattr(-, root, root)
+%{_bindir}/virt-login-shell
+%config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf
+%{_mandir}/man1/virt-login-shell.1*
+%endif
+
+%files devel
+%defattr(-, root, root)
+
+%{_libdir}/lib*.so
+%dir %{_includedir}/libvirt
+%{_includedir}/libvirt/*.h
+%{_libdir}/pkgconfig/libvirt.pc
+
+%dir %{_datadir}/libvirt/api/
+%{_datadir}/libvirt/api/libvirt-api.xml
+%{_datadir}/libvirt/api/libvirt-qemu-api.xml
+%{_datadir}/libvirt/api/libvirt-lxc-api.xml
+
+%doc docs/*.html docs/html docs/*.gif
+%doc examples/hellolibvirt
+%doc examples/object-events
+%doc examples/dominfo
+%doc examples/domsuspend
+%doc examples/openauth
+%doc examples/xml
+%doc examples/systemtap
+
+%changelog