Message ID | c866c7ffc05da225311abef42a80696310d22157.1350887157.git.baruch@tkos.co.il |
---|---|
State | Superseded |
Headers | show |
On 22/10/12 08:27, 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. > --- > I override the $prefix configure variable because otherwise the host > /usr/include is added to the -I and -L paths. I'm not sure this is a good idea > though, since it clutters the tshark RPATH with directories from the local > build paths. If you have a better I'd be glad to hear. That usually means there's a broken Makefile.am and we fix it with a patch. However, does installation still work with the prefix override? [snip] > diff --git a/package/wireshark/wireshark.mk b/package/wireshark/wireshark.mk > new file mode 100644 > index 0000000..c89fbf8 > --- /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_CONF_ENV = LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config > +WIRESHARK_CONF_OPT = --disable-wireshark --without-krb5 --disable-usr-local \ > + prefix=$(STAGING_DIR)/usr --with-sysroot=$(STAGING_DIR) \ Why is the --with-sysroot needed? > + --enable-static=no We normally build both dynamic and static libraries, and remove the static library in the target. Doesn't that work in wireshark? Can you add a comment to explain that? Regards, Arnout
Hi Anout, Thanks for reviewing. On Tue, Oct 23, 2012 at 07:05:39PM +0200, Arnout Vandecappelle wrote: > On 22/10/12 08:27, 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. > >--- > >I override the $prefix configure variable because otherwise the host > >/usr/include is added to the -I and -L paths. I'm not sure this is a good idea > >though, since it clutters the tshark RPATH with directories from the local > >build paths. If you have a better I'd be glad to hear. > > That usually means there's a broken Makefile.am and we fix it with a patch. > However, does installation still work with the prefix override? Yes. However I see $prefix added to the tshark binary RPATH, which is not nice. I'll try patching configure.in. > [snip] > >diff --git a/package/wireshark/wireshark.mk b/package/wireshark/wireshark.mk > >new file mode 100644 > >index 0000000..c89fbf8 > >--- /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_CONF_ENV = LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config > >+WIRESHARK_CONF_OPT = --disable-wireshark --without-krb5 --disable-usr-local \ > >+ prefix=$(STAGING_DIR)/usr --with-sysroot=$(STAGING_DIR) \ > > Why is the --with-sysroot needed? Removing --with-sysroot doesn't negatively affect build or run of tshark. I get the following line during configure, however: checking for sysroot... no Is it significant? > >+ --enable-static=no > > We normally build both dynamic and static libraries, and remove the static > library in the target. Doesn't that work in wireshark? Can you add a comment > to explain that? Without --enable-static=no build fails with: ld: tshark: hidden symbol `__GI_atan' isn't defined My toolchain is external: powerpc-linux-gnu-gcc (Sourcery G++ Lite 2011.03-38) 4.5.2 Any ideas? baruch
On 24/10/12 09:31, Baruch Siach wrote: [snip] >>> diff --git a/package/wireshark/wireshark.mk b/package/wireshark/wireshark.mk >>> new file mode 100644 >>> index 0000000..c89fbf8 >>> --- /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_CONF_ENV = LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config >>> +WIRESHARK_CONF_OPT = --disable-wireshark --without-krb5 --disable-usr-local \ >>> + prefix=$(STAGING_DIR)/usr --with-sysroot=$(STAGING_DIR) \ >> >> Why is the --with-sysroot needed? > > Removing --with-sysroot doesn't negatively affect build or run of tshark. I > get the following line during configure, however: > > checking for sysroot... no > > Is it significant? You'll see that for most autoconf packages. >>> + --enable-static=no >> >> We normally build both dynamic and static libraries, and remove the static >> library in the target. Doesn't that work in wireshark? Can you add a comment >> to explain that? > > Without --enable-static=no build fails with: > > ld: tshark: hidden symbol `__GI_atan' isn't defined > > My toolchain is external: > > powerpc-linux-gnu-gcc (Sourcery G++ Lite 2011.03-38) 4.5.2 > > Any ideas? Nothing right away, except maybe a missing -lm but then I don't see why it doesn't fail in the non-static case. But we probably don't want the static build of tshark anyway, so just keep the --enable-static=no and add comment explaining why it doesn't work without it. Regards, Arnout
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.mk b/package/wireshark/wireshark.mk new file mode 100644 index 0000000..c89fbf8 --- /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_CONF_ENV = LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config +WIRESHARK_CONF_OPT = --disable-wireshark --without-krb5 --disable-usr-local \ + prefix=$(STAGING_DIR)/usr --with-sysroot=$(STAGING_DIR) \ + --enable-static=no + +$(eval $(call autotools-package))