Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH RFC] package/wireshark: fix kconfig depndencies
@ 2016-10-20 16:28 Yann E. MORIN
  2016-10-20 17:55 ` Baruch Siach
  2016-10-20 19:40 ` Thomas Petazzoni
  0 siblings, 2 replies; 4+ messages in thread
From: Yann E. MORIN @ 2016-10-20 16:28 UTC (permalink / raw)
  To: buildroot

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>

---
Note: UNTESTED. It does fix the Kconfig issue, but it is otherwise not
even build-tested. Baruch? ;-)
---
 package/wireshark/Config.in    | 15 +++++++++++++--
 package/wireshark/wireshark.mk |  4 ++--
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/package/wireshark/Config.in b/package/wireshark/Config.in
index 959fb5b..b5a874b 100644
--- a/package/wireshark/Config.in
+++ b/package/wireshark/Config.in
@@ -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
diff --git a/package/wireshark/wireshark.mk b/package/wireshark/wireshark.mk
index f7cc8f8..5b5abf2 100644
--- a/package/wireshark/wireshark.mk
+++ b/package/wireshark/wireshark.mk
@@ -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
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH RFC] package/wireshark: fix kconfig depndencies
  2016-10-20 16:28 [Buildroot] [PATCH RFC] package/wireshark: fix kconfig depndencies Yann E. MORIN
@ 2016-10-20 17:55 ` Baruch Siach
  2016-10-20 18:28   ` Yann E. MORIN
  2016-10-20 19:40 ` Thomas Petazzoni
  1 sibling, 1 reply; 4+ messages in thread
From: Baruch Siach @ 2016-10-20 17:55 UTC (permalink / raw)
  To: buildroot

Hi Yann,

On Thu, Oct 20, 2016 at 06:28:25PM +0200, Yann E. MORIN wrote:
> 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>
> 
> ---
> Note: UNTESTED. It does fix the Kconfig issue, but it is otherwise not
> even build-tested. Baruch? ;-)

Thanks for your analysis and patch.

I build tested one of the defconfigs that commit fa6feffa0def mentions. Then 
selected BR2_PACKAGE_QT5TOOLS manually, and built wireshark again. In both 
cases build succeeds after applying another (unrelated) patch[1]. So:

Tested-by: Baruch Siach <baruch@tkos.co.il>

[1] http://patchwork.ozlabs.org/patch/684715/

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH RFC] package/wireshark: fix kconfig depndencies
  2016-10-20 17:55 ` Baruch Siach
@ 2016-10-20 18:28   ` Yann E. MORIN
  0 siblings, 0 replies; 4+ messages in thread
From: Yann E. MORIN @ 2016-10-20 18:28 UTC (permalink / raw)
  To: buildroot

Baruch, All,

On 2016-10-20 20:55 +0300, Baruch Siach spake thusly:
> On Thu, Oct 20, 2016 at 06:28:25PM +0200, Yann E. MORIN wrote:
> > 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>
> > 
> > ---
> > Note: UNTESTED. It does fix the Kconfig issue, but it is otherwise not
> > even build-tested. Baruch? ;-)
> 
> Thanks for your analysis and patch.
> 
> I build tested one of the defconfigs that commit fa6feffa0def mentions. Then 
> selected BR2_PACKAGE_QT5TOOLS manually, and built wireshark again. In both 
> cases build succeeds after applying another (unrelated) patch[1]. So:
> 
> Tested-by: Baruch Siach <baruch@tkos.co.il>

Thanks for testing! :-)

My build eventually finished successfully here too, with just the
strictly minimum to enable wireshark and GUI stuff:

    BR2_arm=y
    BR2_cortex_a7=y
    BR2_TOOLCHAIN_EXTERNAL=y
    BR2_INIT_NONE=y
    BR2_SYSTEM_BIN_SH_NONE=y
    # BR2_PACKAGE_BUSYBOX is not set
    BR2_PACKAGE_QT5=y
    BR2_PACKAGE_QT5BASE_LICENSE_APPROVED=y
    BR2_PACKAGE_QT5BASE_GUI=y
    BR2_PACKAGE_QT5BASE_WIDGETS=y
    BR2_PACKAGE_QT5TOOLS=y
    BR2_PACKAGE_WIRESHARK=y

Then wiresharkd reports:

    The Wireshark package has been configured with the following options:
    GLib version : v2.50.1
    Build wireshark : yes (with Qt5 v5.6.2)
    Build wireshark-gtk : no
    Build tshark : yes
    Build tfshark : no
    Build capinfos : yes
    Build captype : yes
    Build editcap : yes
    Build dumpcap : yes
    Build mergecap : yes
    Build reordercap : yes
    Build text2pcap : yes
    Build randpkt : yes
    Build dftest : yes
    Build rawshark : yes
    Build androiddump : yes
    Build sshdump : no
    Build ciscodump : no
    Build randpktdump : yes
    Build echld : no

    Save files as pcap-ng by default : yes
    Install dumpcap with capabilities : no
    Install dumpcap setuid : no
    Use dumpcap group : (none)
    Use plugins : yes
    Use external capture sources : yes
    Use Lua library : no
    Build Qt RTP player : no
    Build GTK+ RTP player : no
    Build profile binaries : no
    Use pcap library : yes
    Use zlib library : yes
    Use kerberos library : no
    Use c-ares library : no (name resolution will be disabled)
    Use SMI MIB library : no
    Use GNU gcrypt library : no
    Use SSL crypto library : no
    Use GnuTLS library : no
    Use POSIX capabilities library : no
    Use GeoIP library : no
    Use libssh library : no
    Have ssh_userauth_agent : no
    Use nl library : no
    Use SBC codec library : no

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH RFC] package/wireshark: fix kconfig depndencies
  2016-10-20 16:28 [Buildroot] [PATCH RFC] package/wireshark: fix kconfig depndencies Yann E. MORIN
  2016-10-20 17:55 ` Baruch Siach
@ 2016-10-20 19:40 ` Thomas Petazzoni
  1 sibling, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2016-10-20 19:40 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu, 20 Oct 2016 18:28:25 +0200, Yann E. MORIN wrote:
> 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>
> 
> ---
> Note: UNTESTED. It does fix the Kconfig issue, but it is otherwise not
> even build-tested. Baruch? ;-)
> ---
>  package/wireshark/Config.in    | 15 +++++++++++++--
>  package/wireshark/wireshark.mk |  4 ++--
>  2 files changed, 15 insertions(+), 4 deletions(-)

Applied to master, after fixing the typo in the commit title. Thanks a
lot for looking into this issue!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-10-20 19:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-20 16:28 [Buildroot] [PATCH RFC] package/wireshark: fix kconfig depndencies Yann E. MORIN
2016-10-20 17:55 ` Baruch Siach
2016-10-20 18:28   ` Yann E. MORIN
2016-10-20 19:40 ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox