From patchwork Fri Feb 6 17:23:53 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 80583 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id EC640ECD9BA for ; Fri, 6 Feb 2026 17:24:24 +0000 (UTC) Received: from smtp-42ad.mail.infomaniak.ch (smtp-42ad.mail.infomaniak.ch [84.16.66.173]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.2835.1770398658108463234 for ; Fri, 06 Feb 2026 09:24:18 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 84.16.66.173, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4f71D02zgSzP8t; Fri, 6 Feb 2026 18:24:16 +0100 (CET) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4f71D00kKdzDNY; Fri, 6 Feb 2026 18:24:16 +0100 (CET) From: Quentin Schulz Date: Fri, 06 Feb 2026 18:23:53 +0100 Subject: [PATCH 1/7] mesa: upgrade 25.3.3 -> 25.3.4 MIME-Version: 1.0 Message-Id: <20260206-mesa-tools-native-v1-1-166935b0e379@cherry.de> References: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> In-Reply-To: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Quentin Schulz X-Mailer: b4 0.15-dev-bab12 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 06 Feb 2026 17:24:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230632 From: Quentin Schulz Upgrade mesa to the latest stable release. See https://docs.mesa3d.org/relnotes/25.3.4.html for release notes and sha256sum. Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 1607fddd4b..d075210015 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -22,8 +22,8 @@ SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \ file://0002-rocket-drop-file-names-from-the-generated-file.patch \ " -SRC_URI[sha256sum] = "05328b3891c000e6a110a3e7321d8bfbb21631d132bf86bd3d4a8f45c535ef6b" -PV = "25.3.3" +SRC_URI[sha256sum] = "3a0fc6ec070b45ae25dc2ccb5e52fae1d89141f7c39c4a91fe4eaa80dfff9deb" +PV = "25.3.4" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" From patchwork Fri Feb 6 17:23:54 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 80585 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03A07EE6B43 for ; Fri, 6 Feb 2026 17:24:25 +0000 (UTC) Received: from smtp-190f.mail.infomaniak.ch (smtp-190f.mail.infomaniak.ch [185.125.25.15]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2785.1770398658412968402 for ; Fri, 06 Feb 2026 09:24:18 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 185.125.25.15, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4f71D05jlHzNlf; Fri, 6 Feb 2026 18:24:16 +0100 (CET) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4f71D035JNzCMZ; Fri, 6 Feb 2026 18:24:16 +0100 (CET) From: Quentin Schulz Date: Fri, 06 Feb 2026 18:23:54 +0100 Subject: [PATCH 2/7] mesa: update patch status MIME-Version: 1.0 Message-Id: <20260206-mesa-tools-native-v1-2-166935b0e379@cherry.de> References: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> In-Reply-To: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Quentin Schulz , Dmitry Baryshkov X-Mailer: b4 0.15-dev-bab12 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 06 Feb 2026 17:24:25 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230633 From: Quentin Schulz This patch was actually merged in main branch, so let's update the patch status to reflect that. Signed-off-by: Quentin Schulz --- ...stream-don-t-dump-genvk.py-args-to-generated-file.patch | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/meta/recipes-graphics/mesa/files/0001-gfxstream-don-t-dump-genvk.py-args-to-generated-file.patch b/meta/recipes-graphics/mesa/files/0001-gfxstream-don-t-dump-genvk.py-args-to-generated-file.patch index 097ca84e3b..df4db15559 100644 --- a/meta/recipes-graphics/mesa/files/0001-gfxstream-don-t-dump-genvk.py-args-to-generated-file.patch +++ b/meta/recipes-graphics/mesa/files/0001-gfxstream-don-t-dump-genvk.py-args-to-generated-file.patch @@ -1,23 +1,25 @@ -From c0f067e86bc9f7fbc60c2539dc612a050ee2569f Mon Sep 17 00:00:00 2001 +From 4315c28739dcade156ac9384c99ba552b6d85b40 Mon Sep 17 00:00:00 2001 From: Dmitry Baryshkov Date: Wed, 19 Nov 2025 11:36:42 +0200 Subject: [PATCH] gfxstream: don't dump genvk.py args to generated files Full command lines include full path to the output file, which triggers -the 'buildpath' QA warning. Drop the args and print only a basename of -the script used to generate the file. +reproducibility warnings (e.g. in Yocto builds). Drop the args and print +only a basename of the script used to generate the file. -Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38875] Signed-off-by: Dmitry Baryshkov +Part-of: +Upstream-Status: Backport [https://gitlab.freedesktop.org/mesa/mesa/-/commit/4315c28739dcade156ac9384c99ba552b6d85b40] +Signed-off-by: Quentin Schulz --- src/gfxstream/codegen/scripts/cerealgenerator.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/gfxstream/codegen/scripts/cerealgenerator.py b/src/gfxstream/codegen/scripts/cerealgenerator.py -index 077571e9eda5..217c3e1d0e94 100644 +index a171af83641..5e34ea64bd1 100644 --- a/src/gfxstream/codegen/scripts/cerealgenerator.py +++ b/src/gfxstream/codegen/scripts/cerealgenerator.py -@@ -254,13 +254,7 @@ def banner_command(argv): +@@ -285,13 +285,7 @@ def banner_command(argv): Return a string corresponding to the command, with platform-specific paths removed.""" From patchwork Fri Feb 6 17:23:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 80581 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C692EEE20BD for ; Fri, 6 Feb 2026 17:24:24 +0000 (UTC) Received: from smtp-190d.mail.infomaniak.ch (smtp-190d.mail.infomaniak.ch [185.125.25.13]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2786.1770398658773108958 for ; Fri, 06 Feb 2026 09:24:19 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 185.125.25.13, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4f71D11BR4zNSb; Fri, 6 Feb 2026 18:24:17 +0100 (CET) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4f71D05n7rz9j6; Fri, 6 Feb 2026 18:24:16 +0100 (CET) From: Quentin Schulz Date: Fri, 06 Feb 2026 18:23:55 +0100 Subject: [PATCH 3/7] mesa: make expat dependency a PACKAGECONFIG MIME-Version: 1.0 Message-Id: <20260206-mesa-tools-native-v1-3-166935b0e379@cherry.de> References: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> In-Reply-To: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Quentin Schulz X-Mailer: b4 0.15-dev-bab12 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 06 Feb 2026 17:24:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230634 From: Quentin Schulz expat is a mesa meson feature which can be disabled so let's make it a PACKAGECONFIG. The motivation actually isn't about disabling it (though we now could as it's only required for a few things) but rather that this dependency is a non-native one. The issue is when a native-only (-native recipe name suffix + inherit native) recipe includes mesa.inc, it'll include the DEPENDS as well but will then depend on a non-native recipe because BitBake doesn't add a suffix to dependencies listed in DEPENDS for native-only recipes like it does for recipes with BBCLASSEXTEND = native. This is a way to circumvent the issue by making the dependency a PACKAGECONFIG dependency such that the listed DEPENDS (third parameter) will be properly modified by BitBake to have the native variant of the recipe pulled in. See[1] for more info on why this is needed. Now that expat is a PACKAGECONFIG and that if it's not there expat isn't autodetected anymore by meson, having xmlconfig PACKAGECONFIG add expat as a DEPENDS (third parameter) is likely not enough anymore due to expat feature being explicitly disabled if expat is not in PACKAGECONFIG. Therefore, remove the third parameter for xmlconfig and add a comment telling the user there's a PACKAGECONFIG dependency here. Note that since this commit adds the expat PACKAGECONFIG to all recipes including mesa.inc, no change in behavior is expected. This is in preparation for the addition of a mesa-tools-native native-only package which will include mesa.inc. [1] https://lore.kernel.org/openembedded-core/07cd1d3c-4d67-4e60-b3d3-75953784f70f@cherry.de/ Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa-gl.bb | 2 +- meta/recipes-graphics/mesa/mesa.bb | 1 + meta/recipes-graphics/mesa/mesa.inc | 6 ++++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb index 3b55d2b77e..fe32e74744 100644 --- a/meta/recipes-graphics/mesa/mesa-gl.bb +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -7,7 +7,7 @@ PROVIDES = "virtual/libgl virtual/mesa" TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" # At least one DRI rendering engine is required to build mesa. -PACKAGECONFIG = "opengl gallium ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} xmlconfig" +PACKAGECONFIG = "expat opengl gallium ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} xmlconfig" PACKAGECONFIG:append:x86 = " libclc gallium-llvm intel amd nouveau svga" PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm intel amd nouveau svga" diff --git a/meta/recipes-graphics/mesa/mesa.bb b/meta/recipes-graphics/mesa/mesa.bb index 2c9a38cf65..2db08727fe 100644 --- a/meta/recipes-graphics/mesa/mesa.bb +++ b/meta/recipes-graphics/mesa/mesa.bb @@ -1,6 +1,7 @@ require ${BPN}.inc PACKAGECONFIG = " \ + expat \ gallium \ video-codecs \ ${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland glvnd', d)} \ diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index d075210015..35b7e5a09a 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -43,7 +43,7 @@ do_install:append() { fi } -DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native" +DEPENDS = "makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native" EXTRANATIVEPATH += "chrpath-native" inherit meson pkgconfig python3native gettext features_check rust @@ -162,8 +162,10 @@ TOOLS .= "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)} # dependencies for tools. TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libconfig libxml2 ', '', d)}" +PACKAGECONFIG[expat] = "-Dexpat=enabled, -Dexpat=disabled, expat" PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}" -PACKAGECONFIG[xmlconfig] = "-Dxmlconfig=enabled, -Dxmlconfig=disabled, expat" +# Depends on expat PACKAGECONFIG! +PACKAGECONFIG[xmlconfig] = "-Dxmlconfig=enabled, -Dxmlconfig=disabled" GALLIUMDRIVERS_LLVMPIPE = ",llvmpipe" GALLIUMDRIVERS_SOFTPIPE = ",softpipe" From patchwork Fri Feb 6 17:23:56 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 80580 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id CA97FEE20BB for ; Fri, 6 Feb 2026 17:24:24 +0000 (UTC) Received: from smtp-bc0d.mail.infomaniak.ch (smtp-bc0d.mail.infomaniak.ch [45.157.188.13]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2787.1770398658968847413 for ; Fri, 06 Feb 2026 09:24:19 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 45.157.188.13, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4f71D13lfpzNNG; Fri, 6 Feb 2026 18:24:17 +0100 (CET) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4f71D11DVvzBRR; Fri, 6 Feb 2026 18:24:17 +0100 (CET) From: Quentin Schulz Date: Fri, 06 Feb 2026 18:23:56 +0100 Subject: [PATCH 4/7] mesa: make zlib dependency a PACKAGECONFIG MIME-Version: 1.0 Message-Id: <20260206-mesa-tools-native-v1-4-166935b0e379@cherry.de> References: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> In-Reply-To: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Quentin Schulz X-Mailer: b4 0.15-dev-bab12 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 06 Feb 2026 17:24:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230635 From: Quentin Schulz zlib is a mesa meson feature which can be disabled so let's make it a PACKAGECONFIG. The motivation actually isn't about disabling it (though we now could as it's only required for a few things) but rather that this dependency is a non-native one. The issue is when a native-only (-native recipe name suffix + inherit native) recipe includes mesa.inc, it'll include the DEPENDS as well but will then depend on a non-native recipe because BitBake doesn't add a suffix to dependencies listed in DEPENDS for native-only recipes like it does for recipes with BBCLASSEXTEND = native. This is a way to circumvent the issue by making the dependency a PACKAGECONFIG dependency such that the listed DEPENDS (third parameter) will be properly modified by BitBake to have the native variant of the recipe pulled in. See[1] for more info on why this is needed. This is in preparation for the addition of a mesa-tools-native native-only package which will include mesa.inc. [1] https://lore.kernel.org/openembedded-core/07cd1d3c-4d67-4e60-b3d3-75953784f70f@cherry.de/ Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa-gl.bb | 2 +- meta/recipes-graphics/mesa/mesa.bb | 1 + meta/recipes-graphics/mesa/mesa.inc | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb index fe32e74744..eb0ee53af5 100644 --- a/meta/recipes-graphics/mesa/mesa-gl.bb +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -7,7 +7,7 @@ PROVIDES = "virtual/libgl virtual/mesa" TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" # At least one DRI rendering engine is required to build mesa. -PACKAGECONFIG = "expat opengl gallium ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} xmlconfig" +PACKAGECONFIG = "expat opengl gallium ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} xmlconfig zlib" PACKAGECONFIG:append:x86 = " libclc gallium-llvm intel amd nouveau svga" PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm intel amd nouveau svga" diff --git a/meta/recipes-graphics/mesa/mesa.bb b/meta/recipes-graphics/mesa/mesa.bb index 2db08727fe..66c8f9c372 100644 --- a/meta/recipes-graphics/mesa/mesa.bb +++ b/meta/recipes-graphics/mesa/mesa.bb @@ -10,6 +10,7 @@ PACKAGECONFIG = " \ ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \ ${@bb.utils.contains_any('DISTRO_FEATURES', 'opengl vulkan', 'virtio', '', d)} \ xmlconfig \ + zlib \ " PACKAGECONFIG:append:x86 = " libclc gallium-llvm intel amd nouveau svga" diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 35b7e5a09a..b2dfc6130d 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -43,7 +43,8 @@ do_install:append() { fi } -DEPENDS = "makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native" +# All dependencies **MUST** be -native. If not, then add a PACKAGECONFIG for it. +DEPENDS = "makedepend-native flex-native bison-native libxml2-native chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native" EXTRANATIVEPATH += "chrpath-native" inherit meson pkgconfig python3native gettext features_check rust @@ -166,6 +167,7 @@ PACKAGECONFIG[expat] = "-Dexpat=enabled, -Dexpat=disabled, expat" PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}" # Depends on expat PACKAGECONFIG! PACKAGECONFIG[xmlconfig] = "-Dxmlconfig=enabled, -Dxmlconfig=disabled" +PACKAGECONFIG[zlib] = "-Dzlib=enabled, -Dzlib=disabled, zlib" GALLIUMDRIVERS_LLVMPIPE = ",llvmpipe" GALLIUMDRIVERS_SOFTPIPE = ",softpipe" From patchwork Fri Feb 6 17:23:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 80582 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8584EB28FF for ; Fri, 6 Feb 2026 17:24:24 +0000 (UTC) Received: from smtp-bc0b.mail.infomaniak.ch (smtp-bc0b.mail.infomaniak.ch [45.157.188.11]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2788.1770398659359776018 for ; Fri, 06 Feb 2026 09:24:19 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 45.157.188.11, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4f71D16W3HzM1G; Fri, 6 Feb 2026 18:24:17 +0100 (CET) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4f71D14KMQz8nB; Fri, 6 Feb 2026 18:24:17 +0100 (CET) From: Quentin Schulz Date: Fri, 06 Feb 2026 18:23:57 +0100 Subject: [PATCH 5/7] mesa: remove libxml2-native dependency MIME-Version: 1.0 Message-Id: <20260206-mesa-tools-native-v1-5-166935b0e379@cherry.de> References: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> In-Reply-To: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Quentin Schulz X-Mailer: b4 0.15-dev-bab12 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 06 Feb 2026 17:24:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230636 From: Quentin Schulz Native libxml2 is only needed for xmllint which in turn is only needed when build-tests meson option is enabled, which defaults to disabled and isn't enabled by the recipe. We may need to revisit this if we add ptest support in mesa I assume. Let's remove it from the DEPENDS for now. Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index b2dfc6130d..8e5f9657fd 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -44,7 +44,7 @@ do_install:append() { } # All dependencies **MUST** be -native. If not, then add a PACKAGECONFIG for it. -DEPENDS = "makedepend-native flex-native bison-native libxml2-native chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native" +DEPENDS = "makedepend-native flex-native bison-native chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native" EXTRANATIVEPATH += "chrpath-native" inherit meson pkgconfig python3native gettext features_check rust From patchwork Fri Feb 6 17:23:58 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 80584 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id DC47DEA795E for ; Fri, 6 Feb 2026 17:24:24 +0000 (UTC) Received: from smtp-8fad.mail.infomaniak.ch (smtp-8fad.mail.infomaniak.ch [83.166.143.173]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2790.1770398659962898863 for ; Fri, 06 Feb 2026 09:24:20 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 83.166.143.173, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4f71D22X61zPRY; Fri, 6 Feb 2026 18:24:18 +0100 (CET) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4f71D16Yr2zCYb; Fri, 6 Feb 2026 18:24:17 +0100 (CET) From: Quentin Schulz Date: Fri, 06 Feb 2026 18:23:58 +0100 Subject: [PATCH 6/7] add mesa-tools native-only recipe MIME-Version: 1.0 Message-Id: <20260206-mesa-tools-native-v1-6-166935b0e379@cherry.de> References: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> In-Reply-To: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Quentin Schulz , Ross Burton X-Mailer: b4 0.15-dev-bab12 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 06 Feb 2026 17:24:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230637 From: Quentin Schulz libclc is required for some drivers (asahi, panfrost and intel at the very least). libclc brings very expensive dependencies such as llvm (through its spirv-llvm-translator dependency) and clang. Building clang and llvm for each target architecture is very expensive, but mesa allows to depend on prebuilt host binaries (mesa-clc and precomp-compiler). Those are built by mesa as well, but can be compiled in mesa-native instead of mesa, making the dependency expensive but only once regardless of the number of target architectures to build for. Ideally the mesa-clc and precomp-compiler would only be compiled in mesa-native if target mesa requires libclc support, however this is not possible as a target recipe cannot impact or depend on a native recipe's configuration. We thus have two choices, always build libclc in mesa-native with its heavy dependencies and impact every build, or force the user to modify the mesa-native recipe in a custom layer (as a native recipe cannot use target's OVERRIDES). The latter is unacceptable so the former seems to be the only option. Another big downside is that mesa-native currently builds drivers (amd, nouveau, svga) which we may have absolutely no interest in building, increasing the build time and possibly dependencies list. A third choice is to spin-off the native mesa recipe with libclc support into a new recipe without drivers and only what's necessary to build mesa-clc and precomp-compiler binaries. This allows to keep a "clean" mesa-native recipe for whoever needs those drivers built-in (e.g. for testing, for qemu-native, or whatever else) and only bring the libclc dependency when required by the target recipe. This is the native mesa tool recipe from the third choice. The next commit will make use of it in the mesa recipes. Suggested-by: Ross Burton Signed-off-by: Quentin Schulz --- meta/conf/distro/include/maintainers.inc | 1 + meta/recipes-graphics/mesa/mesa-tools-native.bb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index b231daf485..40b1c45a4f 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -525,6 +525,7 @@ RECIPE_MAINTAINER:pn-menu-cache = "Ross Burton " RECIPE_MAINTAINER:pn-mesa = "Unassigned " RECIPE_MAINTAINER:pn-mesa-demos = "Unassigned " RECIPE_MAINTAINER:pn-mesa-gl = "Unassigned " +RECIPE_MAINTAINER:pn-mesa-tools-native = "Unassigned " RECIPE_MAINTAINER:pn-meson = "Trevor Gamblin " RECIPE_MAINTAINER:pn-meta-environment-${MACHINE} = "Richard Purdie " RECIPE_MAINTAINER:pn-meta-environment-extsdk-${MACHINE} = "Richard Purdie " diff --git a/meta/recipes-graphics/mesa/mesa-tools-native.bb b/meta/recipes-graphics/mesa/mesa-tools-native.bb new file mode 100644 index 0000000000..50d2f5cbb0 --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa-tools-native.bb @@ -0,0 +1,19 @@ +require mesa.inc +inherit_defer native + +SUMMARY += " (tools only)" + +PACKAGECONFIG = "tools asahi panfrost" +# llvm required for libclc +PACKAGECONFIG += "gallium-llvm" +# Doesn't compile without wayland-scanner if PLATFORMS has wayland in, and, +# doesn't compile at all if PLATFORMS is empty so add x11 and wayland +# to PACKAGECONFIG like in mesa.inc +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)}" + +DEPENDS += "libclc-native spirv-tools-native spirv-llvm-translator-native" + +EXTRA_OEMESON += " \ + -Dmesa-clc=enabled -Dinstall-mesa-clc=true -Dmesa-clc-bundle-headers=enabled \ + -Dprecomp-compiler=enabled -Dinstall-precomp-compiler=true \ +" From patchwork Fri Feb 6 17:23:59 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 80586 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03A2CEE6B44 for ; Fri, 6 Feb 2026 17:24:25 +0000 (UTC) Received: from smtp-bc09.mail.infomaniak.ch (smtp-bc09.mail.infomaniak.ch [45.157.188.9]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2791.1770398660425542868 for ; Fri, 06 Feb 2026 09:24:20 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 45.157.188.9, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4f71D25h92zLk5; Fri, 6 Feb 2026 18:24:18 +0100 (CET) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4f71D22tZ6z97d; Fri, 6 Feb 2026 18:24:18 +0100 (CET) From: Quentin Schulz Date: Fri, 06 Feb 2026 18:23:59 +0100 Subject: [PATCH 7/7] mesa: depend on mesa-tools-native for less expensive libclc dependency MIME-Version: 1.0 Message-Id: <20260206-mesa-tools-native-v1-7-166935b0e379@cherry.de> References: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> In-Reply-To: <20260206-mesa-tools-native-v1-0-166935b0e379@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Quentin Schulz , Ross Burton X-Mailer: b4 0.15-dev-bab12 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 06 Feb 2026 17:24:25 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230638 From: Quentin Schulz libclc is required for some drivers (asahi, panfrost and intel at the very least). libclc brings very expensive per-target dependencies such as llvm and clang. However, we can make libclc depend on native tools (mesa-clc and precomp-compiler via mesa-tools-native) such that this cost exists only once (for the native build machine) and not for each machine to build. So this migrates the libclc dependency to make use of the newly introduced mesa-tools-native to make use of mesa-clc=system and precomp-compiler=system. We told the user to have libclc PACKAGECONFIG when selecting opencl PACKAGECONFIG but its dependencies are now gone since we're using mesa-tools-native for libclc. Therefore, this also moves the previous dependencies of libclc PACKAGECONFIG to opencl such that we can still build rusticl which still requires all dependencies from previous implementation of libclc (as specified in meson.build[1][2][3][4]). For some reason, libclc PACKAGECONFIG is still required otherwise rusticl fails to build with the following (stripped) message: """ FAILED: [code=101] src/gallium/frontends/rusticl/rusticl_libc_bindings.rs /build/tmp/work/cortexa35-poky-linux/mesa/25.3.3/recipe-sysroot-native/usr/bin/bindgen ../sources/mesa-25.3.3/src/gallium/frontends/rusticl/rusticl_libc_bindings.h --output /build/tmp/work/cortexa35-poky-linux/mesa/25.3.3/build/src/gallium/frontends/rusticl/rusticl_libc_bindings.rs [...] -MD -MQ ../sources/mesa-25.3.3/src/gallium/frontends/rusticl/rusticl_libc_bindings.h -MF src/gallium/frontends/rusticl/rusticl_libc_bindings.h.d thread 'main' (3601157) panicked at bindgen/lib.rs:616:27: Unable to find libclang: "couldn't find any valid shared libraries matching: ['libclang.so', 'libclang-*.so', 'libclang.so.*', 'libclang-*.so.*'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])" note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace """ libclang.so is available in the sysroot. Exporting LIBCLANG_PATH with "${STAGING_LIB_DIR}" in the recipe doesn't do anything. So for now, we keep telling the user to add libclc PACKAGECONFIG when opencl is selected (and keep it in mesa.bb when DISTRO_FEATURES has opencl) and maybe can figure out why we cannot build rusticl without libclc PACKAGECONFIG later on. I'm also not sure if the Note that does mean that when selecting opencl, mesa will bring the expensive dependencies again, but I'm not sure there's anything we can do about that at the moment. [1] https://gitlab.freedesktop.org/mesa/mesa/-/blob/mesa-25.3.4/meson.build?ref_type=tags#L838-L839 [2] https://gitlab.freedesktop.org/mesa/mesa/-/blob/mesa-25.3.4/meson.build?ref_type=tags#L850-L852 [3] https://gitlab.freedesktop.org/mesa/mesa/-/blob/mesa-25.3.4/meson.build?ref_type=tags#L1849-L1850 [4] https://gitlab.freedesktop.org/mesa/mesa/-/blob/mesa-25.3.4/meson.build?ref_type=tags#L1855-L1856 Suggested-by: Ross Burton Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa.inc | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 8e5f9657fd..48cd9981c2 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -90,9 +90,9 @@ PACKAGECONFIG[glvnd] = "-Dglvnd=enabled, -Dglvnd=disabled, libglvnd" PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" -# "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG! +# "opencl" also requires libclc and gallium-llvm to be present in PACKAGECONFIG! # Be sure to enable them both for the target and for the native build. -PACKAGECONFIG[opencl] = "-Dgallium-rusticl=true -Dmesa-clc-bundle-headers=enabled, -Dgallium-rusticl=false, bindgen-cli-native clang" +PACKAGECONFIG[opencl] = "-Dgallium-rusticl=true -Dmesa-clc-bundle-headers=enabled, -Dgallium-rusticl=false, bindgen-cli-native clang libclc spirv-tools spirv-llvm-translator" X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr xorgproto libxshmfence" # "x11" requires "opengl" @@ -203,14 +203,7 @@ GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d) PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm" PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native elfutils" -MESA_CLC = "system" -MESA_CLC:class-native = "enabled" -INSTALL_MESA_CLC = "false" -INSTALL_MESA_CLC:class-native = "true" -MESA_NATIVE = "mesa-native" -MESA_NATIVE:class-native = "" - -PACKAGECONFIG[libclc] = "-Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC} -Dmesa-clc-bundle-headers=enabled,,libclc spirv-tools spirv-llvm-translator ${MESA_NATIVE}" +PACKAGECONFIG[libclc] = "-Dmesa-clc=system -Dprecomp-compiler=system,,mesa-tools-native" PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial" PACKAGECONFIG[perfetto] = "-Dperfetto=true,-Dperfetto=false,libperfetto"