Message ID | e64c965f3221d977b9bd2edf99405efd7405f848.1361167992.git.baruch@tkos.co.il |
---|---|
State | Accepted |
Headers | show |
On 02/18/2013 03:18 AM, Baruch Siach wrote: > This is only the bare minimum needed to build the textual tshark utility. > Support for more options, including the wireshark GUI, can be added later. > > Cc: Stefan Fröberg <stefan.froberg@petroprogram.com> > Signed-off-by: Baruch Siach <baruch@tkos.co.il> Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
Baruch> This is only the bare minimum needed to build the textual
Baruch> tshark utility. Support for more options, including the
Baruch> wireshark GUI, can be added later.
I was going to commit this to next, but a small test build fails as it
ends up using system includes:
libtool: compile: /home/peko/source/buildroot/outf2fs/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/include -DG_DISABLE_DEPRECATED -DG_DISABLE_SINGLE_INCLUDES -D_FORTIFY_SOURCE=2 "-D_U_=__attribute__((unused))" -I/home/peko/source/buildroot/outf2fs/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include -DPLUGIN_DIR=\"/usr/lib/wireshark/plugins/1.8.5\" -pipe -Os -Wall -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wpointer-arith -Wno-pointer-sign -Warray-bounds -Wcast-align -Wformat-security -Wold-style-definition -Wno-error=unused-but-set-variable -fexcess-precision=fast -pthread -I/home/peko/source/buildroot/outf2fs/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/glib-2.0 -I/home/peko/source/buildroot/outf2fs/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/glib-2.0/include -MT packet-asn1.lo -MD -MP -MF .deps/packet-asn1.Tpo -c packet-asn1.c -fPIC -DPIC -o .libs/packet-asn1.o
In file included from /usr/include/errno.h:29:0,
from packet-asn1.c:66:
/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory
compilation terminated.
make[5]: *** [packet-asn1.lo] Error 1
This is with a basic internal ARM toolchain:
cat defconfig
BR2_arm=y
BR2_arm926t=y
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
BR2_PACKAGE_WIRESHARK=y
Looking closer at it, I see it is caused by a bunch of Makefile.am files
having:
INCLUDES = -I$(top_srcdir) -I$(includedir)
E.G. look in srcdir + /usr/include. A quick workaround is to pass
--includedir=$(STAGING_DIR)/usr/include to configure. If wireshark
itself would install any headers, this would cause problems, but in this
case it seems ok, so I think it's the best approach.
Alternatively we could patch all the Makefile.am files to drop
-I$(includedir) and autoreconf the package.
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
Baruch> This is only the bare minimum needed to build the textual
Baruch> tshark utility. Support for more options, including the
Baruch> wireshark GUI, can be added later.
Committed to next with the --includedir workaround.
diff --git a/package/Config.in b/package/Config.in index faee5c3..c57c0d8 100644 --- a/package/Config.in +++ b/package/Config.in @@ -728,6 +728,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/wget/Config.in" endif source "package/wireless_tools/Config.in" +source "package/wireshark/Config.in" source "package/wpa_supplicant/Config.in" source "package/xinetd/Config.in" source "package/xl2tp/Config.in" diff --git a/package/wireshark/Config.in b/package/wireshark/Config.in new file mode 100644 index 0000000..e6d4e72 --- /dev/null +++ b/package/wireshark/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_WIRESHARK + bool "wireshark" + select BR2_PACKAGE_LIBPCAP + select BR2_PACKAGE_LIBGCRYPT + select BR2_PACKAGE_LIBGLIB2 + depends on BR2_USE_WCHAR # glib2 + help + Network traffic sniffer and protocol decoder. Currently only tshark, + the console interface, is enabled. + + http://www.wireshark.org + +comment "wireshark requires a toolchain with WCHAR support" + depends on !BR2_USE_WCHAR diff --git a/package/wireshark/wireshark-dont-include-prefix.patch b/package/wireshark/wireshark-dont-include-prefix.patch new file mode 100644 index 0000000..567af9a --- /dev/null +++ b/package/wireshark/wireshark-dont-include-prefix.patch @@ -0,0 +1,41 @@ +configure.in: don't add the build host's /usr/include and /usr/lib to the +search path of include files and libraries. This is not what you want when +cross compiling. + +Sent upstream as https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7926. + +Signed-off-by: Baruch Siach <baruch@tkos.co.il> +--- +diff -Nuar wireshark-1.8.3.orig/configure.in wireshark-1.8.3/configure.in +--- wireshark-1.8.3.orig/configure.in 2012-08-15 23:33:32.000000000 +0300 ++++ wireshark-1.8.3/configure.in 2012-10-28 10:07:54.864388531 +0200 +@@ -635,29 +635,6 @@ + AC_SUBST(CORESERVICES_FRAMEWORKS) + AC_SUBST(LAUNCHSERVICES_FRAMEWORKS) + +-# +-# If using $prefix we add "$prefix/include" to the include search path +-# and "$prefix/lib" to the library search path. +-# +-if test "x$prefix" != "x" ; then +- AC_MSG_CHECKING(whether to use $prefix for headers and libraries) +- if test -d $prefix/include ; then +- AC_MSG_RESULT(yes) +- # +- # Arrange that we search for header files in "$prefix/include", as +- # various packages we use may have been installed under "$prefix/include". +- # +- CPPFLAGS="$CPPFLAGS -I$prefix/include" +- +- # +- # Arrange that we search for libraries in "$prefix/lib". +- # +- AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib) +- else +- AC_MSG_RESULT(no) +- fi +-fi +- + dnl Look in /usr/local for header files and libraries ? + dnl XXX FIXME don't include /usr/local if it is already in the system + dnl search path as this causes gcc 3.2 on Linux to complain about a change diff --git a/package/wireshark/wireshark.mk b/package/wireshark/wireshark.mk new file mode 100644 index 0000000..46e5ce3 --- /dev/null +++ b/package/wireshark/wireshark.mk @@ -0,0 +1,19 @@ +############################################################# +# +# wireshark +# +############################################################# + +WIRESHARK_VERSION = 1.8.5 +WIRESHARK_SOURCE = wireshark-$(WIRESHARK_VERSION).tar.bz2 +WIRESHARK_SITE = http://www.wireshark.org/download/src/all-versions +WIRESHARK_LICENSE = wireshark license +WIRESHARK_LICENSE_FILES = COPYING +WIRESHARK_DEPENDENCIES = libpcap libgcrypt libglib2 +WIRESHARK_AUTORECONF = YES +WIRESHARK_CONF_ENV = LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config \ + ac_cv_path_PCAP_CONFIG=$(STAGING_DIR)/usr/bin/pcap-config +WIRESHARK_CONF_OPT = --disable-wireshark --without-krb5 --disable-usr-local \ + --enable-static=no --with-gnutls=no + +$(eval $(call autotools-package))
This is only the bare minimum needed to build the textual tshark utility. Support for more options, including the wireshark GUI, can be added later. Cc: Stefan Fröberg <stefan.froberg@petroprogram.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> --- Changes v5 -> v6: * add --with-gnutls=no to fix build when OpenSSL and GnuTLS are both installed (Stefan Fröberg) Changes v4 -> v5: * update to version 1.8.5 as suggested by Gustavo Zacarias * added fixup for pcap-config (Gustavo Zacarias) Changes v3 -> v4: * Update to version 1.8.4 Changes v2 -> v3: * Use an upstreamable patch as suggested by Thomas Petazzoni * Add license info Changes v1 -> v2: * Patch configure.in and enable autoreconf, instead of overriding $prefix * Remove --with-sysroot as suggested by Arnout Vandecappelle package/Config.in | 1 + package/wireshark/Config.in | 14 +++++++ .../wireshark/wireshark-dont-include-prefix.patch | 41 ++++++++++++++++++++ package/wireshark/wireshark.mk | 19 +++++++++ 4 files changed, 75 insertions(+) create mode 100644 package/wireshark/Config.in create mode 100644 package/wireshark/wireshark-dont-include-prefix.patch create mode 100644 package/wireshark/wireshark.mk