Patchwork [v2] wireshark: new package

login
register
mail settings
Submitter Baruch Siach
Date Oct. 24, 2012, 2:13 p.m.
Message ID <4b73cf9536d6cde485299c9afb9fc41affa909ae.1351087817.git.baruch@tkos.co.il>
Download mbox | patch
Permalink /patch/193796/
State Superseded
Headers show

Comments

Baruch Siach - Oct. 24, 2012, 2:13 p.m.
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.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---

Changes v1 -> v2:
	* Patch configure.in and enable autoreconf, instead of overriding
	  $prefix
	* Remove --with-sysroot as suggested by Arnout Vandecappelle

The tshark RPATH is still cluttered with local build paths. Adding
--libdir=/usr/lib doesn't solve this. Any suggestion?

 package/Config.in                                    |    1 +
 package/wireshark/Config.in                          |   14 ++++++++++++++
 .../wireshark/wireshark-dont-include-prefix.patch    |   18 ++++++++++++++++++
 package/wireshark/wireshark.mk                       |   10 ++++++++++
 4 files changed, 43 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
Thomas Petazzoni - Oct. 24, 2012, 2:40 p.m.
On Wed, 24 Oct 2012 16:13:33 +0200, Baruch Siach wrote:
> diff --git a/package/wireshark/wireshark-dont-include-prefix.patch b/package/wireshark/wireshark-dont-include-prefix.patch
> new file mode 100644
> index 0000000..6f3c946
> --- /dev/null
> +++ b/package/wireshark/wireshark-dont-include-prefix.patch
> @@ -0,0 +1,18 @@
> +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.
> +
> +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-24 09:54:15.259853331 +0200
> +@@ -639,7 +639,7 @@
> + # 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
> ++if false ; then
> + 	AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
> + 	if test -d $prefix/include ; then
> + 		AC_MSG_RESULT(yes)

This works, but cannot be submitted upstream. Do you think you can come
up with a patch suitable for upstream inclusion?

Note that the OE patch is not better than your proposal:
http://cgit.openembedded.org/openembedded/tree/recipes/wireshark/files/fix-configure.patch.
It is also not suitable for upstream.

Thomas
Baruch Siach - Oct. 24, 2012, 2:48 p.m.
Hi Thomas,

On Wed, Oct 24, 2012 at 04:40:59PM +0200, Thomas Petazzoni wrote:
> 
> On Wed, 24 Oct 2012 16:13:33 +0200, Baruch Siach wrote:
> > diff --git a/package/wireshark/wireshark-dont-include-prefix.patch b/package/wireshark/wireshark-dont-include-prefix.patch
> > new file mode 100644
> > index 0000000..6f3c946
> > --- /dev/null
> > +++ b/package/wireshark/wireshark-dont-include-prefix.patch
> > @@ -0,0 +1,18 @@
> > +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.
> > +
> > +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-24 09:54:15.259853331 +0200
> > +@@ -639,7 +639,7 @@
> > + # 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
> > ++if false ; then
> > + 	AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
> > + 	if test -d $prefix/include ; then
> > + 		AC_MSG_RESULT(yes)
> 
> This works, but cannot be submitted upstream. Do you think you can come
> up with a patch suitable for upstream inclusion?
> 
> Note that the OE patch is not better than your proposal:
> http://cgit.openembedded.org/openembedded/tree/recipes/wireshark/files/fix-configure.patch.
> It is also not suitable for upstream.

Well, the ultimate solution would probably be to add a --disable-usr configure 
option, like the existing --disable-usr-local. I see if I can find time to 
work on this. I'm no autotools expert.

baruch
Thomas Petazzoni - Oct. 24, 2012, 3:06 p.m.
Dear Baruch Siach,

On Wed, 24 Oct 2012 16:48:37 +0200, Baruch Siach wrote:

> Well, the ultimate solution would probably be to add a --disable-usr configure 
> option, like the existing --disable-usr-local. I see if I can find time to 
> work on this. I'm no autotools expert.

This really shouldn't be needed. No autotools-based package that I'm
aware of needs this. If the default include flags are not good, you
pass additional CFLAGS/CPPFLAGS, that's the way autoconf works.

So basically, the whole idea of adding /usr/include forcefully is
stupid and should be removed, IMO.

Thomas

Patch

diff --git a/package/Config.in b/package/Config.in
index 1650c71..cd8d9ba 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -646,6 +646,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..6f3c946
--- /dev/null
+++ b/package/wireshark/wireshark-dont-include-prefix.patch
@@ -0,0 +1,18 @@ 
+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.
+
+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-24 09:54:15.259853331 +0200
+@@ -639,7 +639,7 @@
+ # 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
++if false ; then
+ 	AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
+ 	if test -d $prefix/include ; then
+ 		AC_MSG_RESULT(yes)
diff --git a/package/wireshark/wireshark.mk b/package/wireshark/wireshark.mk
new file mode 100644
index 0000000..b50c223
--- /dev/null
+++ b/package/wireshark/wireshark.mk
@@ -0,0 +1,10 @@ 
+WIRESHARK_VERSION = 1.8.3
+WIRESHARK_SOURCE = wireshark-$(WIRESHARK_VERSION).tar.bz2
+WIRESHARK_SITE = http://www.wireshark.org/download/src/all-versions
+WIRESHARK_DEPENDENCIES = libpcap libgcrypt libglib2
+WIRESHARK_AUTORECONF = YES
+WIRESHARK_CONF_ENV = LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config
+WIRESHARK_CONF_OPT = --disable-wireshark --without-krb5 --disable-usr-local \
+		     --enable-static=no
+
+$(eval $(call autotools-package))