]> TLD Linux GIT Repositories - packages/libvirt.git/blobdiff - libvirt.spec
- updated to 10.4.0, partial merge of PLD changes
[packages/libvirt.git] / libvirt.spec
index 85ae2a23fd074f64dcd8b316c9645cdbe93f6814..c7dedb92a49b778ff42bacb6ddc40d796a565f49 100644 (file)
@@ -1,6 +1,11 @@
 # TODO:
 # - parallels-sdk >= 7.0.22?
 # - virtuozzo storage?
+# - mdevctl
+# - mm-ctl (https://github.com/tfukushima/mm-ctl ?)
+# - numad (https://pagure.io/numad/ or https://github.com/yhaenggi/numad/releases ?)
+# - vstorage, vstorage-mount
+# - package firewalld zone definition (see files)
 #
 # Conditional build:
 # - virtualization
 %bcond_without vbox            # VirtualBox support
 %bcond_without vmware          # VMware Workstation/Player support
 # - storage
-%bcond_without ceph            # RADOS BD (Ceph) storage support
+%bcond_with    ceph            # RADOS BD (Ceph) storage support
 %bcond_without glusterfs       # GlusterFS storage support
 # - storage locking
 %bcond_without sanlock         # sanlock storage lock manager
 # - other
-%bcond_with    apparmor        # apparmor support
+%bcond_without apparmor        # apparmor support
 %bcond_without netcf           # host interfaces support
 %bcond_without polkit          # PolicyKit support
 %bcond_without systemtap       # systemtap/dtrace probes
 %bcond_with    wireshark       # wireshark dissector module
+%bcond_without zfs             # ZFS storage support
+%bcond_without static_libs     # static libraries build
 
-# qemu available only on x86 and ppc
-%ifnarch %{ix86} %{x8664} ppc
+# qemu available only on x86, arm and ppc
+%ifnarch %{ix86} %{x8664} x32 aarch64 ppc
 %undefine      with_qemu
 %endif
 
-# Xen is available only on x86 and ia64
-%ifnarch %{ix86} %{x8664} ia64
+# Xen supported architectures
+%ifnarch %{ix86} %{x8664} %{arm} aarch64
 %undefine      with_libxl
 %endif
 
 Summary:       Toolkit to interact with virtualization capabilities
 Summary(pl.UTF-8):     Narzędzia współpracujące z funkcjami wirtualizacji
 Name:          libvirt
-Version:       9.0.0
+Version:       10.4.0
 Release:       1
 License:       LGPL v2.1+
 Group:         Libraries
-Source0:       http://libvirt.org/sources/libvirt-%{version}.tar.xz
-# Source0-md5: f0c41217d6dd89ce558465bb3caf6e5c
+Source0:       https://download.libvirt.org/libvirt-%{version}.tar.xz
+# Source0-md5: 446cbe5e81c8cce8b6830b93a0c7b2ee
 Source1:       libvirtd.init
 Source2:       virtlockd.init
 Source3:       virtlogd.init
@@ -68,43 +75,50 @@ Patch1:             %{name}-qemu-acl.patch
 Patch2:                %{name}-udevadm-settle.patch
 Patch3:                bashisms.patch
 Patch4:                %{name}-sysctl-dir.patch
-URL:           http://www.libvirt.org/
+URL:           https://www.libvirt.org/
 BuildRequires: acl-devel
 BuildRequires: attr-devel
 BuildRequires: audit-libs-devel
 BuildRequires: augeas-devel
 BuildRequires: autoconf >= 2.50
 BuildRequires: automake
-BuildRequires: bash-completion >= 2.0
+BuildRequires: bash-completion-devel >= 1:2.0
 %{?with_ceph:BuildRequires:    ceph-devel}
 BuildRequires: curl-devel >= 7.19.1
 BuildRequires: cyrus-sasl-devel >= 2.1.26
 BuildRequires: dbus-devel >= 1.0.0
 BuildRequires: device-mapper-devel >= 1.0.0
+# rst2html5 rst2man
+BuildRequires: docutils
 BuildRequires: gawk
 BuildRequires: gcc >= 6:4.4
 BuildRequires: gettext-tools >= 0.17
-BuildRequires: glib2-devel >= 2.56.0
+BuildRequires: glib2-devel >= 1:2.56.0
 %{?with_glusterfs:BuildRequires:       glusterfs-devel >= 3.4.1}
-BuildRequires: gnutls-devel >= 3.2.0
-%{?with_apparmor:BuildRequires:        libapparmor-devel}
+BuildRequires: gnutls-devel >= 3.6.0
+%{?with_apparmor:BuildRequires:        libapparmor-devel >= 3.0.0}
 BuildRequires: libblkid-devel >= 2.17
 BuildRequires: libcap-ng-devel >= 0.4.0
