[meta-oe] wxwidgets: Fix checking for PACKAGECONFIG and DISTRO_FEATURES

Message ID 20220402032642.107153-1-liezhi.yang@windriver.com
State New
Headers show
Series [meta-oe] wxwidgets: Fix checking for PACKAGECONFIG and DISTRO_FEATURES | expand

Commit Message

Robert Yang April 2, 2022, 3:26 a.m. UTC
The PACKAGECONFIG depends on DISTRO_FEATURES, not DISTRO_FEATURES depends on
PACKAGECONFIG. And the REQUIRED_DISTRO_FEATURES is not needed since it can work
with gtk or x11.

Fixed when x11 is not in DISTRO_FEATURES:
$ bitbake wxwidgets
ERROR: Nothing PROVIDES 'wxwidgets'
wxwidgets was skipped: missing required distro feature 'x11' (not in DISTRO_FEATURES)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

Comments

Samuli Piippo April 7, 2022, 6:55 a.m. UTC | #1
This commit breaks builds when DISTRO_FEATURES has opengl, but not x11.

ERROR: //meta-openembedded/meta-oe/recipes-extended/wxwidgets/
wxwidgets_3.1.5.bb: wxwidgets: PACKAGECONFIG[no_gui] Conflict package
config 'opengl' set in PACKAGECONFIG.

On Sat, 2 Apr 2022 at 06:26, Robert Yang <liezhi.yang@windriver.com> wrote:

> The PACKAGECONFIG depends on DISTRO_FEATURES, not DISTRO_FEATURES depends
> on
> PACKAGECONFIG. And the REQUIRED_DISTRO_FEATURES is not needed since it can
> work
> with gtk or x11.
>
> Fixed when x11 is not in DISTRO_FEATURES:
> $ bitbake wxwidgets
> ERROR: Nothing PROVIDES 'wxwidgets'
> wxwidgets was skipped: missing required distro feature 'x11' (not in
> DISTRO_FEATURES)
>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
>  meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
> b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
> index f9349b02a..b10742eac 100644
> --- a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
> +++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
> @@ -10,10 +10,7 @@ LICENSE = "WXwindows"
>  LIC_FILES_CHKSUM =
> "file://docs/licence.txt;md5=981f50a934828620b08f44d75db557c6"
>
>  inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'cmake_qt5', 'cmake',
> d)}
> -inherit features_check lib_package binconfig pkgconfig
> -
> -# All toolkit-configs except 'no_gui' require x11 explicitly (see
> toolkit.cmake)
> -REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG',
> 'no_gui', '', 'x11', d)}"
> +inherit lib_package binconfig pkgconfig
>
>  DEPENDS += " \
>      jpeg \
> @@ -46,7 +43,11 @@ EXTRA_OECMAKE:append:libc-musl = " \
>      -DHAVE_LOCALE_T=OFF \
>  "
>
> -PACKAGECONFIG ?= "gtk ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
> +# All toolkit-configs except 'no_gui' require x11 explicitly (see
> toolkit.cmake)
> +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk',
> 'no_gui', d)} \
> +    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
> +"
> +
>  PACKAGECONFIG:remove:class-native = "opengl"
>
>  # Note on toolkit-PACKAGECONFIGs: select exactly one of 'no_gui' / 'gtk'
> / 'qt'
> --
> 2.31.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#96342):
> https://lists.openembedded.org/g/openembedded-devel/message/96342
> Mute This Topic: https://lists.openembedded.org/mt/90194835/3617605
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> samuli.piippo@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Denys Dmytriyenko April 8, 2022, 12:45 a.m. UTC | #2
On Thu, Apr 07, 2022 at 09:55:41AM +0300, Samuli Piippo wrote:
> This commit breaks builds when DISTRO_FEATURES has opengl, but not x11.

Same here! Moreover, it does not simply breaks the build, it breaks *parsing* 
even when not building wxwidgets! Please fix ASAP or revert.


> ERROR: //meta-openembedded/meta-oe/recipes-extended/wxwidgets/
> wxwidgets_3.1.5.bb: wxwidgets: PACKAGECONFIG[no_gui] Conflict package
> config 'opengl' set in PACKAGECONFIG.
> 
> On Sat, 2 Apr 2022 at 06:26, Robert Yang <liezhi.yang@windriver.com> wrote:
> 
> > The PACKAGECONFIG depends on DISTRO_FEATURES, not DISTRO_FEATURES depends
> > on
> > PACKAGECONFIG. And the REQUIRED_DISTRO_FEATURES is not needed since it can
> > work
> > with gtk or x11.
> >
> > Fixed when x11 is not in DISTRO_FEATURES:
> > $ bitbake wxwidgets
> > ERROR: Nothing PROVIDES 'wxwidgets'
> > wxwidgets was skipped: missing required distro feature 'x11' (not in
> > DISTRO_FEATURES)
> >
> > Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> > ---
> >  meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb | 11 ++++++-----
> >  1 file changed, 6 insertions(+), 5 deletions(-)
> >
> > diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
> > b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
> > index f9349b02a..b10742eac 100644
> > --- a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
> > +++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
> > @@ -10,10 +10,7 @@ LICENSE = "WXwindows"
> >  LIC_FILES_CHKSUM =
> > "file://docs/licence.txt;md5=981f50a934828620b08f44d75db557c6"
> >
> >  inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'cmake_qt5', 'cmake',
> > d)}
> > -inherit features_check lib_package binconfig pkgconfig
> > -
> > -# All toolkit-configs except 'no_gui' require x11 explicitly (see
> > toolkit.cmake)
> > -REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG',
> > 'no_gui', '', 'x11', d)}"
> > +inherit lib_package binconfig pkgconfig
> >
> >  DEPENDS += " \
> >      jpeg \
> > @@ -46,7 +43,11 @@ EXTRA_OECMAKE:append:libc-musl = " \
> >      -DHAVE_LOCALE_T=OFF \
> >  "
> >
> > -PACKAGECONFIG ?= "gtk ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
> > +# All toolkit-configs except 'no_gui' require x11 explicitly (see
> > toolkit.cmake)
> > +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk',
> > 'no_gui', d)} \
> > +    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
> > +"
> > +
> >  PACKAGECONFIG:remove:class-native = "opengl"
> >
> >  # Note on toolkit-PACKAGECONFIGs: select exactly one of 'no_gui' / 'gtk'
> > / 'qt'
> > --
> > 2.31.1
Robert Yang April 8, 2022, 3:32 a.m. UTC | #3
Hi Denys,

