[meta-oe,RFC,2/2] libsdl2: rework and cleanup

Message ID 20220519064312.391164-2-f_l_k@t-online.de
State New
Headers show
Series [meta-oe,RFC,1/2] libdecor: initial add recipe | expand

Commit Message

Markus Volk May 19, 2022, 6:43 a.m. UTC
- add libusb dependency because libsdl2 is looking for it
- remove xvm and xinerama since support has been dropped in sdl code
- allow native build for libxkbcommon and xkeyboard-config to allow
  alignment of native/target build
- align native and target build
- add PACKAGECONFIG options for pipewire and libdecor

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb | 17 ++++++++---------
 .../xorg-lib/libxkbcommon_1.4.0.bb              |  2 ++
 .../xorg-lib/xkeyboard-config_2.35.1.bb         |  2 ++
 3 files changed, 12 insertions(+), 9 deletions(-)

Comments

Luca Ceresoli May 19, 2022, 2:18 p.m. UTC | #1
Hello Marius,

Il giorno Thu, 19 May 2022 08:43:12 +0200
"Markus Volk" <f_l_k@t-online.de> ha scritto:

> - add libusb dependency because libsdl2 is looking for it
> - remove xvm and xinerama since support has been dropped in sdl code
> - allow native build for libxkbcommon and xkeyboard-config to allow
>   alignment of native/target build
> - align native and target build
> - add PACKAGECONFIG options for pipewire and libdecor
> 
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb | 17
> ++++++++--------- .../xorg-lib/libxkbcommon_1.4.0.bb              |
> 2 ++ .../xorg-lib/xkeyboard-config_2.35.1.bb         |  2 ++
>  3 files changed, 12 insertions(+), 9 deletions(-)
> 
> diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb index
> 7678319770..a6550c3175 100644 ---
> a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb +++
> b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb @@ -21,6 +21,8 @@
> LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG',
> 'arm-neon', 'f PROVIDES = "virtual/libsdl2"
>  
> +DEPENDS = "libusb"

This patch is causing errors on the autobuilders due to this line:

stdio: ERROR: Nothing PROVIDES 'libusb' (but
/home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
DEPENDS on or otherwise requires it). Close matches:

Here are a few logs:

https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5269/steps/11/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5269/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5269/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/20/builds/5590/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/45/builds/5243/steps/12/logs/stdio
Markus Volk May 19, 2022, 2:30 p.m. UTC | #2
Hello Luca,
thats probably an issue because libusb-compat is not in oe-core but meta-oe
What would be the preferred way to fix it ?
+DEPENDS = "libusb1" ?

Am 19.05.22 um 16:18 schrieb Luca Ceresoli:
> Hello Marius,
>
> Il giorno Thu, 19 May 2022 08:43:12 +0200
> "Markus Volk"<f_l_k@t-online.de>  ha scritto:
>
>> - add libusb dependency because libsdl2 is looking for it
>> - remove xvm and xinerama since support has been dropped in sdl code
>> - allow native build for libxkbcommon and xkeyboard-config to allow
>>    alignment of native/target build
>> - align native and target build
>> - add PACKAGECONFIG options for pipewire and libdecor
>>
>> Signed-off-by: Markus Volk<f_l_k@t-online.de>
>> ---
>>   meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb | 17
>> ++++++++--------- .../xorg-lib/libxkbcommon_1.4.0.bb              |
>> 2 ++ .../xorg-lib/xkeyboard-config_2.35.1.bb         |  2 ++
>>   3 files changed, 12 insertions(+), 9 deletions(-)
>>
>> diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
>> b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb index
>> 7678319770..a6550c3175 100644 ---
>> a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb +++
>> b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb @@ -21,6 +21,8 @@
>> LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG',
>> 'arm-neon', 'f PROVIDES = "virtual/libsdl2"
>>   
>> +DEPENDS = "libusb"
> This patch is causing errors on the autobuilders due to this line:
>
> stdio: ERROR: Nothing PROVIDES 'libusb' (but
> /home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> DEPENDS on or otherwise requires it). Close matches:
>
> Here are a few logs:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5269/steps/11/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5269/steps/12/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5269/steps/14/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/20/builds/5590/steps/12/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/45/builds/5243/steps/12/logs/stdio
>
Alexander Kanavin May 19, 2022, 3:15 p.m. UTC | #3
You probably need to make libusb support subject to PACKAGECONFIG as
well, as libsdl2 does seem to build ok without it?

Alex

On Thu, 19 May 2022 at 16:30, Markus Volk <f_l_k@t-online.de> wrote:
>
> Hello Luca,
> thats probably an issue because libusb-compat is not in oe-core but meta-oe
> What would be the preferred way to fix it ?
> +DEPENDS = "libusb1" ?
>
> Am 19.05.22 um 16:18 schrieb Luca Ceresoli:
>
> Hello Marius,
>
> Il giorno Thu, 19 May 2022 08:43:12 +0200
> "Markus Volk" <f_l_k@t-online.de> ha scritto:
>
> - add libusb dependency because libsdl2 is looking for it
> - remove xvm and xinerama since support has been dropped in sdl code
> - allow native build for libxkbcommon and xkeyboard-config to allow
>   alignment of native/target build
> - align native and target build
> - add PACKAGECONFIG options for pipewire and libdecor
>
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb | 17
> ++++++++--------- .../xorg-lib/libxkbcommon_1.4.0.bb              |
> 2 ++ .../xorg-lib/xkeyboard-config_2.35.1.bb         |  2 ++
>  3 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb index
> 7678319770..a6550c3175 100644 ---
> a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb +++
> b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb @@ -21,6 +21,8 @@
> LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG',
> 'arm-neon', 'f PROVIDES = "virtual/libsdl2"
>
> +DEPENDS = "libusb"
>
> This patch is causing errors on the autobuilders due to this line:
>
> stdio: ERROR: Nothing PROVIDES 'libusb' (but
> /home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> DEPENDS on or otherwise requires it). Close matches:
>
> Here are a few logs:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5269/steps/11/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5269/steps/12/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5269/steps/14/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/20/builds/5590/steps/12/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/45/builds/5243/steps/12/logs/stdio
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#165892): https://lists.openembedded.org/g/openembedded-core/message/165892
> Mute This Topic: https://lists.openembedded.org/mt/91203656/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>