-BuildRequires: libfuse-devel >= 2.8.6
+BuildRequires: libfuse3-devel >= 3.1.0
 BuildRequires: libgcrypt-devel
 BuildRequires: libiscsi-devel >= 1.18.0
+BuildRequires: libnbd-devel >= 1.0
 BuildRequires: libnl-devel >= 3.2
 BuildRequires: libpcap-devel >= 1.5.0
 BuildRequires: libselinux-devel >= 2.5
-BuildRequires: libssh-devel >= 0.7
+BuildRequires: libssh-devel >= 0.8.1
 BuildRequires: libssh2-devel >= 1.3
 BuildRequires: libtool
 BuildRequires: libxml2-devel >= 1:2.9.1
+BuildRequires: libxml2-progs >= 1:2.9.1
 BuildRequires: libxslt-devel
+BuildRequires: libxslt-progs
 BuildRequires: lvm2
-BuildRequires: meson >= 0.54.0
+BuildRequires: meson >= 0.56.0
 BuildRequires: ncurses-devel
 %{?with_netcf:BuildRequires:   netcf-devel >= 0.2.0}
+BuildRequires: ninja >= 1.5
+BuildRequires: nss-devel >= 3
 BuildRequires: numactl-devel >= 2.0.6
 BuildRequires: open-iscsi
 %{?with_hyperv:BuildRequires:  openwsman-devel >= 2.6.3}
@@ -112,36 +126,46 @@ BuildRequires:    parted-devel >= 1.8.0
 BuildRequires: pkgconfig
 %{?with_polkit:BuildRequires:  polkit}
 %{?with_polkit:BuildRequires:  polkit-devel >= 0.90}
+BuildRequires: python3 >= 1:3.0
 BuildRequires: readline-devel >= 7.0
 BuildRequires: rpcsvc-proto
+BuildRequires: rpm-build >= 4.6
 BuildRequires: rpmbuild(macros) >= 1.753-5
-%{?with_sanlock:BuildRequires: sanlock-devel >= 0.8}
+%{?with_sanlock:BuildRequires: sanlock-devel >= 3.5.0}
+BuildRequires: sed >= 4.0
 %{?with_systemtap:BuildRequires:       systemtap-sdt-devel}
+BuildRequires: tar >= 1:1.22
 BuildRequires: udev-devel >= 1:219
 %{?with_wireshark:BuildRequires:       wireshark-devel >= 2.6.0}
-%{?with_libxl:BuildRequires:   xen-devel >= 4.6.0}
+%{?with_libxl:BuildRequires:   xen-devel >= 4.13}
 # For disk driver
 BuildRequires: xorg-lib-libpciaccess-devel >= 0.10.0
+BuildRequires: xz
 BuildRequires: yajl-devel >= 2.0.3
-BuildRequires: zfs
-BuildRequires: zfs-devel
-Requires:      curl-libs >= 7.18.0
-Requires:      device-mapper >= 1.0.0
+%{?with_zfs:BuildRequires:     zfs}
+%{?with_zfs:BuildRequires:     zfs-devel}
+Requires:      curl-libs >= 7.19.1
+Requires:      cyrus-sasl-libs >= 2.1.26
+Requires:      device-mapper-libs >= 1.0.0
+Requires:      glib2 >= 1:2.56.0
+Requires:      gnutls-libs >= 3.6.0
+%{?with_apparmor:Requires:     libapparmor >= 3.0.0}
 Requires:      libcap-ng >= 0.4.0
 Requires:      libnl >= 3.2
 Requires:      libpcap >= 1.5.0
 Requires:      libselinux >= 2.5
-Requires:      libssh >= 0.7
+Requires:      libssh >= 0.8.1
 Requires:      libssh2 >= 1.3
 Requires:      libxml2 >= 1:2.9.1
 %{?with_hyperv:Requires:       openwsman-libs >= 2.6.3}
-Obsoletes:     libvirt-daemon-esx
-Obsoletes:     libvirt-daemon-hyperv
-Obsoletes:     libvirt-daemon-openvz
-Obsoletes:     libvirt-daemon-phyp
-Obsoletes:     libvirt-daemon-uml
-Obsoletes:     libvirt-daemon-vmware
-Obsoletes:     libvirt-daemon-xen
+Requires:      yajl >= 2.0.3
+Obsoletes:     libvirt-daemon-esx < 0.9.13
+Obsoletes:     libvirt-daemon-hyperv < 0.9.13
+Obsoletes:     libvirt-daemon-openvz < 0.9.13
+Obsoletes:     libvirt-daemon-phyp < 6.0.0
+Obsoletes:     libvirt-daemon-uml < 5.0.0
+Obsoletes:     libvirt-daemon-vmware < 0.9.13
+Obsoletes:     libvirt-daemon-xen < 0.9.13
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -172,35 +196,23 @@ wirtualizacji.
 Ten pakiet zawiera podstawowe biblioteki oraz plik konfiguracyjny.
 
 %package -n bash-completion-%{name}
