Complete Yocto mirror with license table for TQMa6UL (2038-compliance)

- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
Siggi (OpenClaw Agent)
2026-03-01 20:58:18 +00:00
commit 16accb6b24
15086 changed files with 1292356 additions and 0 deletions

View File

@@ -0,0 +1,125 @@
From 56e4959f0bc3e442c813d78e8ab6b3bf64b4ac66 Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Wed, 2 Dec 2020 20:27:42 +0000
Subject: [PATCH] fix dispmanx build
For when the user is building "--with-flavors dispmanx-glesv2", fixes a bunch
of "redeclared as different kind of symbol" problems.
This patch is almost entirely from:
https://github.com/glmark2/glmark2/commit/3b1a0f78d03ae126b78ee52a7c434809115e5993
Which was created by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
See:
https://github.com/glmark2/glmark2/issues/80
My contribution is to tweak the wscript to link all the required libraries.
Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/135]
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
src/native-state-dispmanx.cpp | 22 +++++++++++++++++-----
src/native-state-dispmanx.h | 7 +++----
wscript | 2 +-
3 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/src/native-state-dispmanx.cpp b/src/native-state-dispmanx.cpp
index 2117386..49f74e7 100644
--- a/src/native-state-dispmanx.cpp
+++ b/src/native-state-dispmanx.cpp
@@ -23,13 +23,25 @@
#include "native-state-dispmanx.h"
#include "log.h"
+#include "EGL/egl.h"
+
#include <cstring>
#include <csignal>
+struct NativeStateDispmanx::Private
+{
+ Private()
+ {
+ memset(&egl_dispmanx_window, 0, sizeof(egl_dispmanx_window));
+ }
+
+ EGL_DISPMANX_WINDOW_T egl_dispmanx_window;
+};
+
NativeStateDispmanx::NativeStateDispmanx()
+ : priv{std::make_unique<Private>()}
{
memset(&properties_, 0, sizeof(properties_));
- memset(&egl_dispmanx_window, 0, sizeof(egl_dispmanx_window));
}
NativeStateDispmanx::~NativeStateDispmanx()
@@ -99,9 +111,9 @@ NativeStateDispmanx::create_window(WindowProperties const& properties)
0 /*clamp*/,
DISPMANX_NO_ROTATE);
- egl_dispmanx_window.element = dispmanx_element;
- egl_dispmanx_window.width = dst_rect.width;
- egl_dispmanx_window.height = dst_rect.height;
+ priv->egl_dispmanx_window.element = dispmanx_element;
+ priv->egl_dispmanx_window.width = dst_rect.width;
+ priv->egl_dispmanx_window.height = dst_rect.height;
vc_dispmanx_update_submit_sync(dispmanx_update);
return true;
@@ -111,7 +123,7 @@ void*
NativeStateDispmanx::window(WindowProperties &properties)
{
properties = properties_;
- return &egl_dispmanx_window;
+ return &priv->egl_dispmanx_window;
}
void
diff --git a/src/native-state-dispmanx.h b/src/native-state-dispmanx.h
index a6ed3d4..794b2d3 100644
--- a/src/native-state-dispmanx.h
+++ b/src/native-state-dispmanx.h
@@ -24,10 +24,8 @@
#define GLMARK2_NATIVE_STATE_DISPMANX_H_
#include <vector>
+#include <memory>
#include "bcm_host.h"
-#include "GLES/gl.h"
-#include "EGL/egl.h"
-#include "EGL/eglext.h"
#include "native-state.h"
@@ -46,11 +44,12 @@ public:
void flip();
private:
+ struct Private;
DISPMANX_DISPLAY_HANDLE_T dispmanx_display;
DISPMANX_UPDATE_HANDLE_T dispmanx_update;
DISPMANX_ELEMENT_HANDLE_T dispmanx_element;
- EGL_DISPMANX_WINDOW_T egl_dispmanx_window;
WindowProperties properties_;
+ std::unique_ptr<Private> priv;
};
#endif /* GLMARK2_NATIVE_STATE_DISPMANX_H_ */
diff --git a/wscript b/wscript
index e09fa78..6c3869c 100644
--- a/wscript
+++ b/wscript
@@ -205,7 +205,7 @@ def configure_linux(ctx):
ctx.check_cxx(lib = 'brcmGLESv2', uselib_store = 'glesv2', libpath='/opt/vc/lib')
ctx.check_cxx(lib = ['brcmEGL', 'brcmGLESv2'], uselib_store = 'egl', libpath='/opt/vc/lib')
- ctx.check_cxx(lib = ['bcm_host', 'vcos', 'vchiq_arm'], uselib_store = 'dispmanx', libpath='/opt/vc/lib')
+ ctx.check_cxx(lib = ['brcmEGL', 'brcmGLESv2', 'vchostif', 'bcm_host', 'vcos', 'vchiq_arm'], uselib_store = 'dispmanx', libpath='/opt/vc/lib')
# Check optional packages
opt_pkgs = [('x11', 'x11', None, list_contains(ctx.options.flavors, 'x11')),
--
2.28.0.497.g54e85e7af1

View File

@@ -0,0 +1,32 @@
From 110ef8357ebaf24bc3995e631ec809a2f84c3b87 Mon Sep 17 00:00:00 2001
From: Trevor Woerner <twoerner@gmail.com>
Date: Thu, 3 Dec 2020 07:16:58 -0500
Subject: [PATCH] run dispmanx fullscreen
The dispmanx flavour can only run fullscreen, therefore set the size to
fullscreen when glmark2-es2-dispmanx is run.
Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/135]
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
src/main.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/main.cpp b/src/main.cpp
index d1077fe..d717cd4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -202,6 +202,11 @@ main(int argc, char *argv[])
Options::size = std::pair<int,int>(800, 600);
}
+#if GLMARK2_USE_DISPMANX
+ /* dispmanx can only run fullscreen */
+ Options::size = std::pair<int,int>(-1, -1);
+#endif
+
// Create the canvas
#if GLMARK2_USE_EGL
GLStateEGL gl_state;
--
2.25.1