Patch

diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
index 7678319770..a6550c3175 100644
--- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
+++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
@@ -21,6 +21,8 @@  LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', 'f
 
 PROVIDES = "virtual/libsdl2"
 
+DEPENDS = "libusb"
+
 SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
            file://0001-video-restore-ability-to-disable-fb-accel-via-hint.patch \
            "
@@ -43,9 +45,7 @@  EXTRA_OECMAKE = "-DSDL_OSS=OFF -DSDL_ESD=OFF -DSDL_ARTS=OFF \
                  -DSDL_PTHREADS=ON \
                  -DSDL_RPATH=OFF \
                  -DSDL_SNDIO=OFF \
-                 -DSDL_X11_XVM=OFF \
                  -DSDL_X11_XCURSOR=OFF \
-                 -DSDL_X11_XINERAMA=OFF \
                  -DSDL_X11_XDBE=OFF \
                  -DSDL_X11_XFIXES=OFF \
                  -DSDL_X11_XINPUT=OFF \
@@ -55,24 +55,23 @@  EXTRA_OECMAKE = "-DSDL_OSS=OFF -DSDL_ESD=OFF -DSDL_ARTS=OFF \
 "
 
 # opengl packageconfig factored out to make it easy for distros
-# and BSP layers to pick either (desktop) opengl, gles2, or no GL
-PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
+# and BSP layers to pick either (desktop) opengl, gles, or no GL
+PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl gles', d)}"
 
-PACKAGECONFIG:class-native = "x11 ${PACKAGECONFIG_GL}"
-PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}"
 PACKAGECONFIG ??= " \
     ${PACKAGECONFIG_GL} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio pipewire x11 wayland', d)} \
     ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \
 "
 PACKAGECONFIG[alsa]       = "-DSDL_ALSA=ON,-DSDL_ALSA=OFF,alsa-lib,"
 PACKAGECONFIG[arm-neon]   = "-DSDL_ARMNEON=ON,-DSDL_ARMNEON=OFF"
 PACKAGECONFIG[directfb]   = "-DSDL_DIRECTFB=ON,-DSDL_DIRECTFB=OFF,directfb,directfb"
-PACKAGECONFIG[gles2]      = "-DSDL_OPENGLES=ON,-DSDL_OPENGLES=OFF,virtual/libgles2"
+PACKAGECONFIG[gles]       = "-DSDL_OPENGLES=ON,-DSDL_OPENGLES=OFF,virtual/libgles2"
 PACKAGECONFIG[jack]       = "-DSDL_JACK=ON,-DSDL_JACK=OFF,jack"
 PACKAGECONFIG[kmsdrm]     = "-DSDL_KMSDRM=ON,-DSDL_KMSDRM=OFF,libdrm virtual/libgbm"
+PACKAGECONFIG[libdecor]   = "-DSDL_WAYLAND_LIBDECOR=ON,-DSDL_WAYLAND_LIBDECOR=OFF,libdecor,libdecor"
 PACKAGECONFIG[opengl]     = "-DSDL_OPENGL=ON,-DSDL_OPENGL=OFF,virtual/egl"
+PACKAGECONFIG[pipewire]   = "-DSDL_PIPEWIRE=ON,-DSDL_PIPEWIRE=OFF,pipewire"
 PACKAGECONFIG[pulseaudio] = "-DSDL_PULSEAUDIO=ON,-DSDL_PULSEAUDIO=OFF,pulseaudio"
 PACKAGECONFIG[wayland]    = "-DSDL_WAYLAND=ON,-DSDL_WAYLAND=OFF,wayland-native wayland wayland-protocols libxkbcommon"
 PACKAGECONFIG[x11]        = "-DSDL_X11=ON,-DSDL_X11=OFF,virtual/libx11 libxext libxrandr libxrender"
diff --git a/meta/recipes-graphics/xorg-lib/libxkbcommon_1.4.0.bb b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.4.0.bb
index 34652e9c4e..9840b0797b 100644
--- a/meta/recipes-graphics/xorg-lib/libxkbcommon_1.4.0.bb
+++ b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.4.0.bb
@@ -34,3 +34,5 @@  python populate_packages:prepend () {
 # Fix a following runtime error:
 # xkbcommon: ERROR: couldn't find a Compose file for locale "C"
 RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', 'libx11-compose-data', d)}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.35.1.bb b/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.35.1.bb
index 5215131e3e..46c73879e6 100644
--- a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.35.1.bb
+++ b/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.35.1.bb
@@ -28,3 +28,5 @@  do_install:append () {
     install -d ${D}${datadir}/X11/xkb/compiled
     cd ${D}${datadir}/X11/xkb/rules && ln -sf base xorg
 }
+
+BBCLASSEXTEND = "native nativesdk"