config BR2_PACKAGE_WIRESHARK
	bool "wireshark"
	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt -> libgpg-error
	depends on BR2_USE_MMU # fork(), glib2
	depends on BR2_USE_WCHAR # glib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
	select BR2_PACKAGE_LIBPCAP
	select BR2_PACKAGE_LIBGCRYPT
	select BR2_PACKAGE_LIBGLIB2
	help
	  Network traffic sniffer and protocol decoder.

	  https://www.wireshark.org

if BR2_PACKAGE_WIRESHARK

config BR2_PACKAGE_WIRESHARK_GUI
	bool "Qt5 GUI"
	default y
	depends on BR2_INSTALL_LIBSTDCPP # qt5
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # qt5
	depends on !BR2_STATIC_LIBS # qt5
	depends on BR2_PACKAGE_HAS_UDEV # qt5 input
	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
	select BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS
	help
	  Enable Qt5 GUI

comment "Qt5 GUI needs a udev /dev management and a toolchain w/ C++, NPTL, dynamic library"
	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP || \
		!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS

endif # BR2_PACKAGE_WIRESHARK

comment "wireshark needs a toolchain w/ wchar, threads"
	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS
	depends on BR2_USE_MMU
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
