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

Arnout Vandecappelle arnout at mind.be
Mon Apr 15 22:35:27 UTC 2019



On 15/04/2019 22:38, Fabrice Fontaine wrote:
> 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.

 I did apply both to master already, you can enable static again in a follow-up
patch. I've also added the # qt5 comments I asked for below.

 Regards,
 Arnout

>>
>> [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