-Summary:        bash-completion for libvirt
-Group:          Applications/Shells
-Requires:       bash-completion
-%if "%{_rpmversion}" >= "5"
-BuildArch:      noarch
-%endif
+Summary:       bash-completion for libvirt
+Summary(pl.UTF-8):     Bashowe dopełnianie składni poleceń libvirt
+Group:         Applications/Shells
+Requires:      bash-completion >= 1:2.0
+BuildArch:     noarch
 
 %description -n bash-completion-%{name}
 This package provides bash-completion for libvirt.
 
+%description -n bash-completion-%{name} -l pl.UTF-8
+Ten pakiet zapewnia bashowe dopełnianie składni dla poleceń libvirt.
+
 %package devel
 Summary:       Development files for programs using libvirt
 Summary(pl.UTF-8):     Pliki programistyczne do programów wykorzystujących libvirt
 Group:         Development/Libraries
 Requires:      %{name} = %{version}-%{release}
-Requires:      audit-libs-devel
-Requires:      curl-devel >= 7.18.0
-Requires:      dbus-devel >= 1.0.0
-Requires:      device-mapper-devel >= 1.0.0
-Requires:      gnutls-devel >= 3.2.0
-%{?with_apparmor:Requires:     libapparmor-devel}
-Requires:      libcap-ng-devel >= 0.4.0
-Requires:      libgcrypt-devel
-Requires:      libnl-devel >= 3.2
-Requires:      libpcap-devel >= 1.5.0
-Requires:      libselinux-devel >= 2.5
-Requires:      libxml2-devel >= 1:2.9.1
-Requires:      numactl-devel >= 2.0.6
-%{?with_hyperv:Requires:       openwsman-devel >= 2.6.3}
 
 %description devel
 Libvirt is a C toolkit to interact with the virtualization
@@ -216,11 +228,44 @@ obecnych wersji Linuksa.
 Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia programów
 wykorzystujących bibliotekę libvirt.
 
+%package static
+Summary:       Development static libraries for programs using libvirt
+Summary(pl.UTF-8):     Statyczne biblioteki programistyczne do programów wykorzystujących libvirt
+Group:         Development/Libraries
+Requires:      %{name}-devel = %{version}-%{release}
+
+%description static
+Libvirt is a C toolkit to interact with the virtualization
+capabilities of recent versions of Linux.
+
+This package contains the static libraries for developing programs
+using the libvirt library.
+
+%description static -l pl.UTF-8
+Libvirt to zestaw narzędzi w C do współpracy z funkcjami wirtualizacji
+obecnych wersji Linuksa.
+
+Ten pakiet zawiera biblioteki statyczne do tworzenia programów
+wykorzystujących bibliotekę libvirt.
+
+%package doc
+Summary:       Documentation for libvirt
+Summary(pl.UTF-8):     Dokumentacja do libvirt
+Group:         Documentation
+BuildArch:     noarch
+
+%description doc
+Documentation for libvirt.
+
+%description doc -l pl.UTF-8
+Dokumentacja do libvirt.
+
 %package lock-sanlock
 Summary:       Sanlock lock manager plugin for libvirt
 Summary(pl.UTF-8):     Zarządca blokad sanlock dla biblioteki libvirt
 Group:         Libraries
 Requires:      %{name}-daemon = %{version}-%{release}
+Requires:      sanlock-libs >= 3.5.0
 
 %description lock-sanlock
 Sanlock lock manager plugin for libvirt.
@@ -232,27 +277,30 @@ Zarządca blokad sanlock dla biblioteki libvirt.
 Summary:       Server side daemon and supporting files for libvirt library
 Summary(pl.UTF-8):     Demon działający po stronie serwera oraz pliki wspierające dla biblioteki libvirt
 Group:         Applications/System
+Requires(post,preun):  /sbin/chkconfig
 Requires:      %{name} = %{version}-%{release}
+Requires:      device-mapper >= 1.0.0
 Requires:      iproute2
 Requires:      libblkid >= 2.17
+# iscsi-direct driver
+Requires:      libiscsi >= 1.18.0
 %{?with_netcf:Requires:        netcf >= 0.2.0}
 Requires:      parted-libs >= 1.8.0
 Requires:      rc-scripts
 # Needed for probing the power management features of the host.
 Requires:      pm-utils