View File

@@ -0,0 +1,103 @@
From b59ec731c8c7e084b289e4ea92938faaebcc389d Mon Sep 17 00:00:00 2001
From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Wed, 1 Nov 2023 13:43:00 +0200
Subject: [PATCH] GLVisualConfig: By default don't care about the stencil
config component
Our benchmarks don't use a stencil buffer, but its presence doesn't hurt
either, so don't mark configs that have one as unacceptable. Our scoring
still favors configs without one, unless the user explicitly specifies
otherwise with --visual-config.
Upstream-Status: Backport [https://github.com/glmark2/glmark2/commit/5f23d540342ba69e12afeb6a1ac4f6fd36747975]
---
doc/glmark2.1.in | 2 +-
src/gl-visual-config.cpp | 9 ++++++---
src/gl-visual-config.h | 2 +-
src/options.cpp | 6 +++---
4 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/doc/glmark2.1.in b/doc/glmark2.1.in
index 015ba20..1f4a047 100644
--- a/doc/glmark2.1.in
+++ b/doc/glmark2.1.in
@@ -38,7 +38,7 @@ Render to an off-screen surface
The visual configuration to use for the rendering target:
\'id=ID:red=R:green=G:blue=B:alpha=A:buffer=BUF:stencil=STENCIL:samples=SAMPLES'.
The parameters may be defined in any order, and any omitted parameters assume a
-default value of '0' (id, stencil, samples) or '1' (red, green, blue, alpha, buffer).
+default value of '0' (id, samples), -1 (stencil) or '1' (red, green, blue, alpha, buffer).
If 'id' is set to a non-zero value, all other parameters are ignored
.TP
\fB\-\-reuse\-context\fR
diff --git a/src/gl-visual-config.cpp b/src/gl-visual-config.cpp
index de92f93..665f53a 100644
--- a/src/gl-visual-config.cpp
+++ b/src/gl-visual-config.cpp
@@ -26,7 +26,7 @@
#include <vector>
GLVisualConfig::GLVisualConfig(const std::string &s) :
- id(0), red(1), green(1), blue(1), alpha(1), depth(1), stencil(0), buffer(1), samples(0)
+ GLVisualConfig()
{
std::vector<std::string> elems;
@@ -85,7 +85,7 @@ GLVisualConfig::match_score(const GLVisualConfig &target) const
score += score_component(blue, target.blue, 4);
score += score_component(alpha, target.alpha, 4);
score += score_component(depth, target.depth, 1);
- score += score_component(stencil, target.stencil, 0);
+ score += score_component(stencil, target.stencil, 1);
score += score_component(buffer, target.buffer, 1);
score += score_component(samples, target.samples, -1);
@@ -135,11 +135,14 @@ GLVisualConfig::score_component(int component, int target, int scale) const
* score for all components ranges from [0,MAXIMUM_COMPONENT_SCORE).
* If scale > 0, we reward the largest positive difference from target,
* otherwise the smallest positive difference from target.
+ * We also reward the smallest positive difference from the target,
+ * if the target < 0, i.e., we don't care about this value.
*/
int diff = std::abs(scale) * (component - target);
if (diff > 0)
{
- score = scale < 0 ? MAXIMUM_COMPONENT_SCORE - diff : diff;
+ score = (scale < 0 || target < 0) ?
+ MAXIMUM_COMPONENT_SCORE - diff : diff;
score = std::min(MAXIMUM_COMPONENT_SCORE, score);
score = std::max(0, score);
}
diff --git a/src/gl-visual-config.h b/src/gl-visual-config.h
index b28473f..013ce14 100644
--- a/src/gl-visual-config.h
+++ b/src/gl-visual-config.h
@@ -31,7 +31,7 @@ class GLVisualConfig
{
public:
GLVisualConfig():
- id(0), red(1), green(1), blue(1), alpha(1), depth(1), stencil(0), buffer(1), samples(0) {}
+ id(0), red(1), green(1), blue(1), alpha(1), depth(1), stencil(-1), buffer(1), samples(0) {}
GLVisualConfig(const std::string &s);
/**
diff --git a/src/options.cpp b/src/options.cpp
index 8d1ec16..3a31d3d 100644
--- a/src/options.cpp
+++ b/src/options.cpp
@@ -213,9 +213,9 @@ Options::print_help()
" target: 'id=ID:red=R:green=G:blue=B:alpha=A:buffer=BUF:\n"
" stencil=STENCIL:samples=SAMPLES'. The parameters may be\n"
" defined in any order, and any omitted parameters assume a\n"
- " default value of '0' (id, stencil, samples) or '1' (red,\n"
- " green, blue, alpha, buffer). If 'id' is set to a non-zero\n"
- " value, all other parameters are ignored\n"
+ " default value of '0' (id, samples), '-1' (stencil) or\n"
+ " '1' (red, green, blue, alpha, buffer). If 'id' is set to\n"
+ " a non-zero value, all other parameters are ignored\n"
" --reuse-context Use a single context for all scenes\n"
" (by default, each scene gets its own context)\n"
" -s, --size WxH Size of the output window (default: 800x600)\n"
--
2.44.0

View File

@@ -0,0 +1,64 @@
SUMMARY = "OpenGL (ES) 2.0 benchmark"
DESCRIPTION = "glmark2 is a benchmark for OpenGL (ES) 2.0. \
It uses only the subset of the OpenGL 2.0 API that is compatible with OpenGL ES 2.0."
HOMEPAGE = "https://github.com/glmark2/glmark2"
BUGTRACKER = "https://github.com/glmark2/glmark2/issues"
LICENSE = "GPL-3.0-or-later & SGI-1"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552"
DEPENDS = "libpng jpeg udev"
DEPENDS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-native wayland-protocols', '', d)}"
PV = "2023.01"
SRC_URI = " \
git://github.com/glmark2/glmark2.git;protocol=https;branch=master \
file://0001-fix-dispmanx-build.patch \
file://0002-run-dispmanx-fullscreen.patch \
file://0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch \
"
SRCREV = "42e3d8fe3aa88743ef90348138f643f7b04a9237"
S = "${WORKDIR}/git"
inherit meson pkgconfig features_check
ANY_OF_DISTRO_FEATURES = "opengl dispmanx"
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gles2', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gles2', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'dispmanx', 'dispmanx', '', d)} \
drm-gles2 \
"
PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11"
PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11"
PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm virtual/libgbm"
PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm virtual/libgbm"
PACKAGECONFIG[wayland-gl] = ",,virtual/libgl wayland"
PACKAGECONFIG[wayland-gles2] = ",,virtual/libgles2 wayland"
PACKAGECONFIG[dispmanx] = ",,virtual/libgles2 virtual/libx11"
python __anonymous() {
packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
flavors = []
if "x11-gles2" in packageconfig:
flavors.append("x11-glesv2")
if "x11-gl" in packageconfig:
flavors.append("x11-gl")
if "wayland-gles2" in packageconfig:
flavors.append("wayland-glesv2")
if "wayland-gl" in packageconfig:
flavors.append("wayland-gl")
if "drm-gles2" in packageconfig:
flavors.append("drm-glesv2")
if "drm-gl" in packageconfig:
flavors.append("drm-gl")
if "dispmanx" in packageconfig:
flavors = ["dispmanx-glesv2"]
if flavors:
d.appendVar("EXTRA_OEMESON", " -Dflavors=%s" % ",".join(flavors))
}