mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-06 13:20:20 +00:00
rpm-build: use pkg-config to detect wireshark presence
Wireshark supports pkg-config since 1.11.3. Right now we build wireshark-dissectior tool as default trough rpm build only on fedora >= 21 and there is new wireshark that supports pkg-config. If someone wants to build libvirt with wireshark-dissector against old wireshark, they should specify the location by hand. This patch is mainly to fix wrong dependency on wireshark binary as it doesn't make sense to require that binary file to just get version info of that package in makefile. Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
a7d6b94a00
commit
373973206a
66
configure.ac
66
configure.ac
@ -247,6 +247,7 @@ LIBVIRT_CHECK_SELINUX
|
|||||||
LIBVIRT_CHECK_SSH2
|
LIBVIRT_CHECK_SSH2
|
||||||
LIBVIRT_CHECK_SYSTEMD_DAEMON
|
LIBVIRT_CHECK_SYSTEMD_DAEMON
|
||||||
LIBVIRT_CHECK_UDEV
|
LIBVIRT_CHECK_UDEV
|
||||||
|
LIBVIRT_CHECK_WIRESHARK
|
||||||
LIBVIRT_CHECK_YAJL
|
LIBVIRT_CHECK_YAJL
|
||||||
|
|
||||||
AC_MSG_CHECKING([for CPUID instruction])
|
AC_MSG_CHECKING([for CPUID instruction])
|
||||||
@ -2642,70 +2643,6 @@ AM_CONDITIONAL([HAVE_LIBNL], [test "$have_libnl" = "yes"])
|
|||||||
AC_SUBST([LIBNL_CFLAGS])
|
AC_SUBST([LIBNL_CFLAGS])
|
||||||
AC_SUBST([LIBNL_LIBS])
|
AC_SUBST([LIBNL_LIBS])
|
||||||
|
|
||||||
dnl wireshark dissector
|
|
||||||
|
|
||||||
AC_ARG_WITH([wireshark-dissector],
|
|
||||||
[AS_HELP_STRING([--with-wireshark-dissector],
|
|
||||||
[enable wireshark dissector plugin support @<:@default=check@:>@])],
|
|
||||||
[ with_wireshark_dissector=$withval ],
|
|
||||||
[ with_wireshark_dissector=check ])
|
|
||||||
|
|
||||||
AC_DEFUN([LIBVIRT_WS_HANDLE_ERROR], [
|
|
||||||
if test "$with_wireshark_dissector" = "yes"; then
|
|
||||||
AC_MSG_ERROR([$1])
|
|
||||||
else
|
|
||||||
with_wireshark_dissector=no
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
if test "$with_wireshark_dissector" != "no"; then
|
|
||||||
dnl Check for XDR headers existence
|
|
||||||
AC_CHECK_HEADERS([rpc/types.h])
|
|
||||||
|
|
||||||
dnl Check for glib-2.0 existence
|
|
||||||
PKG_CHECK_MODULES([GLIB], [glib-2.0], [
|
|
||||||
WS_DISSECTOR_CPPFLAGS="$WS_DISSECTOR_CPPFLAGS `$PKG_CONFIG --cflags glib-2.0`"
|
|
||||||
], [
|
|
||||||
LIBVIRT_WS_HANDLE_ERROR([pkg-config 'glib-2.0' is required for wireshark-dissector support])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl Search for wireshark(or tshark) command
|
|
||||||
AC_PATH_PROG([WIRESHARK], [wireshark])
|
|
||||||
AC_PATH_PROG([WIRESHARK], [tshark])
|
|
||||||
if test -z "$WIRESHARK"; then
|
|
||||||
LIBVIRT_WS_HANDLE_ERROR([command not found wireshark or tshark])
|
|
||||||
else
|
|
||||||
dnl Check for wireshark headers
|
|
||||||
save_CPPFLAGS="$CPPFLAGS"
|
|
||||||
WS_DISSECTOR_CPPFLAGS="$WS_DISSECTOR_CPPFLAGS -I`dirname $WIRESHARK`/../include/wireshark"
|
|
||||||
CPPFLAGS="$CPPFLAGS $WS_DISSECTOR_CPPFLAGS"
|
|
||||||
AC_CHECK_HEADERS([wireshark/config.h],, [
|
|
||||||
LIBVIRT_WS_HANDLE_ERROR([wireshark/config.h is required for wireshark-dissector support])
|
|
||||||
])
|
|
||||||
AC_CHECK_HEADERS([wireshark/epan/packet.h wireshark/epan/dissectors/packet-tcp.h],, [
|
|
||||||
LIBVIRT_WS_HANDLE_ERROR([wireshark/epan/{packet,packet-tcp}.h are required for wireshark-dissector support])
|
|
||||||
], [
|
|
||||||
#include <wireshark/config.h>
|
|
||||||
])
|
|
||||||
CPPFLAGS="$save_CPPFLAGS"
|
|
||||||
fi
|
|
||||||
if test "$with_wireshark_dissector" != "no"; then
|
|
||||||
with_wireshark_dissector=yes
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AC_SUBST([WS_DISSECTOR_CPPFLAGS])
|
|
||||||
AM_CONDITIONAL([WITH_WIRESHARK_DISSECTOR], [test "$with_wireshark_dissector" = "yes"])
|
|
||||||
|
|
||||||
AC_ARG_WITH([ws-plugindir],
|
|
||||||
[AS_HELP_STRING([--with-ws-plugindir],
|
|
||||||
[wireshark plugins directory for use when installing wireshark plugin])],
|
|
||||||
[ws_plugindir=$withval])
|
|
||||||
|
|
||||||
if test "$with_wireshark_dissector" != "no" && test -z "$ws_plugindir"; then
|
|
||||||
ws_version=`$WIRESHARK -v | head -1 | cut -f 2 -d' '`
|
|
||||||
ws_plugindir="$libdir/wireshark/plugins/$ws_version"
|
|
||||||
fi
|
|
||||||
AC_SUBST([ws_plugindir])
|
|
||||||
|
|
||||||
# Check for Linux vs. BSD ifreq members
|
# Check for Linux vs. BSD ifreq members
|
||||||
AC_CHECK_MEMBERS([struct ifreq.ifr_newname,
|
AC_CHECK_MEMBERS([struct ifreq.ifr_newname,
|
||||||
struct ifreq.ifr_ifindex,
|
struct ifreq.ifr_ifindex,
|
||||||
@ -2937,6 +2874,7 @@ LIBVIRT_RESULT_SELINUX
|
|||||||
LIBVIRT_RESULT_SSH2
|
LIBVIRT_RESULT_SSH2
|
||||||
LIBVIRT_RESULT_SYSTEMD_DAEMON
|
LIBVIRT_RESULT_SYSTEMD_DAEMON
|
||||||
LIBVIRT_RESULT_UDEV
|
LIBVIRT_RESULT_UDEV
|
||||||
|
LIBVIRT_RESULT_WIRESHARK
|
||||||
LIBVIRT_RESULT_YAJL
|
LIBVIRT_RESULT_YAJL
|
||||||
AC_MSG_NOTICE([ libxml: $LIBXML_CFLAGS $LIBXML_LIBS])
|
AC_MSG_NOTICE([ libxml: $LIBXML_CFLAGS $LIBXML_LIBS])
|
||||||
AC_MSG_NOTICE([ dlopen: $DLOPEN_LIBS])
|
AC_MSG_NOTICE([ dlopen: $DLOPEN_LIBS])
|
||||||
|
44
m4/virt-wireshark.m4
Normal file
44
m4/virt-wireshark.m4
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
dnl The libvirt.so wireshark plugin
|
||||||
|
dnl
|
||||||
|
dnl Copyright (C) 2015 Red Hat, Inc.
|
||||||
|
dnl
|
||||||
|
dnl This library is free software; you can redistribute it and/or
|
||||||
|
dnl modify it under the terms of the GNU Lesser General Public
|
||||||
|
dnl License as published by the Free Software Foundation; either
|
||||||
|
dnl version 2.1 of the License, or (at your option) any later version.
|
||||||
|
dnl
|
||||||
|
dnl This library is distributed in the hope that it will be useful,
|
||||||
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
dnl Lesser General Public License for more details.
|
||||||
|
dnl
|
||||||
|
dnl You should have received a copy of the GNU Lesser General Public
|
||||||
|
dnl License along with this library. If not, see
|
||||||
|
dnl <http://www.gnu.org/licenses/>.
|
||||||
|
dnl
|
||||||
|
|
||||||
|
AC_DEFUN([LIBVIRT_CHECK_WIRESHARK],[
|
||||||
|
LIBVIRT_CHECK_PKG([WIRESHARK_DISSECTOR], [wireshark], [1.11.3])
|
||||||
|
|
||||||
|
AC_ARG_WITH([ws-plugindir],
|
||||||
|
[AS_HELP_STRING([--with-ws-plugindir],
|
||||||
|
[wireshark plugins directory for use when installing wireshark plugin])],
|
||||||
|
[], [with_ws_plugindir=check])
|
||||||
|
|
||||||
|
dnl Check for system location of wireshark plugins
|
||||||
|
if test "x$with_wireshark_dissector" != "xno" ; then
|
||||||
|
if test "x$with_ws_plugindir" = "xcheck" ; then
|
||||||
|
ws_plugindir="$libdir/wireshark/plugins/$($PKG_CONFIG --modversion wireshark)"
|
||||||
|
elif test "x$with_ws_plugindir" = "xno" || test "x$with_ws_plugindir" = "xyes"; then
|
||||||
|
AC_MSG_ERROR([ws-plugindir must be used only with valid path])
|
||||||
|
else
|
||||||
|
ws_plugindir=$with_ws_plugindir
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST([ws_plugindir])
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([LIBVIRT_RESULT_WIRESHARK],[
|
||||||
|
LIBVIRT_RESULT_LIB([WIRESHARK_DISSECTOR])
|
||||||
|
])
|
@ -26,7 +26,7 @@ INCLUDES = \
|
|||||||
|
|
||||||
ws_plugin_LTLIBRARIES = libvirt.la
|
ws_plugin_LTLIBRARIES = libvirt.la
|
||||||
libvirt_la_SOURCES = packet-libvirt.h packet-libvirt.c plugin.c
|
libvirt_la_SOURCES = packet-libvirt.h packet-libvirt.c plugin.c
|
||||||
libvirt_la_CPPFLAGS = $(WS_DISSECTOR_CPPFLAGS)
|
libvirt_la_CPPFLAGS = $(WIRESHARK_DISSECTOR_CFLAGS)
|
||||||
libvirt_la_LDFLAGS = -avoid-version -module
|
libvirt_la_LDFLAGS = -avoid-version -module
|
||||||
|
|
||||||
packet-libvirt.c: packet-libvirt.h libvirt/protocol.h
|
packet-libvirt.c: packet-libvirt.h libvirt/protocol.h
|
||||||
|
Loading…
Reference in New Issue
Block a user