-Requires:      udev-libs >= 1:218
+Requires:      udev-libs >= 1:219
 Requires:      util-linux
 Requires:      virtual(module-tools)
 Requires:      xorg-lib-libpciaccess >= 0.10.0
-Requires(post,preun):  /sbin/chkconfig
 Suggests:      bridge-utils
-Suggests:      cyrus-sasl
-Suggests:      cyrus-sasl-digest-md5
+Suggests:      cyrus-sasl >= 2.1.26
+Suggests:      cyrus-sasl-digest-md5 >= 2.1.26
 Suggests:      dmidecode
 Suggests:      dnsmasq >= 2.41
 Suggests:      ebtables
 Suggests:      gawk
-Suggests:      glusterfs-client >= 2.0.1
+Suggests:      glusterfs-client >= 3.4.1
 Suggests:      iptables
 Suggests:      iptables
 Suggests:      libcgroup
@@ -302,27 +350,39 @@ Wtyczka składowania danych wykorzystująca urządzenie blokowe RADOS
 (system plików Ceph).
 
 %package daemon-ch
-Summary:       Server side driver required to run Cloud-Hypervisor
-Summary(pl.UTF-8):     Sterownik wymagany po stronie serwera do uruchamiania gości Cloud-Hypervisor
+Summary:       Cloud Hypervisor server side driver
+Summary(pl.UTF-8):     Sterownik wymagany po stronie serwera do uruchamiania gości Cloud Hypervisor
 Group:         Libraries
 Requires:      %{name}-daemon = %{version}-%{release}
 Provides:      libvirt(hypervisor)
 
 %description daemon-ch
-Server side driver required to manage the virtualization capabilities
-of Cloud-Hypervisor.
+Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) that
+runs on top of KVM. The project focuses on exclusively running modern,
+cloud workloads, on top of a limited set of hardware architectures and
+platforms. Cloud workloads refers to those that are usually run by
+customers inside a cloud provider. For our purposes this means modern
+operating systems with most I/O handled by paravirtualised devices
+(i.e. virtio), no requirement for legacy devices, and 64-bit CPUs.
 
 %description daemon-ch -l pl.UTF-8
-Sterownik wymagany po stronie serwera do zarządzania funkcjami
-wirtualizacji Cloud-Hypervisor.
+Cloud Hypervisor to mający otwarte źródła monitor maszyn wirtualnych
+(VMM), działający powyżej KVM. Projekt skupia się wyłącznie na
+uruchamianiu nowoczesnych, chmurowych zadań na ograniczonym zbiorze
+architektur i platform sprzętowych. Zadania chmurowe to te, które
+zwykle są uruchamiane przez klientów u dostawców chmurowych. W tym
+przypadku oznacza to nowoczesne systemy operacyjne z większością
+we/wy obsługiwaną przez urządzenia parawirtualizowane (np. virtio),
+bez wymogu tradycyjnych urządzeń, oraz 64-bitowe procesory.
 
 %package daemon-libxl
 Summary:       Server side driver required to run XEN guests (xenlight)
 Summary(pl.UTF-8):     Sterownik wymagany po stronie serwera do uruchamiania gości XEN (xenlight)
 Group:         Libraries
 Requires:      %{name}-daemon = %{version}-%{release}
-Requires:      xen >= 4.4
+Requires:      xen >= 4.13
 Provides:      libvirt(hypervisor)
+Obsoletes:     libvirt-daemon-xen < 4.3.0
 
 %description daemon-libxl
 Server side driver required to manage the virtualization capabilities
@@ -337,7 +397,7 @@ Summary:    Server side driver required to run LXC guests
 Summary(pl.UTF-8):     Sterownik wymagany po stronie serwera do uruchamiania gości LXC
 Group:         Libraries
 Requires:      %{name}-daemon = %{version}-%{release}
-Requires:      libfuse >= 2.8.6
+Requires:      libfuse3 >= 3.1.0
 Provides:      libvirt(hypervisor)
 
 %description daemon-lxc
@@ -356,8 +416,9 @@ Requires:   %{name}-daemon = %{version}-%{release}
 Requires:      /usr/bin/qemu-img
 Requires:      bzip2
 Requires:      gzip
+Requires:      libnbd >= 1.0
 Requires:      lzop
-Requires:      qemu-system-x86
+Requires:      qemu-system-x86 >= 4.2
 Requires:      xz
 Provides:      libvirt(hypervisor)
 
@@ -370,29 +431,31 @@ Sterownik wymagany po stronie serwera do zarządzania funkcjami
 wirtualizacji emulatora QEMU.
 
 %package daemon-vbox
