All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Vincent Davis Jr <vince@underview.tech>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH v2] mesa: enable glvnd support
Date: Wed, 26 Oct 2022 11:42:44 +0200	[thread overview]
Message-ID: <Y1kBFGhoBrFUuNVm@mail.local> (raw)
In-Reply-To: <20221024150823.188108-1-vince@underview.tech>

Hello,

On 24/10/2022 10:08:23-0500, Vincent Davis Jr wrote:
> Allows mesa to be built with glvnd support.
> Thus, creates libEGL_mesa.so* and libGLX_mesa.so*
> libraries meant to coexist with vendor neutral
> dispatch libraries from libglvnd.
> 

This causes failures on the autobuilders:

https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1856/steps/13/logs/stdio
ERROR: mesa-2_22.2.2-r0 do_package: QA Issue: mesa: Files/directories were installed but not shipped in any package:
  /usr/lib/libEGL.so
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
mesa: 1 installed and not shipped files. [installed-vs-shipped]
ERROR: mesa-2_22.2.2-r0 do_package: Fatal QA errors were found, failing task.

> Signed-off-by: Vincent Davis Jr <vince@underview.tech>
> ---
>  .../conf/distro/include/default-providers.inc |  1 +
>  meta/recipes-graphics/mesa/mesa.inc           | 20 +++++++++++++------
>  2 files changed, 15 insertions(+), 6 deletions(-)
> 
> diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc
> index 6defdca12d..3a4e989c1f 100644
> --- a/meta/conf/distro/include/default-providers.inc
> +++ b/meta/conf/distro/include/default-providers.inc
> @@ -5,6 +5,7 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
>  PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg"
>  PREFERRED_PROVIDER_virtual/egl ?= "mesa"
>  PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
> +PREFERRED_PROVIDER_virtual/libglx ?= "mesa"
>  PREFERRED_PROVIDER_virtual/libgl-native ?= "mesa-native"
>  PREFERRED_PROVIDER_virtual/nativesdk-libgl ?= "nativesdk-mesa"
>  PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
> diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
> index 8a74e0a80a..4eddf82644 100644
> --- a/meta/recipes-graphics/mesa/mesa.inc
> +++ b/meta/recipes-graphics/mesa/mesa.inc
> @@ -29,15 +29,18 @@ UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
>  #because we cannot rely on the fact that all apps will use pkgconfig,
>  #make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
>  do_install:append() {
> -    if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
> -        sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
> -    fi
> +  # sed can't find EGL/eglplatform.h as it doesn't get installed when glvnd enabled.
> +  # So, check if EGL/eglplatform.h exists before running sed.
> +  if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)} && [ -f ${D}${includedir}/EGL/eglplatform.h ]; then
> +      sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
> +  fi
>  }
>  
>  DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native"
>  EXTRANATIVEPATH += "chrpath-native"
>  PROVIDES = " \
>      ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \
> +    ${@bb.utils.contains('PACKAGECONFIG', 'glvnd', 'virtual/libglx', '', d)} \
>      ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \
>      ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \
>      ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \
> @@ -116,6 +119,7 @@ VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broa
>  PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
>  
>  PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false"
> +PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=false,libglvnd"
>  
>  # "gles" requires "opengl"
>  PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled"
> @@ -204,6 +208,7 @@ RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'lib
>  PACKAGES =+ "libegl-mesa libegl-mesa-dev \
>               libosmesa libosmesa-dev \
>               libgl-mesa libgl-mesa-dev \
> +             libglx-mesa libglx-mesa-dev \
>               libglapi libglapi-dev \
>               libgbm libgbm-dev \
>               libgles1-mesa libgles1-mesa-dev \
> @@ -222,7 +227,7 @@ do_install:append () {
>      rm -f ${D}${libdir}/gallium-pipe/*.la
>      rm -f ${D}${libdir}/gbm/*.la
>  
> -    # it was packaged in libdricore9.1.3-1 and preventing upgrades when debian.bbclass was used 
> +    # it was packaged in libdricore9.1.3-1 and preventing upgrades when debian.bbclass was used
>      chrpath --delete ${D}${libdir}/dri/*_dri.so || true
>  
>      # libwayland-egl has been moved to wayland 1.15+
> @@ -240,6 +245,7 @@ python __anonymous() {
>          suffix = "-native"
>      for p in (("egl", "libegl", "libegl1"),
>                ("opengl", "libgl", "libgl1"),
> +              ("glvnd", "libglx",),
>                ("gles", "libgles1", "libglesv1-cm1"),
>                ("gles", "libgles2", "libglesv2-2"),
>                ("gles", "libgles3",),
> @@ -298,20 +304,22 @@ PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native"
>  FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d"
>  FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${datadir}/vulkan"
>  FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
> -FILES:libegl-mesa = "${libdir}/libEGL.so.*"
> +FILES:libegl-mesa = "${libdir}/libEGL*.so.*"
>  FILES:libgbm = "${libdir}/libgbm.so.*"
>  FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*"
>  FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*"
>  FILES:libgl-mesa = "${libdir}/libGL.so.*"
> +FILES:libglx-mesa = "${libdir}/libGLX*.so.* ${datadir}/glvnd"
>  FILES:libopencl-mesa = "${libdir}/libMesaOpenCL.so.* ${libdir}/gallium-pipe/*.so ${sysconfdir}/OpenCL/vendors/mesa.icd"
>  FILES:libglapi = "${libdir}/libglapi.so.*"
>  FILES:libosmesa = "${libdir}/libOSMesa.so.*"
>  FILES:libxatracker = "${libdir}/libxatracker.so.*"
>  
>  FILES:${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/vulkan ${libdir}/vdpau/*.so"
> -FILES:libegl-mesa-dev = "${libdir}/libEGL.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
> +FILES:libegl-mesa-dev = "${libdir}/libEGL*.so.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
>  FILES:libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
>  FILES:libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc"
> +FILES:libglx-mesa-dev = "${libdir}/libGLX*.*"
>  FILES:libglapi-dev = "${libdir}/libglapi.*"
>  FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc"
>  FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc"
> -- 
> 2.34.1
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#172105): https://lists.openembedded.org/g/openembedded-core/message/172105
> Mute This Topic: https://lists.openembedded.org/mt/94536595/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


      parent reply	other threads:[~2022-10-26  9:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-24 15:08 [PATCH v2] mesa: enable glvnd support Vincent Davis Jr
2022-10-24 15:19 ` [OE-core] " Alexander Kanavin
2022-10-26  9:42 ` Alexandre Belloni [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y1kBFGhoBrFUuNVm@mail.local \
    --to=alexandre.belloni@bootlin.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=vince@underview.tech \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.