[Buildroot] [PATCH 1/2] package/wireshark: bump to version 3.0.1

Fabrice Fontaine fontaine.fabrice at gmail.com
Mon Apr 15 20:38:08 UTC 2019


Le lun. 15 avr. 2019 à 19:59, Arnout Vandecappelle <arnout at mind.be> a écrit :
>
>
>
> On 15/04/2019 18:10, Fabrice Fontaine wrote:
> > - Remove patch (already in version)
> > - Move package to cmake infrastructure
>
>  I actually would have liked this to be done in a separate patch.
If I made it in a separate patch, then I would have to test the
current version and the new version with cmake which will take more
time for no real advantage. I switch to cmake only because autotools
was removed in 3.x.
>
> > - gtk ui is no more available
> > - --disables-guides option is not avaiable with cmake
> > - QT UI now requires:
> >   - qt5multimedia and qt5svg at build time
> >   - qt5fontconfig, qt5png and udev at runtime
> > - Add host-python3 dependency
> > - Add a hook to build host-lemon
> > - Disable static build (some libraries such as
> >   plugins/3.0/codecs/l16mono.so does not support static building)
>
>  This is very unfortunate. It is useful to be able to statically build a tshark
> to copy into a system that you don't control.
>
>  Isn't there a way to disable those plugins?
I'll try to find a way.
>
> [snip]
> > -config BR2_PACKAGE_WIRESHARK_QT
> > -     bool
> > +config BR2_PACKAGE_WIRESHARK_GUI
> > +     bool "Qt5 GUI"
> >       default y
> > -     depends on BR2_PACKAGE_QT5BASE_WIDGETS
> > -     depends on BR2_PACKAGE_QT5TOOLS
> > +     depends on BR2_INSTALL_LIBSTDCPP
> > +     depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> > +     depends on BR2_PACKAGE_HAS_UDEV
>
>  Could you add # reason markers here?
Yes, I can add "# runtime" (without it, Qt does not manage
keyboard/mouse events). Actually, I hesitated to add a reason as I saw
that most packages having udev dependency didn't have a reason.
>
> > +     select BR2_PACKAGE_QT5
> > +     select BR2_PACKAGE_QT5BASE
> > +     select BR2_PACKAGE_QT5BASE_FONTCONFIG # runtime
> > +     select BR2_PACKAGE_QT5BASE_PNG # runtime
> > +     select BR2_PACKAGE_QT5BASE_WIDGETS
> > +     select BR2_PACKAGE_QT5MULTIMEDIA
> > +     select BR2_PACKAGE_QT5SVG
> > +     select BR2_PACKAGE_QT5TOOLS
>
>  This deprecation of gtk gui and conversion from depends into select could have
> been in a separate patch, but OK.
>
> >       select BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS
> > +     help
> > +       Enable Qt5 GUI
> >
> > -config BR2_PACKAGE_WIRESHARK_GUI
> > -     bool
> > -     default y if BR2_PACKAGE_LIBGTK2
> > -     default y if BR2_PACKAGE_LIBGTK3
> > -     default y if BR2_PACKAGE_WIRESHARK_QT
> > +comment "Qt5 GUI needs a udev /dev management and a toolchain w/ C++, NPTL"
> > +     depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP || \
> > +             !BR2_TOOLCHAIN_HAS_THREADS_NPTL
> >
> >  endif # BR2_PACKAGE_WIRESHARK
> >
> > -comment "wireshark needs a toolchain w/ wchar, threads"
> > +comment "wireshark needs a toolchain w/ wchar, threads, dynamic library"
> >       depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS
> >       depends on BR2_USE_MMU
> > -     depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> > +     depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
> > +             BR2_STATIC_LIBS
> > diff --git a/package/wireshark/wireshark.hash b/package/wireshark/wireshark.hash
> > index 071940e1c1..99aa433bb4 100644
> > --- a/package/wireshark/wireshark.hash
> > +++ b/package/wireshark/wireshark.hash
> > @@ -1,4 +1,4 @@
> > -# From: https://www.wireshark.org/download/src/all-versions/SIGNATURES-2.6.7.txt
> > -sha256 747b3e7a37414942959f76f198be49dcbcca936bda538c4408942ce71bfd2b71  wireshark-2.6.7.tar.xz
> > +# From: https://www.wireshark.org/download/src/all-versions/SIGNATURES-3.0.1.txt
> > +sha256 86864c3d0f6c2311992a98d8ea7dfd429097fe62dae2e5516e1a2f6bef2ac08c  wireshark-3.0.1.tar.xz
> >  # Locally calculated
> >  sha256 7cdbed2b697efaa45576a033f1ac0e73cd045644a91c79bbf41d4a7d81dac7bf  COPYING
> > diff --git a/package/wireshark/wireshark.mk b/package/wireshark/wireshark.mk
> > index a917efb5f6..691f0140b5 100644
> > --- a/package/wireshark/wireshark.mk
> > +++ b/package/wireshark/wireshark.mk
> > @@ -4,152 +4,141 @@
> >  #
> >  ################################################################################
> >
> > -WIRESHARK_VERSION = 2.6.7
> > +WIRESHARK_VERSION = 3.0.1
> >  WIRESHARK_SOURCE = wireshark-$(WIRESHARK_VERSION).tar.xz
> >  WIRESHARK_SITE = https://www.wireshark.org/download/src/all-versions
> >  WIRESHARK_LICENSE = wireshark license
> >  WIRESHARK_LICENSE_FILES = COPYING
> > -WIRESHARK_DEPENDENCIES = host-pkgconf libgcrypt libpcap libglib2
> > -WIRESHARK_CONF_ENV = \
> > -     LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config \
> > -     PCAP_CONFIG=$(STAGING_DIR)/usr/bin/pcap-config
> > +WIRESHARK_DEPENDENCIES = host-pkgconf host-python3 libgcrypt libpcap libglib2
> > +
> > +WIRESHARK_MAKE_ENV = \
> > +     $(TARGET_MAKE_ENV) \
> > +     PATH="$(@D)/bin:$(BR_PATH)"
> >
> >  WIRESHARK_CONF_OPTS = \
> > -     --disable-guides \
> > -     --enable-static=no \
> > -     --with-libsmi=no \
> > -     --with-pcap=yes
> > -
> > -# wireshark GUI options
> > -ifeq ($(BR2_PACKAGE_LIBGTK3),y)
> > -WIRESHARK_CONF_OPTS += --with-gtk=3
> > -WIRESHARK_DEPENDENCIES += libgtk3
> > -else ifeq ($(BR2_PACKAGE_LIBGTK2),y)
> > -WIRESHARK_CONF_OPTS += --with-gtk=2
> > -WIRESHARK_DEPENDENCIES += libgtk2
> > -else
> > -WIRESHARK_CONF_OPTS += --with-gtk=no
> > -endif
> > +     -DENABLE_PCAP=ON \
> > +     -DENABLE_SMI=OFF \
> > +     -DENABLE_STATIC=OFF \
> > +     -DBUILD_sdjournal=OFF
> > +
> > +# wireshark needs the host version of lemon during compilation.
> > +# This binrary is provided by sqlite-src (which is different from
> > +# sqlite-autotools that is currently packaged in buildroot) moreover wireshark
> > +# adds several patches.
> > +# So, instead of creating a separate host package and installing lemon to
> > +# $(HOST_DIR), this binary is compiled on-the-fly
> > +define WIRESHARK_BUILD_LEMON_TOOL
> > +     cd $(@D); \
> > +     mkdir -p $(@D)/bin; \
> > +     $(HOSTCC) $(HOST_CFLAGS) -o $(@D)/bin/lemon tools/lemon/lemon.c
> > +endef
>
>  Ah nice, I was struggling with this when I tried to do the CMake conversion.
>
>  Regards,
>  Arnout
>
> >
> > -# Qt4 needs accessibility, we don't support it
> > -ifeq ($(BR2_PACKAGE_WIRESHARK_QT),y)
> > -WIRESHARK_CONF_OPTS += --with-qt=5
> > -WIRESHARK_DEPENDENCIES += qt5base qt5tools
> > -WIRESHARK_CONF_ENV += ac_cv_path_QTCHOOSER=""
> > -# Seems it expects wrappers and passes a -qt=X parameter for version
> > -WIRESHARK_MAKE_OPTS += \
> > -     MOC="$(HOST_DIR)/bin/moc" \
> > -     RCC="$(HOST_DIR)/bin/rcc" \
> > -     UIC="$(HOST_DIR)/bin/uic"
> > -else
> > -WIRESHARK_CONF_OPTS += --with-qt=no
> > -endif
> > +WIRESHARK_PRE_BUILD_HOOKS += WIRESHARK_BUILD_LEMON_TOOL
> >
> > -# No GUI at all
> > -ifeq ($(BR2_PACKAGE_WIRESHARK_GUI),)
> > -WIRESHARK_CONF_OPTS += --disable-wireshark
> > +ifeq ($(BR2_PACKAGE_WIRESHARK_GUI),y)
> > +WIRESHARK_CONF_OPTS += -DBUILD_wireshark=ON
> > +WIRESHARK_DEPENDENCIES += qt5base qt5multimedia qt5svg qt5tools
> > +else
> > +WIRESHARK_CONF_OPTS += -DBUILD_wireshark=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_BCG729),y)
> > -WIRESHARK_CONF_OPTS += --with-bcg729=$(STAGING_DIR)/usr
> > +WIRESHARK_CONF_OPTS += -DENABLE_BCG729=ON
> >  WIRESHARK_DEPENDENCIES += bcg729
> >  else
> > -WIRESHARK_CONF_OPTS += --without-bcg729
> > +WIRESHARK_CONF_OPTS += -DENABLE_BCG729=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_C_ARES),y)
> > -WIRESHARK_CONF_OPTS += --with-c-ares=$(STAGING_DIR)/usr
> > +WIRESHARK_CONF_OPTS += -DENABLE_CARES=ON
> >  WIRESHARK_DEPENDENCIES += c-ares
> >  else
> > -WIRESHARK_CONF_OPTS += --without-c-ares
> > +WIRESHARK_CONF_OPTS += -DENABLE_CARES=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_GNUTLS),y)
> > -WIRESHARK_CONF_OPTS += --with-gnutls=yes
> > +WIRESHARK_CONF_OPTS += -DENABLE_GNUTLS=ON
> >  WIRESHARK_DEPENDENCIES += gnutls
> >  else
> > -WIRESHARK_CONF_OPTS += --with-gnutls=no
> > +WIRESHARK_CONF_OPTS += -DENABLE_GNUTLS=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_LIBKRB5),y)
> > -WIRESHARK_CONF_OPTS += --with-krb5=$(STAGING_DIR)/usr
> > +WIRESHARK_CONF_OPTS += -DENABLE_KERBEROS=ON
> >  WIRESHARK_DEPENDENCIES += libkrb5
> >  else
> > -WIRESHARK_CONF_OPTS += --without-krb5
> > +WIRESHARK_CONF_OPTS += -DENABLE_KERBEROS=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_LIBMAXMINDDB),y)
> > -WIRESHARK_CONF_OPTS += --with-maxminddb=$(STAGING_DIR)/usr
> > +WIRESHARK_CONF_OPTS += -DBUILD_mmdbresolve=ON
> >  WIRESHARK_DEPENDENCIES += libmaxminddb
> >  else
> > -WIRESHARK_CONF_OPTS += --without-maxminddb
> > +WIRESHARK_CONF_OPTS += -DBUILD_mmdbresolve=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_LIBNL),y)
> > -WIRESHARK_CONF_OPTS += --with-libnl
> > +WIRESHARK_CONF_OPTS += -DENABLE_NETLINK=ON
> >  WIRESHARK_DEPENDENCIES += libnl
> >  else
> > -WIRESHARK_CONF_OPTS += --without-libnl
> > +WIRESHARK_CONF_OPTS += -DENABLE_NETLINK=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_LIBSSH),y)
> > -WIRESHARK_CONF_OPTS += --with-libssh=$(STAGING_DIR)/usr
> > +WIRESHARK_CONF_OPTS += -DENABLE_LIBSSH=ON
> >  WIRESHARK_DEPENDENCIES += libssh
> >  else
> > -WIRESHARK_CONF_OPTS += --without-libssh
> > +WIRESHARK_CONF_OPTS += -DENABLE_LIBSSH=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_LIBXML2),y)
> > -WIRESHARK_CONF_OPTS += --with-libxml2
> > +WIRESHARK_CONF_OPTS += -DENABLE_LIBXML2=ON
> >  WIRESHARK_DEPENDENCIES += libxml2
> >  else
> > -WIRESHARK_CONF_OPTS += --without-libxml2
> > +WIRESHARK_CONF_OPTS += -DENABLE_LIBXML2=OFF
> >  endif
> >
> >  # no support for lua53 yet
> >  ifeq ($(BR2_PACKAGE_LUA_5_1),y)
> > -WIRESHARK_CONF_OPTS += --with-lua
> > +WIRESHARK_CONF_OPTS += -DENABLE_LUA=ON
> >  WIRESHARK_DEPENDENCIES += lua
> >  else
> > -WIRESHARK_CONF_OPTS += --without-lua
> > +WIRESHARK_CONF_OPTS += -DENABLE_LUA=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_LZ4),y)
> > -WIRESHARK_CONF_OPTS += --with-lz4=$(STAGING_DIR)/usr
> > +WIRESHARK_CONF_OPTS += -DENABLE_LZ4=ON
> >  WIRESHARK_DEPENDENCIES += lz4
> >  else
> > -WIRESHARK_CONF_OPTS += --without-lz4
> > +WIRESHARK_CONF_OPTS += -DENABLE_LZ4=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_NGHTTP2),y)
> > -WIRESHARK_CONF_OPTS += --with-nghttp2=$(STAGING_DIR)/usr
> > +WIRESHARK_CONF_OPTS += -DENABLE_NGHTTP2=ON
> >  WIRESHARK_DEPENDENCIES += nghttp2
> >  else
> > -WIRESHARK_CONF_OPTS += --without-nghttp2
> > +WIRESHARK_CONF_OPTS += -DENABLE_NGHTTP2=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_SBC),y)
> > -WIRESHARK_CONF_OPTS += --with-sbc=yes
> > +WIRESHARK_CONF_OPTS += -DENABLE_SBC=ON
> >  WIRESHARK_DEPENDENCIES += sbc
> >  else
> > -WIRESHARK_CONF_OPTS += --with-sbc=no
> > +WIRESHARK_CONF_OPTS += -DENABLE_SBC=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_SNAPPY),y)
> > -WIRESHARK_CONF_OPTS += --with-snappy=$(STAGING_DIR)/usr
> > +WIRESHARK_CONF_OPTS += -DENABLE_SNAPPY=ON
> >  WIRESHARK_DEPENDENCIES += snappy
> > -ifeq ($(BR2_STATIC_LIBS),y)
> > -WIRESHARK_CONF_ENV += LIBS=-lstdc++
> > -endif
> >  else
> > -WIRESHARK_CONF_OPTS += --without-snappy
> > +WIRESHARK_CONF_OPTS += -DENABLE_SNAPPY=OFF
> >  endif
> >
> >  ifeq ($(BR2_PACKAGE_SPANDSP),y)
> > -WIRESHARK_CONF_OPTS += --with-spandsp
> > +WIRESHARK_CONF_OPTS += -DENABLE_SPANDSP=ON
> >  WIRESHARK_DEPENDENCIES += spandsp
> >  else
> > -WIRESHARK_CONF_OPTS += --without-spandsp
> > +WIRESHARK_CONF_OPTS += -DENABLE_SPANDSP=OFF
> >  endif
> >
> >  define WIRESHARK_REMOVE_DOCS
> > @@ -159,4 +148,4 @@ endef
> >
> >  WIRESHARK_POST_INSTALL_TARGET_HOOKS += WIRESHARK_REMOVE_DOCS
> >
> > -$(eval $(autotools-package))
> > +$(eval $(cmake-package))
> >
Best Regards,

Fabrice


More information about the buildroot mailing list