-Summary:       Server side driver required to run Oracle VirtualBox guests
-Summary(pl.UTF-8):     Sterownik wymagany po stronie serwera do uruchamiania gości Oracle VirtualBox
+Summary:       Server side driver required to run VirtalBox guests
+Summary(pl.UTF-8):     Sterownik wymagany po stronie serwera do uruchamiania gości VirtalBox
 Group:         Libraries
+Requires:      %{name}-daemon = %{version}-%{release}
+Requires:      VirtualBox >= 5.2
 Provides:      libvirt(hypervisor)
 
 %description daemon-vbox
 Server side driver required to manage the virtualization capabilities
-of Oracle VirtualBox
+of VirtualBox.
 
 %description daemon-vbox -l pl.UTF-8
 Sterownik wymagany po stronie serwera do zarządzania funkcjami
-wirtualizacji emulatora Oracle VirtualBox.
+wirtualizacji VirtualBoksa.
 
 %package client
 Summary:       Client side utilities of the libvirt library
 Summary(pl.UTF-8):     Narzędzia klienckie do biblioteki libvirt
 Group:         Applications/System
+Requires(post,preun):  /sbin/chkconfig
 Requires:      %{name} = %{version}-%{release}
 Requires:      gettext >= 0.18.1.1-6
-Requires:      gnutls >= 3.2.0
+Requires:      gnutls >= 3.6.0
 Requires:      netcat-openbsd
 Requires:      rc-scripts
-Requires(post,preun):  /sbin/chkconfig
 
 %description client
 Client binaries needed to access to the virtualization capabilities of
@@ -402,6 +465,19 @@ recent versions of Linux (and other OSes).
 Programy klienckie potrzebne do funkcji wirtualizacji nowych wersji
 Linuksa (oraz innych systemów operacyjnych).
 
+%package ssh-proxy
+Summary:       Libvirt SSH proxy
+Summary(pl.UTF-8):     Proxy SSH dla Libvirt
+Group:         Applications/System
+Requires:      %{name} = %{version}-%{release}
+Requires:      openssh-clients
+
+%description ssh-proxy
+Allows SSH into domains via VSOCK without need for network.
+
+%description ssh-proxy -l pl.UTF-8
+Ten pakiet pozwala na SSH do domen poprzez VSOCK bez wymagania sieci.
+
 %package utils
 Summary:       Tools to interact with virtualization capabilities (metapackage)
 Summary(pl.UTF-8):     Narzędzia do współpracy z funkcjami wirtualizacyjnymi (metapakiet)
@@ -443,7 +519,7 @@ Sondy systemtap/dtrace dla libvirt.
 Summary:       Wireshark dissector module for libvirt packets
 Summary(pl.UTF-8):     Moduł sekcji Wiresharka do pakietów libvirt
 Group:         Libraries
-Requires:      wireshark >= 1.11.3
+Requires:      wireshark >= 2.6.0
 
 %description -n wireshark-libvirt
 Wireshark dissector module for libvirt packets.
@@ -459,18 +535,27 @@ Moduł sekcji Wiresharka do pakietów libvirt.
 %patch3 -p1
 %patch4 -p1
 
+%if %{with static_libs}
+%{__sed} -i '/^libvirt\(_admin\|_lxc\|_qemu\)\?_lib = / s/shared_library/library/' src/meson.build
+%endif
+
+%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' tools/{virt-qemu-qmp-proxy,virt-qemu-sev-validate}
+
+%{__sed} -i -e 's,/usr/lib/qemu,/usr/%{_lib}/qemu,' -e 's,/usr/lib",/usr/%{_lib}/",' src/qemu/qemu_interface.c
+%{__sed} -i -e 's,/usr/libexec",%{_libexecdir}",' src/qemu/qemu_process.c
+
 %build
 %meson build \
        -Dpackager="TLD-Linux" \
        -Dpackager_version="%{name}-%{version}-%{release}.%{_target_cpu}" \
-       -Dqemu_user=qemu \
        -Dqemu_group=qemu \
+       -Dqemu_user=qemu \
        -Dapparmor=%{__enabled_disabled apparmor} \
        -Dapparmor_profiles=%{__enabled_disabled apparmor} \
        -Dattr=enabled \
        -Daudit=enabled \
        -Dbash_completion=enabled \
-       -Dbash_completion_dir=/etc/bash_completion.d \
+       -Dbash_completion_dir=%{bash_compdir} \
        -Dblkid=enabled \
        -Dcapng=enabled \
        -Dcurl=enabled \
