# -*- rpm-spec -*-
-%define mainstream_version 1.2.1
+%define mainstream_version 1.2.3
%define module_version_varname mainstream_version
-%define taglevel 0
+%define taglevel 1
+%define packager PlanetLab/OneLab
#libvirt-RPMFLAGS := --without storage-disk --without storage-iscsi --without storage-scsi \
## --without storage-fs --without storage-lvm \
%define _without_polkit true
%define _without_sasl true
%define _without_audit true
-#interface requires netcf
-#%define _without_netcf true
%define _without_avahi true
%define _without_sanlock true
%define _without_xen true
%define _without_esx true
%define _without_libxl true
%define _without_vbox true
-
+%define _without_uml true
#turn this off even on f18 as an attempt to get back /proc/meminfo
%define _without_fuse true
%define with_hyperv 0%{!?_without_hyperv:1}
%define with_xenapi 0%{!?_without_xenapi:1}
%define with_parallels 0%{!?_without_parallels:1}
+# No test for bhyve, because it does not build on Linux
# Then the secondary host drivers, which run inside libvirtd
%define with_interface 0%{!?_without_interface:%{server_drivers}}
%else
%define with_storage_sheepdog 0
%endif
-%if 0%{?fedora} >= 19
+%if 0%{?fedora} >= 19 || 0%{?rhel} >= 6
%define with_storage_gluster 0%{!?_without_storage_gluster:%{server_drivers}}
%else
%define with_storage_gluster 0
%define with_numad 0%{!?_without_numad:0}
%define with_firewalld 0%{!?_without_firewalld:0}
%define with_libssh2 0%{!?_without_libssh2:0}
+%define with_wireshark 0%{!?_without_wireshark:0}
+%define with_systemd_daemon 0%{!?_without_systemd_daemon:0}
# Non-server/HV driver defaults which are always enabled
%define with_sasl 0%{!?_without_sasl:1}
%define with_numactl 0
%endif
+# libgfapi is built only on x86_64 on rhel
+%ifnarch x86_64
+ %if 0%{?rhel} >= 6
+ %define with_storage_gluster 0
+ %endif
+%endif
+
# RHEL doesn't ship OpenVZ, VBox, UML, PowerHypervisor,
# VMWare, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
# or HyperV.
# Fedora has systemd, libvirt still used sysvinit there.
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
%define with_systemd 1
+ %define with_systemd_daemon 1
%endif
# Fedora 18 / RHEL-7 are first where firewalld support is enabled
%define with_libssh2 0%{!?_without_libssh2:1}
%endif
+# Enable wireshark plugins for all distros shipping libvirt 1.2.2 or newer
+%if 0%{?fedora} >= 21
+ %define with_wireshark 0%{!?_without_wireshark:1}
+%endif
+
# Disable some drivers when building without libvirt daemon.
# The logic is the same as in configure.ac
%if ! %{with_libvirtd}
%define mainturl stable_updates/
%endif
Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
+Patch1: libvirt-1.2.3-bypass-netns-check.patch
%if %{with_libvirtd}
Requires: libvirt-daemon = %{version}-%{release}
%if %{with_systemd}
BuildRequires: systemd-units
%endif
+%if %{with_systemd_daemon}
+BuildRequires: systemd-devel
+%endif
%if %{with_xen} || %{with_libxl}
BuildRequires: xen-devel
%endif
BuildRequires: e2fsprogs-devel
%endif
%endif
-%if %{with_storage_mpath}
+%if %{with_storage_mpath} || %{with_storage_disk}
# For Multipath support
%if 0%{?rhel} == 5
# Broken RHEL-5 packaging has header files in main RPM :-(
%else
BuildRequires: device-mapper-devel
%endif
- %if %{with_storage_rbd}
+%endif
+%if %{with_storage_rbd}
BuildRequires: ceph-devel
- %endif
%endif
%if %{with_storage_gluster}
+ %if 0%{?rhel} >= 6
+BuildRequires: glusterfs-api-devel >= 3.4.0
+BuildRequires: glusterfs-devel >= 3.4.0
+ %else
BuildRequires: glusterfs-api-devel >= 3.4.1
BuildRequires: glusterfs-devel >= 3.4.1
+ %endif
%endif
%if %{with_numactl}
# For QEMU/LXC numa info
BuildRequires: numad
%endif
+%if %{with_wireshark}
+BuildRequires: wireshark-devel
+%endif
+
Provides: bundled(gnulib)
%description
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
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
Shared libraries and client binaries needed to access to the
virtualization capabilities of recent versions of Linux (and other OSes).
+%if %{with_wireshark}
+%package wireshark
+Summary: Wireshark dissector plugin for libvirt RPC transactions
+Group: Development/Libraries
+Requires: wireshark
+Requires: %{name}-client = %{version}-%{release}
+
+%description wireshark
+Wireshark dissector plugin for better analysis of libvirt RPC traffic.
+%endif
+
%if %{with_lxc}
%package login-shell
Summary: Login shell for connecting users to an LXC container
%prep
%setup -q
+%patch1 -p1 -b .bypass-netns-check
%build
%if ! %{with_xen}
%define _with_firewalld --with-firewalld
%endif
+%if ! %{with_wireshark}
+ %define _without_wireshark --without-wireshark-dissector
+%endif
+
+%if ! %{with_systemd_daemon}
+ %define _without_systemd_daemon --without-systemd-daemon
+%endif
+
%define when %(date +"%%F-%%T")
%define where %(hostname)
%define who %{?packager}%{!?packager:Unknown}
autoreconf -if
%endif
+rm -f po/stamp-po
%configure %{?_without_xen} \
%{?_without_qemu} \
%{?_without_openvz} \
%{?_without_hyperv} \
%{?_without_vmware} \
%{?_without_parallels} \
+ --without-bhyve \
%{?_without_interface} \
%{?_without_network} \
%{?_with_rhel5_api} \
%{?_without_dtrace} \
%{?_without_driver_modules} \
%{?_with_firewalld} \
+ %{?_without_wireshark} \
+ %{?_without_systemd_daemon} \
%{with_packager} \
%{with_packager_version} \
--with-qemu-user=%{qemu_user} \
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a
%endif
+%if %{with_wireshark}
+rm -f $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/*/libvirt.la
+%endif
%if %{with_network}
install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/
rm -fr %{buildroot}
%check
+# PlanetLab build
+# do not run tests, this is mainstream business, and more importantly
+# our own setup is ti build inside a container already and we've seen
+# occasional red herrings because of that
+exit
+#
cd tests
make
# These tests don't current work in a mock build root
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
- %if %{with_nwfilter}
-%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
- %endif
-
%if %{with_systemd}
%{_unitdir}/libvirtd.service
%{_unitdir}/virtlockd.service
%{_datadir}/augeas/lenses/virtlockd.aug
%{_datadir}/augeas/lenses/tests/test_virtlockd.aug
%{_datadir}/augeas/lenses/libvirt_lockd.aug
-%{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
+### planetlab: we do not run tests
+# %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
%if %{with_polkit}
%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
%{_mandir}/man8/virtlockd.8*
%if ! %{with_driver_modules}
- %if %{with_network}
+ %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 %{_datadir}/libvirt/networks/
-%{_datadir}/libvirt/networks/default.xml
-%ghost %dir %{_localstatedir}/run/libvirt/network/
%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
%if %{with_network}
%files daemon-config-network
%defattr(-, root, root)
+%dir %{_datadir}/libvirt/networks/
+%{_datadir}/libvirt/networks/default.xml
%endif
%if %{with_nwfilter}
%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
-%dir %{_datadir}/libvirt/networks/
-%{_datadir}/libvirt/networks/default.xml
%ghost %dir %{_localstatedir}/run/libvirt/network/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
%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
%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}/sasl2/libvirt.conf
%endif
+%if %{with_wireshark}
+%files wireshark
+%{_libdir}/wireshark/plugins/*/libvirt.so
+%endif
+
%if %{with_lxc}
%files login-shell
%attr(4750, root, virtlogin) %{_bindir}/virt-login-shell
%doc examples/systemtap
%changelog
+* Mon Apr 28 2014 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - libvirt-1.2.3-1
+- tested version of 1.2.3
+
+* Tue Apr 1 2014 Daniel Veillard <veillard@redhat.com> - 1.2.3-1
+- add new virDomainCoreDumpWithFormat API (Qiao Nuohan)
+- conf: Introduce virDomainDeviceGetInfo API (Jiri Denemark)
+- more features and fixes on bhyve driver (Roman Bogorodskiy)
+- lot of cleanups and improvement on the Xen driver (Chunyan Liu, Jim Fehlig)
+- a lot of various improvements and bug fixes
+
+* Fri Mar 21 2014 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - libvirt-1.2.1-1
+- builds fine on f{18,20}
+
* Mon Jan 27 2014 Cole Robinson <crobinso@redhat.com> - 1.2.1-2
- Rebuild for openwsman soname bump