package/wireshark: fix kconfig dependencies
authorYann E. MORIN <yann.morin.1998@free.fr>
Thu, 20 Oct 2016 16:28:25 +0000 (18:28 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 20 Oct 2016 19:40:12 +0000 (21:40 +0200)
Commit fa6feff (wireshark: needs the qt5tools lrelease utility)
introduced a circular dependency chain in Kconfig:

    package/qt5/qt5base/Config.in:118:error: recursive dependency detected!
    package/qt5/qt5base/Config.in:118:      symbol BR2_PACKAGE_QT5BASE_GUI is selected by BR2_PACKAGE_QT5TOOLS_PIXELTOOL
    package/qt5/qt5tools/Config.in:19:      symbol BR2_PACKAGE_QT5TOOLS_PIXELTOOL depends on BR2_PACKAGE_QT5TOOLS
    package/qt5/qt5tools/Config.in:1:       symbol BR2_PACKAGE_QT5TOOLS is selected by BR2_PACKAGE_QT5BASE_WIDGETS
    package/qt5/qt5base/Config.in:131:      symbol BR2_PACKAGE_QT5BASE_WIDGETS is selected by BR2_PACKAGE_QT5X11EXTRAS
    package/qt5/qt5x11extras/Config.in:1:   symbol BR2_PACKAGE_QT5X11EXTRAS depends on BR2_PACKAGE_QT5BASE_XCB
    package/qt5/qt5base/Config.in:186:      symbol BR2_PACKAGE_QT5BASE_XCB depends on BR2_PACKAGE_QT5BASE_GUI

Fix that by dropping the select on the Qt5Tools, and introduce an
intermediate kconfig-level variable to represent the new condition, to
simplify the .mk file.

That would make the condition for enabling/disabling the GUI to be a
little bit more complex by adding yet another (long-ish) variable.

So we also introduce an intermediate kconfig-level variable that
represent the condition to enable the GUI.

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Baruch Siach <baruch@tkos.co.il>
Tested-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/wireshark/Config.in
package/wireshark/wireshark.mk

index 959fb5b4f79dd2422c09ea0ca7722a96d25e1f01..b5a874b640d58bff20dc187eef6c9ac4bf040851 100644 (file)
@@ -2,8 +2,6 @@ config BR2_PACKAGE_WIRESHARK
        bool "wireshark"
        select BR2_PACKAGE_LIBPCAP
        select BR2_PACKAGE_LIBGLIB2
-       select BR2_PACKAGE_QT5TOOLS if BR2_PACKAGE_QT5BASE_WIDGETS
-       select BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS if BR2_PACKAGE_QT5BASE_WIDGETS
        depends on BR2_USE_MMU # fork(), glib2
        depends on BR2_USE_WCHAR # glib2
        depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
@@ -12,6 +10,19 @@ config BR2_PACKAGE_WIRESHARK
 
          https://www.wireshark.org
 
+config BR2_PACKAGE_WIRESHARK_QT
+       bool
+       default y
+       depends on BR2_PACKAGE_QT5BASE_WIDGETS
+       depends on BR2_PACKAGE_QT5TOOLS
+       select BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS
+
+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 "wireshark needs a toolchain w/ wchar, threads"
        depends on BR2_USE_MMU
        depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
index 593b19645e61b407e4de442e5485c686fa1d9474..227ead6a926e325ff343163552a3142bc7aa4e6d 100644 (file)
@@ -38,7 +38,7 @@ WIRESHARK_CONF_OPTS += --with-gtk=no
 endif
 
 # Qt4 needs accessibility, we don't support it
-ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y)
+ifeq ($(BR2_PACKAGE_WIRESHARK_QT),y)
 WIRESHARK_CONF_OPTS += --with-qt=5
 WIRESHARK_DEPENDENCIES += qt5base qt5tools
 WIRESHARK_CONF_ENV += ac_cv_path_QTCHOOSER=""
@@ -52,7 +52,7 @@ WIRESHARK_CONF_OPTS += --with-qt=no
 endif
 
 # No GUI at all
-ifeq ($(BR2_PACKAGE_LIBGTK2)$(BR2_PACKAGE_LIBGTK3)$(BR2_PACKAGE_QT5BASE_WIDGETS),)
+ifeq ($(BR2_PACKAGE_WIRESHARK_GUI),)
 WIRESHARK_CONF_OPTS += --disable-wireshark
 endif