@@ -509,7 +594,7 @@ Moduł sekcji Wiresharka do pakietów libvirt.
        -Dstorage_rbd=%{__enabled_disabled ceph} \
        -Dstorage_scsi=enabled \
        -Dstorage_vstorage=disabled \
-       -Dstorage_zfs=enabled \
+       -Dstorage_zfs=%{__enabled_disabled zfs} \
        -Ddriver_bhyve=disabled \
        -Ddriver_ch=%{__enabled_disabled ch} \
        -Ddriver_esx=%{__enabled_disabled esx} \
@@ -613,8 +698,8 @@ fi
 
 %files -n bash-completion-%{name}
 %defattr(644,root,root,755)
-/etc/bash_completion.d/virsh
-/etc/bash_completion.d/virt-admin
+%{bash_compdir}/virsh
+%{bash_compdir}/virt-admin
 
 %files devel
 %defattr(644,root,root,755)
@@ -632,6 +717,20 @@ fi
 %{_mandir}/man7/virkeycode-*.7*
 %{_mandir}/man7/virkeyname-*.7*
 
+%if %{with static_libs}
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libvirt.a
+%{?with_lxc:%{_libdir}/libvirt-lxc.a}
+%{_libdir}/libvirt-qemu.a
+%endif
+
+%files doc
+%defattr(644,root,root,755)
+%dir %{_docdir}/libvirt
+%{_docdir}/libvirt/examples
+%{_docdir}/libvirt/html
+
 %if %{with sanlock}
 %files lock-sanlock
 %defattr(644,root,root,755)
@@ -648,24 +747,33 @@ fi
 
 %files daemon
 %defattr(644,root,root,755)