On 4/8/22 8:45 AM, Denys Dmytriyenko wrote:
> On Thu, Apr 07, 2022 at 09:55:41AM +0300, Samuli Piippo wrote:
>> This commit breaks builds when DISTRO_FEATURES has opengl, but not x11.
> 
> Same here! Moreover, it does not simply breaks the build, it breaks *parsing*
> even when not building wxwidgets! Please fix ASAP or revert.

Sorry for the problem. I think that the fix should be only enable opengl when 
both opengl and x11 are in DISTRO_FEATURES, the opengl can't work without x11
since it depends on libglu, and
oe-core/meta/recipes-graphics/mesa/libglu_9.0.2.bb requires both x11 and opengl.

I will send a patch to fix it.

// Robert

> 
> 
>> ERROR: //meta-openembedded/meta-oe/recipes-extended/wxwidgets/
>> wxwidgets_3.1.5.bb: wxwidgets: PACKAGECONFIG[no_gui] Conflict package
>> config 'opengl' set in PACKAGECONFIG.
>>
>> On Sat, 2 Apr 2022 at 06:26, Robert Yang <liezhi.yang@windriver.com> wrote:
>>
>>> The PACKAGECONFIG depends on DISTRO_FEATURES, not DISTRO_FEATURES depends
>>> on
>>> PACKAGECONFIG. And the REQUIRED_DISTRO_FEATURES is not needed since it can
>>> work
>>> with gtk or x11.
>>>
>>> Fixed when x11 is not in DISTRO_FEATURES:
>>> $ bitbake wxwidgets
>>> ERROR: Nothing PROVIDES 'wxwidgets'
>>> wxwidgets was skipped: missing required distro feature 'x11' (not in
>>> DISTRO_FEATURES)
>>>
>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>>> ---
>>>   meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb | 11 ++++++-----
>>>   1 file changed, 6 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
>>> b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
>>> index f9349b02a..b10742eac 100644
>>> --- a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
>>> +++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
>>> @@ -10,10 +10,7 @@ LICENSE = "WXwindows"
>>>   LIC_FILES_CHKSUM =
>>> "file://docs/licence.txt;md5=981f50a934828620b08f44d75db557c6"
>>>
>>>   inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'cmake_qt5', 'cmake',
>>> d)}
>>> -inherit features_check lib_package binconfig pkgconfig
>>> -
>>> -# All toolkit-configs except 'no_gui' require x11 explicitly (see
>>> toolkit.cmake)
>>> -REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG',
>>> 'no_gui', '', 'x11', d)}"
>>> +inherit lib_package binconfig pkgconfig
>>>
>>>   DEPENDS += " \
>>>       jpeg \
>>> @@ -46,7 +43,11 @@ EXTRA_OECMAKE:append:libc-musl = " \
>>>       -DHAVE_LOCALE_T=OFF \
>>>   "
>>>
>>> -PACKAGECONFIG ?= "gtk ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
>>> +# All toolkit-configs except 'no_gui' require x11 explicitly (see
>>> toolkit.cmake)
>>> +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk',
>>> 'no_gui', d)} \
>>> +    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
>>> +"
>>> +
>>>   PACKAGECONFIG:remove:class-native = "opengl"
>>>
>>>   # Note on toolkit-PACKAGECONFIGs: select exactly one of 'no_gui' / 'gtk'
>>> / 'qt'
>>> --
>>> 2.31.1

Patch

diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
index f9349b02a..b10742eac 100644
--- a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
@@ -10,10 +10,7 @@  LICENSE = "WXwindows"
 LIC_FILES_CHKSUM = "file://docs/licence.txt;md5=981f50a934828620b08f44d75db557c6"
 
 inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'cmake_qt5', 'cmake', d)}
-inherit features_check lib_package binconfig pkgconfig
-
-# All toolkit-configs except 'no_gui' require x11 explicitly (see toolkit.cmake)
-REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'no_gui', '', 'x11', d)}"
+inherit lib_package binconfig pkgconfig
 
 DEPENDS += " \
     jpeg \
@@ -46,7 +43,11 @@  EXTRA_OECMAKE:append:libc-musl = " \
     -DHAVE_LOCALE_T=OFF \
 "
 
-PACKAGECONFIG ?= "gtk ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
+# All toolkit-configs except 'no_gui' require x11 explicitly (see toolkit.cmake)
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', 'no_gui', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
+"
+
 PACKAGECONFIG:remove:class-native = "opengl"
 
 # Note on toolkit-PACKAGECONFIGs: select exactly one of 'no_gui' / 'gtk' / 'qt'