# TODO:
-# - wireshark-dissector
-# - seems that lxc patch is not needed anymore, verify that before removing
+# - parallels-sdk >= 7.0.22?
+# - virtuozzo storage?
# - pldize virtlockd.init
-# - updated vserver patch, if anybody needs it
+# - update vserver patch, if anybody needs it
#
# Conditional build:
-%bcond_without ceph # RADOS BD (Ceph) storage support
+# - virtualization
%bcond_without esx # VMware ESX support
-%bcond_without glusterfs # GlusterFS storage support
%bcond_without hyperv # Hyper-V support
%bcond_without libxl # libxenlight support
%bcond_without lxc # LXC support
-%bcond_without netcf # host interfaces support
%bcond_without openvz # OpenVZ support
%bcond_without phyp # PHYP support
-%bcond_without polkit # PolicyKit support
%bcond_without qemu # Qemu support
-%bcond_without sanlock # sanlock storage lock manager
-%bcond_without systemtap # systemtap/dtrace probes
%bcond_without uml # UML support
%bcond_without vbox # VirtualBox support
%bcond_without vmware # VMware Workstation/Player support
%bcond_with vserver # Support for Linux-VServer guests
%bcond_without xenapi # Xen API (Citrix XenServer) support
%bcond_without xen # Xen support
+# - storage
+%bcond_without ceph # RADOS BD (Ceph) storage support
+%bcond_without glusterfs # GlusterFS storage support
+# - storage locking
+%bcond_without sanlock # sanlock storage lock manager
+# - other
+%bcond_without netcf # host interfaces support
+%bcond_without polkit # PolicyKit support
+%bcond_without systemtap # systemtap/dtrace probes
+%bcond_without wireshark # wireshark dissector module
%bcond_without static_libs # static libraries build
-%bcond_without ldap # don't require openldap-devel
# qemu available only on x86 and ppc
%ifnarch %{ix86} %{x8664} ppc
Summary: Toolkit to interact with virtualization capabilities
Summary(pl.UTF-8): Narzędzia współpracujące z funkcjami wirtualizacji
Name: libvirt
-Version: 2.1.0
+Version: 3.8.0
Release: 1
License: LGPL v2.1+
Group: Libraries
Source0: http://libvirt.org/sources/libvirt-%{version}.tar.xz
-# Source0-md5: fd1c054a8b59235e877efb728de79386
+# Source0-md5: cc6bfd0a1dd9557eb81bc971d6a3e02e
Source1: %{name}.init
Source2: %{name}.tmpfiles
Patch0: %{name}-sasl.patch
-Patch1: %{name}-lxc.patch
Patch2: %{name}-qemu-acl.patch
Patch3: virtlockd.init.patch
Patch4: %{name}-udevadm-settle.patch
Patch6: bashisms.patch
Patch7: %{name}-guests.init.patch
URL: http://www.libvirt.org/
+BuildRequires: acl-devel
+BuildRequires: attr-devel
BuildRequires: audit-libs-devel
BuildRequires: augeas-devel
BuildRequires: autoconf >= 2.50
BuildRequires: dbus-devel >= 1.0.0
BuildRequires: device-mapper-devel >= 1.0.0
BuildRequires: gawk
+BuildRequires: gcc >= 6:4.4
BuildRequires: gettext-tools >= 0.17
%{?with_glusterfs:BuildRequires: glusterfs-devel >= 3.4.1}
-BuildRequires: gnutls-devel >= 1.0.25
+BuildRequires: gnutls-devel >= 2.2.0
BuildRequires: libapparmor-devel
BuildRequires: libblkid-devel >= 2.17
BuildRequires: libcap-ng-devel >= 0.4.0
BuildRequires: libgcrypt-devel
BuildRequires: libnl-devel >= 3.2
BuildRequires: libpcap-devel >= 1.0.0
-BuildRequires: libselinux-devel >= 2.0.82
+BuildRequires: libselinux-devel >= 2.5
+BuildRequires: libssh-devel >= 0.7
BuildRequires: libssh2-devel >= 1.3
BuildRequires: libtool
%{?with_xenapi:BuildRequires: libxenserver-devel}
BuildRequires: ncurses-devel
%{?with_netcf:BuildRequires: netcf-devel >= 0.2.0}
BuildRequires: numactl-devel
-%{?with_ldap:BuildRequires: openldap-devel}
%{?with_hyperv:BuildRequires: openwsman-devel >= 2.2.3}
BuildRequires: parted-devel >= 1.8.0
BuildRequires: pkgconfig
%{?with_sanlock:BuildRequires: sanlock-devel >= 0.8}
BuildRequires: systemd-devel
%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
-BuildRequires: udev-devel >= 1:145
+BuildRequires: udev-devel >= 1:218
+%{?with_wireshark:BuildRequires: wireshark-devel >= 1.11.3}
%{?with_xen:BuildRequires: xen-devel >= 4.2}
+%{?with_libxl:BuildRequires: xen-devel >= 4.4}
# For disk driver
BuildRequires: xorg-lib-libpciaccess-devel >= 0.10.0
BuildRequires: yajl-devel
Requires: libcap-ng >= 0.4.0
Requires: libnl >= 3.2
Requires: libpcap >= 1.0.0
-Requires: libselinux >= 2.0.82
+Requires: libselinux >= 2.5
+Requires: libssh >= 0.7
Requires: libssh2 >= 1.3
Requires: libxml2 >= 1:2.6.0
%{?with_hyperv:Requires: openwsman-libs >= 2.2.3}
Requires: curl-devel >= 7.18.0
Requires: dbus-devel >= 1.0.0
Requires: device-mapper-devel >= 1.0.0
-Requires: gnutls-devel >= 1.0.25
+Requires: gnutls-devel >= 2.2.0
Requires: libapparmor-devel
Requires: libcap-ng-devel >= 0.4.0
Requires: libgcrypt-devel
Requires: libnl-devel >= 3.2
Requires: libpcap-devel >= 1.0.0
-Requires: libselinux-devel >= 2.0.82
+Requires: libselinux-devel >= 2.5
Requires: libxml2-devel >= 1:2.6.0
Requires: numactl-devel
%{?with_hyperv:Requires: openwsman-devel >= 2.2.3}
# Needed for probing the power management features of the host.
Requires: pm-utils
Requires: systemd-units >= 37-0.10
-Requires: udev-libs >= 1:145
+Requires: udev-libs >= 1:218
Requires: util-linux
Requires: virtual(module-tools)
Requires: xorg-lib-libpciaccess >= 0.10.0
wirtualizacji nowych wersji Linuksa. Wymaga podpakietu specyficznego
dla hipernadzorcy.
+%package daemon-storage-gluster
+Summary: Storage driver plugin for GlusterFS
+Summary(pl.UTF-8): Wtyczka składowania danych wykorzystująca GlusterFS
+Group: Libraries
+Requires: %{name}-daemon = %{version}-%{release}
+Requires: glusterfs-libs >= 3.4.1
+
+%description daemon-storage-gluster
+Storage driver plugin for GlusterFS.
+
+%description daemon-storage-gluster -l pl.UTF-8
+Wtyczka składowania danych wykorzystująca system plików GlusterFS.
+
+%package daemon-storage-rbd
+Summary: Storage driver plugin for Ceph RADOS Block Device
+Summary(pl.UTF-8): Wtyczka składowania danych wykorzystująca urządzenie blokowe RADOS (Ceph)
+Group: Libraries
+Requires: %{name}-daemon = %{version}-%{release}
+
+%description daemon-storage-rbd
+Storage driver plugin for Ceph RADOS Block Device.
+
+%description daemon-storage-rbd -l pl.UTF-8
+Wtyczka składowania danych wykorzystująca urządzenie blokowe RADOS
+(system plików Ceph).
+
%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: /usr/sbin/qcow-create
-Requires: xen
+Requires: xen >= 4.4
Provides: libvirt(hypervisor)
%description daemon-libxl
Group: Applications/System
Requires: %{name} = %{version}-%{release}
Requires: gettext >= 0.18.1.1-6
-Requires: gnutls >= 1.0.25
+Requires: gnutls >= 2.2.0
Requires: netcat-openbsd
Requires: rc-scripts
Requires(post): systemd-units
%description -n systemtap-libvirt -l pl.UTF-8
Sondy systemtap/dtrace dla libvirt.
+%package -n wireshark-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
+
+%description -n wireshark-libvirt
+Wireshark dissector module for libvirt packets.
+
+%description -n wireshark-libvirt -l pl.UTF-8
+Moduł sekcji Wiresharka do pakietów libvirt.
+
%prep
%setup -q
%patch0 -p1
-#%%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
OVSVSCTL=/usr/bin/ovs-vsctl \
NUMAD=/usr/bin/numad \
SHEEPDOGCLI=/usr/sbin/collie \
+ ZFS=/usr/sbin/zfs \
+ ZPOOL=/usr/sbin/zpool \
--disable-silent-rules \
%{?with_static_libs:--enable-static} \
--with-html-dir=%{_gtkdocdir} \
%{__with_without vbox vbox %{_libdir}/VirtualBox} \
--with-virtualport \
%{__with_without vmware} \
+ %{!?with_wireshark:--without-wireshark-dissector} \
%{__with_without xen} \
%{__with_without xenapi} \
--with-yajl \
%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la \
%{?with_static_libs:$RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.la \
+ %{?with_static_libs:$RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.a}
%if %{with sanlock}
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.la \
%{?with_static_libs:$RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.a}
%endif
+%if %{with wireshark}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/*/libvirt.la \
+ %{?with_static_libs:$RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/*/libvirt.a} \
+%endif
%find_lang %{name}
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc ChangeLog README TODO NEWS
+%doc AUTHORS ChangeLog NEWS README.md TODO
%dir %{_sysconfdir}/libvirt
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libvirt/libvirt.conf
%attr(755,root,root) %{_libdir}/libvirt.so.*.*.*
%endif
%attr(755,root,root) %{_libdir}/libvirt-qemu.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libvirt-qemu.so.0
-%attr(755,root,root) %{_libdir}/libnss_libvirt.so.?
+
+# NSS modules
+%attr(755,root,root) %{_libdir}/libnss_libvirt.so.2
+%attr(755,root,root) %{_libdir}/libnss_libvirt_guest.so.2
%dir %{_libdir}/libvirt
%dir %{_datadir}/libvirt
-%{_datadir}/libvirt/libvirtLogo.png
%files devel
%defattr(644,root,root,755)
%{_pkgconfigdir}/libvirt-admin.pc
%{?with_lxc:%{_pkgconfigdir}/libvirt-lxc.pc}
%{_pkgconfigdir}/libvirt-qemu.pc
+%{_mandir}/man7/virkeycode-*.7*
+%{_mandir}/man7/virkeyname-*.7*
%files static
%defattr(644,root,root,755)
%attr(754,root,root) /etc/rc.d/init.d/virtlockd
%attr(754,root,root) /etc/rc.d/init.d/virtlogd
%{systemdunitdir}/libvirtd.service
+%{systemdunitdir}/virt-guest-shutdown.target
%{systemdunitdir}/virtlockd.service
%{systemdunitdir}/virtlockd.socket
%{systemdunitdir}/virtlogd.service
%{?with_vbox:%attr(755,root,root) %{_libdir}/libvirt/connection-driver/libvirt_driver_vbox.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_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_sheepdog.so
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_zfs.so
+
+%if %{with glusterfs}
+%files daemon-storage-gluster
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_gluster.so
+%endif
+
+%if %{with ceph}
+%files daemon-storage-rbd
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_rbd.so
+%endif
%if %{with libxl}
%files daemon-libxl
%dir %{_datadir}/libvirt/schemas
%{_datadir}/libvirt/schemas/basictypes.rng
%{_datadir}/libvirt/schemas/capability.rng
+%{_datadir}/libvirt/schemas/cputypes.rng
%{_datadir}/libvirt/schemas/domain.rng
%{_datadir}/libvirt/schemas/domaincaps.rng
%{_datadir}/libvirt/schemas/domaincommon.rng
%{_datadir}/libvirt/schemas/storagecommon.rng
%{_datadir}/libvirt/schemas/storagepool.rng
%{_datadir}/libvirt/schemas/storagevol.rng
+# for test driver (built into libvirt)
+%{_datadir}/libvirt/test-screenshot.png
%files utils
%defattr(644,root,root,755)
%{_datadir}/systemtap/tapset/libvirt_probes.stp
%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp
%endif
+
+%if %{with wireshark}
+%files -n wireshark-libvirt
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/wireshark/plugins/*/libvirt.so
+%endif