-%doc docs/*.xml
-%dir %attr(700,root,root) %{_sysconfdir}/libvirt/nwfilter
-%dir %attr(700,root,root) %{_sysconfdir}/libvirt/qemu
-%dir %attr(700,root,root) %{_sysconfdir}/libvirt/qemu/networks
-%dir %attr(700,root,root) %{_sysconfdir}/libvirt/qemu/networks/autostart
+%if %{with apparmor}
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/abstractions/libvirt-lxc
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/abstractions/libvirt-qemu
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/libvirt
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/usr.lib.libvirt.virt-aa-helper
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/usr.sbin.libvirtd
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/usr.sbin.virtqemud
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/usr.sbin.virtxend
+%endif
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/libvirt-admin.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/libvirtd.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/network.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtinterfaced.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtlockd.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/libvirt-admin.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtlogd.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtinterfaced.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtnetworkd.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtnodedevd.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtnwfilterd.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtproxyd.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtsecretd.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtstoraged.conf
+%dir %attr(700,root,root) %{_sysconfdir}/libvirt/qemu
+%dir %attr(700,root,root) %{_sysconfdir}/libvirt/qemu/networks
 %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/qemu/networks/default.xml
+%dir %attr(700,root,root) %{_sysconfdir}/libvirt/qemu/networks/autostart
 %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
+%dir %attr(700,root,root) %{_sysconfdir}/libvirt/nwfilter
 %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/nwfilter/*.xml
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sasl/libvirt.conf
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/libvirtd
@@ -675,33 +783,50 @@ fi
 %attr(754,root,root) /etc/rc.d/init.d/virtlockd
 %attr(754,root,root) /etc/rc.d/init.d/virtlogd
 %config(noreplace) %verify(not md5 mtime size) /etc/sysctl.d/60-libvirtd.conf
-%config(noreplace) %verify(not md5 mtime size) /etc/sysctl.d/60-qemu-postcopy-migration.conf
 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/libvirtd
-%if %{with apparmor}
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/local/usr.lib.libvirt.virt-aa-helper
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/usr.lib.libvirt.virt-aa-helper
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/usr.sbin.libvirtd
-%endif
-%attr(755,root,root) %{_libexecdir}/libvirt_iohelper
-%attr(755,root,root) %{_libexecdir}/libvirt_parthelper
-%if %{with apparmor}
-%attr(755,root,root) %{_libexecdir}/virt-aa-helper
-%endif
 %attr(755,root,root) %{_sbindir}/libvirtd
+%attr(755,root,root) %{_sbindir}/virtinterfaced
 %attr(755,root,root) %{_sbindir}/virtlockd
 %attr(755,root,root) %{_sbindir}/virtlogd
-%attr(755,root,root) %{_sbindir}/virtinterfaced
 %attr(755,root,root) %{_sbindir}/virtnetworkd
 %attr(755,root,root) %{_sbindir}/virtnodedevd
 %attr(755,root,root) %{_sbindir}/virtnwfilterd
 %attr(755,root,root) %{_sbindir}/virtproxyd
 %attr(755,root,root) %{_sbindir}/virtsecretd
 %attr(755,root,root) %{_sbindir}/virtstoraged
-%{_datadir}/augeas/lenses/libvirtd.aug
+%attr(755,root,root) %{_libexecdir}/libvirt_iohelper
+%attr(755,root,root) %{_libexecdir}/libvirt_leaseshelper
+%attr(755,root,root) %{_libexecdir}/libvirt_parthelper
+%if %{with apparmor}
+%attr(755,root,root) %{_libexecdir}/virt-aa-helper
+%endif
+%dir %{_libdir}/libvirt/connection-driver
+%{?with_netcf:%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_interface.so}
+%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_network.so
+%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_nodedev.so
+%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_nwfilter.so
+%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_secret.so
+%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_storage.so
+%dir %{_libdir}/libvirt/lock-driver
+%attr(755,root,root) %{_libdir}/libvirt/lock-driver/lockd.so
+%dir %{_libdir}/libvirt/storage-backend
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_disk.so
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_fs.so
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_iscsi.so
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_logical.so
+# mpath requires libdevmapper, but libvirt itself requires it too
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_mpath.so
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_scsi.so
+%{?with_zfs:%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_zfs.so}
+%dir %{_libdir}/libvirt/storage-file
+%attr(755,root,root) %{_libdir}/libvirt/storage-file/libvirt_storage_file_fs.so
 %{_datadir}/augeas/lenses/libvirt_lockd.aug
+%{_datadir}/augeas/lenses/libvirtd.aug
+%{_datadir}/augeas/lenses/libvirtd_network.aug
+%{_datadir}/augeas/lenses/virtinterfaced.aug
 %{_datadir}/augeas/lenses/virtlockd.aug
 %{_datadir}/augeas/lenses/virtlogd.aug
-%{_datadir}/augeas/lenses/virtinterfaced.aug
 %{_datadir}/augeas/lenses/virtnetworkd.aug
 %{_datadir}/augeas/lenses/virtnodedevd.aug
 %{_datadir}/augeas/lenses/virtnwfilterd.aug
@@ -710,15 +835,17 @@ fi
 %{_datadir}/augeas/lenses/virtstoraged.aug
 %{_datadir}/augeas/lenses/tests/test_libvirtd.aug
 %{?with_qemu:%{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug}
+%{_datadir}/augeas/lenses/tests/test_libvirtd_network.aug
+%{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug
 %{_datadir}/augeas/lenses/tests/test_virtlockd.aug
 %{_datadir}/augeas/lenses/tests/test_virtlogd.aug
-%{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug
 %{_datadir}/augeas/lenses/tests/test_virtnetworkd.aug
 %{_datadir}/augeas/lenses/tests/test_virtnodedevd.aug
 %{_datadir}/augeas/lenses/tests/test_virtnwfilterd.aug
 %{_datadir}/augeas/lenses/tests/test_virtproxyd.aug
 %{_datadir}/augeas/lenses/tests/test_virtsecretd.aug
 %{_datadir}/augeas/lenses/tests/test_virtstoraged.aug
+%{_datadir}/libvirt/cpu_map
 %if %{with polkit}
 %{_datadir}/polkit-1/actions/org.libvirt.api.policy
 %{_datadir}/polkit-1/actions/org.libvirt.unix.policy
@@ -744,29 +871,6 @@ fi
 %attr(711,root,root) %dir /var/cache/libvirt
 %dir /var/run/libvirt
 %dir /var/run/libvirt/network
-%attr(755,root,root) %{_libexecdir}/libvirt_leaseshelper
-%dir %{_libdir}/libvirt/connection-driver
-%{_datadir}/libvirt/cpu_map
-%{?with_netcf:%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_interface.so}
-%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_network.so
-%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_nodedev.so
-%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_nwfilter.so
-%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_secret.so
-%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_storage.so
-%dir %{_libdir}/libvirt/lock-driver
-%attr(755,root,root) %{_libdir}/libvirt/lock-driver/lockd.so
-%dir %{_libdir}/libvirt/storage-backend
-%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_disk.so
-%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_fs.so
-%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_iscsi.so
-%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so
-%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_logical.so
-# mpath requires libdevmapper, but libvirt itself requires it too
-%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_mpath.so
-%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_scsi.so
-%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_zfs.so
-%dir %{_libdir}/libvirt/storage-file
-%attr(755,root,root) %{_libdir}/libvirt/storage-file/libvirt_storage_file_fs.so
 
 %if %{with glusterfs}
 %files daemon-storage-gluster
@@ -785,8 +889,8 @@ fi
 %files daemon-ch
 %defattr(644,root,root,755)
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtchd.conf
-%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_ch.so
 %attr(755,root,root) %{_sbindir}/virtchd
+%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_ch.so
 %{_datadir}/augeas/lenses/virtchd.aug
 %{_datadir}/augeas/lenses/tests/test_virtchd.aug
 %endif
@@ -799,8 +903,8 @@ fi
 %{?with_sanlock:%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/libxl-sanlock.conf}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/virtxend.conf
 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/libvirtd.libxl
-%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_libxl.so
 %attr(755,root,root) %{_sbindir}/virtxend
+%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_libxl.so
 %{_datadir}/augeas/lenses/libvirtd_libxl.aug
 %{_datadir}/augeas/lenses/virtxend.aug
 %{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
@@ -821,16 +925,16 @@ fi
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/abstractions/libvirt-lxc
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/libvirt/TEMPLATE.lxc
 %endif
-%attr(700,root,root) %dir /var/lib/libvirt/lxc
-%attr(700,root,root) %dir /var/run/libvirt/lxc
-%attr(700,root,root) %dir /var/log/libvirt/lxc
+%attr(755,root,root) %{_sbindir}/virtlxcd
+%attr(755,root,root) %{_libexecdir}/libvirt_lxc
+%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_lxc.so
 %{_datadir}/augeas/lenses/libvirtd_lxc.aug
 %{_datadir}/augeas/lenses/virtlxcd.aug
 %{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
 %{_datadir}/augeas/lenses/tests/test_virtlxcd.aug
-%attr(755,root,root) %{_libexecdir}/libvirt_lxc
-%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_lxc.so
-%attr(755,root,root) %{_sbindir}/virtlxcd
+%attr(700,root,root) %dir /var/lib/libvirt/lxc
+%attr(700,root,root) %dir /var/run/libvirt/lxc
+%attr(700,root,root) %dir /var/log/libvirt/lxc
 %{_mandir}/man8/virtlxcd.8*
 %endif
 
@@ -846,16 +950,17 @@ fi
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/abstractions/libvirt-qemu
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apparmor.d/libvirt/TEMPLATE.qemu
 %endif
-%attr(750,qemu,qemu) %dir /var/cache/libvirt/qemu
-%attr(750,qemu,qemu) %dir /var/lib/libvirt/qemu
-%attr(700,root,root) %dir /var/log/libvirt/qemu
-%attr(700,root,root) %dir /var/run/libvirt/qemu
+%attr(755,root,root) %{_sbindir}/virtqemud
+%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_qemu.so
 %{_datadir}/augeas/lenses/libvirtd_qemu.aug
 %{_datadir}/augeas/lenses/virtqemud.aug
 %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
 %{_datadir}/augeas/lenses/tests/test_virtqemud.aug
-%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_qemu.so
-%attr(755,root,root) %{_sbindir}/virtqemud
+%attr(750,qemu,qemu) %dir /var/cache/libvirt/qemu
+%attr(750,qemu,qemu) %dir /var/lib/libvirt/qemu
+%attr(700,root,root) %dir /var/log/libvirt/qemu
+%attr(700,root,root) %dir /var/run/libvirt/qemu
+%config(noreplace) %verify(not md5 mtime size) /etc/sysctl.d/60-qemu-postcopy-migration.conf
 %{_mandir}/man8/virtqemud.8*
 %endif
 
@@ -889,7 +994,7 @@ fi
 %endif
 %attr(755,root,root) %{_bindir}/virt-ssh-helper
 %attr(754,root,root) %{_libexecdir}/libvirt-guests.sh
-%{_libdir}/virt-login-shell-helper
+%attr(754,root,root) %{_libexecdir}/virt-login-shell-helper
 %{_mandir}/man1/virsh.1*
 %{_mandir}/man1/virt-admin.1*
 %{_mandir}/man1/virt-host-validate.1*
@@ -902,6 +1007,7 @@ fi
 %{_mandir}/man1/virt-qemu-run.1*
 %{_mandir}/man1/virt-qemu-sev-validate.1*
 %endif
+%{_mandir}/man8/libvirt-guests.8*
 %{_mandir}/man8/virt-ssh-helper.8*
 %dir %{_datadir}/libvirt/schemas
 %{_datadir}/libvirt/schemas/basictypes.rng
@@ -933,6 +1039,11 @@ fi
 # for test driver (built into libvirt)
 %{_datadir}/libvirt/test-screenshot.png
 
+%files ssh-proxy
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/libvirt-ssh-proxy
+%config(noreplace) %verify(not md5 mtime size) /etc/ssh/ssh_config.d/30-libvirt-ssh-proxy.conf
+
 %files utils
 %defattr(644,root,root,755)