[Buildroot] [PATCH v1] package/qt5webengine: examples need qt5svg

Yann E. MORIN yann.morin.1998 at free.fr
Tue Aug 11 21:33:28 UTC 2020


Thomas, Peter, All,

On 2020-08-11 21:28 +0200, Thomas Petazzoni spake thusly:
> On Tue, 11 Aug 2020 20:31:55 +0200
> Peter Seiderer <ps.report at gmx.net> wrote:
> > package/qt5/qt5base/Config.in:1:error: recursive dependency detected!
> > package/qt5/qt5base/Config.in:1:	symbol BR2_PACKAGE_QT5BASE is selected by BR2_PACKAGE_QT5SVG
> Right, this makes sense.
> 
> > package/qt5/qt5svg/Config.in:1:	symbol BR2_PACKAGE_QT5SVG is selected by BR2_PACKAGE_QT5BASE_EXAMPLES
> This doesn't make any sense to me:
[--SNIP--]
> Or perhaps it is the line added by your patch:
> 	select BR2_PACKAGE_QT5SVG if BR2_PACKAGE_QT5BASE_EXAMPLES
> which causes this statement ?

AFAICS, yes.

> > package/qt5/qt5base/Config.in:42:	symbol BR2_PACKAGE_QT5BASE_EXAMPLES depends on BR2_PACKAGE_QT5BASE
> This obviously makes sense.

The whole problem we have is that the qt5 symbol is dual;

  - BR2_PACKAGE_QT5 that enables the whole Qt5 stack

  - BR2_PACKAGE_QT5BASE that enables the core component

However, BR2_PACKAGE_QT5 selects BR2_PACKAGE_QT5BASE, and BR2_PACKAGE_QT5BASE
depends on BR2_PACKAGE_QT5.

So both are either enabled or disabled at the same time:

    N N: valid
    N Y: impossible
    Y N: impossible
    Y Y: valid

But kcnfig can't see that the recursive dependency is resolved by
construction of the two symbols, as shown in the validity matrix.

I think we should change all qt5 packages to switch their dependency
onto the package, not the stack, and drop explicit select or depends
since this is implied by the top-level:

    diff --git a/package/qt5/Config.in b/package/qt5/Config.in
    index 5c544ecec4..954e257879 100644
    --- a/package/qt5/Config.in
    +++ b/package/qt5/Config.in
    @@ -36,8 +36,9 @@ menuconfig BR2_PACKAGE_QT5
     	  http://qt.io
     
     if BR2_PACKAGE_QT5
    -source "package/qt5/qt53d/Config.in"
     source "package/qt5/qt5base/Config.in"
    +if BR2_PACKAGE_QT5BASE
    +source "package/qt5/qt53d/Config.in"
     source "package/qt5/qt5charts/Config.in"
     source "package/qt5/qt5connectivity/Config.in"
     source "package/qt5/qt5declarative/Config.in"
    @@ -66,4 +67,5 @@ source "package/qt5/qt5websockets/Config.in"
     source "package/qt5/qt5webview/Config.in"
     source "package/qt5/qt5x11extras/Config.in"
     source "package/qt5/qt5xmlpatterns/Config.in"
    -endif
    +endif # QT5BASE
    +endif # QT5
    diff --git a/package/qt5/qt5svg/Config.in b/package/qt5/qt5svg/Config.in
    index bc80b62674..1c4e90d1d9 100644
    --- a/package/qt5/qt5svg/Config.in
    +++ b/package/qt5/qt5svg/Config.in
    @@ -1,6 +1,6 @@
     config BR2_PACKAGE_QT5SVG
     	bool "qt5svg"
    -	select BR2_PACKAGE_QT5BASE
     	select BR2_PACKAGE_QT5BASE_GUI
     	help
     	  Qt is a cross-platform application and UI framework for

Regards,
Yann E. MORIN.

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



More information about the buildroot mailing list