rpm: create libvirt-wireshark sub-package

On Fedora 20, with wireshark-devel installed, 'make rpm' failed
due to installed but unpackaged files related to wireshark.  As
F20 is already released without wireshark, I chose to add a new
sub-package that is enabled only for F21 and later.  Furthermore,
all existing wireshark plugins belong to the wireshark package,
so I got to invent behavior of how the first third-party wireshark
module will behave.

* libvirt.spec.in (with_wireshark): Add new conditional.
* configure.ac (ws-plugindir): Improve wording.

Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Eric Blake 2014-02-04 12:37:15 -07:00
parent eafb53fec2
commit f9ada9f3d0
2 changed files with 36 additions and 2 deletions

View File

@ -2578,8 +2578,8 @@ AM_CONDITIONAL([WITH_WIRESHARK_DISSECTOR], [test "$with_wireshark_dissector" = "
AC_ARG_WITH([ws-plugindir], AC_ARG_WITH([ws-plugindir],
[AS_HELP_STRING([--with-ws-plugindir], [AS_HELP_STRING([--with-ws-plugindir],
[wireshark plugins directory that plugin will installed])], [wireshark plugins directory for use when installing wireshark plugin])],
[ ws_plugindir=$withval ]) [ws_plugindir=$withval])
if test "$with_wireshark_dissector" != "no" && test -z "$ws_plugindir"; then if test "$with_wireshark_dissector" != "no" && test -z "$ws_plugindir"; then
ws_version=`$WIRESHARK -v | head -1 | cut -f 2 -d' '` ws_version=`$WIRESHARK -v | head -1 | cut -f 2 -d' '`

View File

@ -129,6 +129,7 @@
%define with_numad 0%{!?_without_numad:0} %define with_numad 0%{!?_without_numad:0}
%define with_firewalld 0%{!?_without_firewalld:0} %define with_firewalld 0%{!?_without_firewalld:0}
%define with_libssh2 0%{!?_without_libssh2:0} %define with_libssh2 0%{!?_without_libssh2:0}
%define with_wireshark 0%{!?_without_wireshark:0}
# Non-server/HV driver defaults which are always enabled # Non-server/HV driver defaults which are always enabled
%define with_sasl 0%{!?_without_sasl:1} %define with_sasl 0%{!?_without_sasl:1}
@ -269,6 +270,11 @@
%define with_libssh2 0%{!?_without_libssh2:1} %define with_libssh2 0%{!?_without_libssh2:1}
%endif %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. # Disable some drivers when building without libvirt daemon.
# The logic is the same as in configure.ac # The logic is the same as in configure.ac
%if ! %{with_libvirtd} %if ! %{with_libvirtd}
@ -631,6 +637,10 @@ BuildRequires: scrub
BuildRequires: numad BuildRequires: numad
%endif %endif
%if %{with_wireshark}
BuildRequires: wireshark-devel
%endif
Provides: bundled(gnulib) Provides: bundled(gnulib)
%description %description
@ -1115,6 +1125,17 @@ Requires: cyrus-sasl-md5
Shared libraries and client binaries needed to access to the Shared libraries and client binaries needed to access to the
virtualization capabilities of recent versions of Linux (and other OSes). 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} %if %{with_lxc}
%package login-shell %package login-shell
Summary: Login shell for connecting users to an LXC container Summary: Login shell for connecting users to an LXC container
@ -1340,6 +1361,10 @@ driver
%define _with_firewalld --with-firewalld %define _with_firewalld --with-firewalld
%endif %endif
%if ! %{with_wireshark}
%define _without_wireshark --without-wireshark-dissector
%endif
%define when %(date +"%%F-%%T") %define when %(date +"%%F-%%T")
%define where %(hostname) %define where %(hostname)
%define who %{?packager}%{!?packager:Unknown} %define who %{?packager}%{!?packager:Unknown}
@ -1412,6 +1437,7 @@ driver
%{?_without_dtrace} \ %{?_without_dtrace} \
%{?_without_driver_modules} \ %{?_without_driver_modules} \
%{?_with_firewalld} \ %{?_with_firewalld} \
%{?_without_wireshark} \
%{with_packager} \ %{with_packager} \
%{with_packager_version} \ %{with_packager_version} \
--with-qemu-user=%{qemu_user} \ --with-qemu-user=%{qemu_user} \
@ -1442,6 +1468,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a
%endif %endif
%if %{with_wireshark}
rm -f $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/*/libvirt.la
%endif
%if %{with_network} %if %{with_network}
install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/ install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/
@ -2117,6 +2146,11 @@ exit 0
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
%endif %endif
%if %{with_wireshark}
%files wireshark
%{_libdir}/wireshark/plugins/*/libvirt.so
%endif
%if %{with_lxc} %if %{with_lxc}
%files login-shell %files login-shell
%attr(4750, root, virtlogin) %{_bindir}/virt-login-shell %attr(4750, root, virtlogin) %{_bindir}/virt-login-shell