diff mbox series

[meta-arago,scarthgap/master] mesa-demos: add a git version

Message ID 20250506002203.1766376-1-rs@ti.com
State New
Headers show
Series [meta-arago,scarthgap/master] mesa-demos: add a git version | expand

Commit Message

Randolph Sapp May 6, 2025, 12:22 a.m. UTC
From: Randolph Sapp <rs@ti.com>

Add a newer git version of this package to fetch modifications that
allow us to build the EGL and GLES specific demos without the hard
Desktop GL and X11 dependencies.

These modification have not made it into a tag yet, but this recipe can
be removed once oe-core's version of the package passes
02eae079cb0b8186064d5b194ca4cc2995f099ee.

Signed-off-by: Randolph Sapp <rs@ti.com>
---
 .../recipes-graphics/mesa/mesa-demos_git.bb   | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb

Comments

Denys Dmytriyenko May 6, 2025, 4:08 p.m. UTC | #1
On Mon, May 05, 2025 at 07:22:03PM -0500, rs@ti.com wrote:
> From: Randolph Sapp <rs@ti.com>
> 
> Add a newer git version of this package to fetch modifications that
> allow us to build the EGL and GLES specific demos without the hard
> Desktop GL and X11 dependencies.
> 
> These modification have not made it into a tag yet, but this recipe can
> be removed once oe-core's version of the package passes
> 02eae079cb0b8186064d5b194ca4cc2995f099ee.

Adding a different version of an upstream recipe potentially causes signature 
change during YP compliance checks.

There are 2 alternatives:

1. Do a .bbappend that modifies SRC_URI, SRCREV, S and anything else you need. 
That way you can activate it based on one of the overrides, such as :arago

2. Set DEFAULT_PREFERENCE = "-1" in the recipe and then force preference in a 
distro conf with PREFERRED_VERSION. And you have to set the correct PV here.


> Signed-off-by: Randolph Sapp <rs@ti.com>
> ---
>  .../recipes-graphics/mesa/mesa-demos_git.bb   | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
>  create mode 100644 meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
> 
> diff --git a/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
> new file mode 100644
> index 00000000..5dd5a8ec
> --- /dev/null
> +++ b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
> @@ -0,0 +1,43 @@
> +SUMMARY = "Mesa demo applications"
> +DESCRIPTION = "This package includes the demonstration application, such as glxgears. \
> +These applications can be used for Mesa validation and benchmarking."
> +HOMEPAGE = "http://mesa3d.org"
> +BUGTRACKER = "https://bugs.freedesktop.org"
> +
> +LICENSE = "MIT & PD"
> +LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=a481fbdb2ac800ecb12405c33bcfacae \
> +                    file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06"
> +
> +SRC_URI = "git://gitlab.freedesktop.org/mesa/demos.git;protocol=https;branch=main"
> +SRCREV = "02eae079cb0b8186064d5b194ca4cc2995f099ee"
> +S = "${WORKDIR}/git"
> +
> +inherit meson pkgconfig features_check
> +# depends on virtual/egl, virtual/libgl ...
> +REQUIRED_DISTRO_FEATURES = "opengl"
> +
> +EXTRA_OEMESON = "-Dwith-system-data-files=true"
> +
> +# Note: wayland is not included as the feature requires libdecor recipe,
> +# which is not currently in core
> +PACKAGECONFIG ?= "drm egl gles1 gles2 \
> +                  ${@bb.utils.filter('DISTRO_FEATURES', 'vulkan x11 wayland', d)}"
> +
> +PACKAGECONFIG[drm] = "-Dlibdrm=enabled,-Dlibdrm=disabled,libdrm"
> +PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl"
> +PACKAGECONFIG[gles1] = "-Dgles1=enabled,-Dgles1=disabled,virtual/libgles1"
> +PACKAGECONFIG[gles2] = "-Dgles2=enabled,-Dgles2=disabled,virtual/libgles2"
> +PACKAGECONFIG[glut] = "-Dwith-glut=${STAGING_EXECPREFIXDIR},-Dglut=disabled,freeglut"
> +PACKAGECONFIG[osmesa] = "-Dosmesa=enabled,-Dosmesa=disabled,"
> +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader glslang-native"
> +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/libgl wayland wayland-native wayland-protocols libxkbcommon libdecor"
> +PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libglu libxkbcommon libxcb"
> +
> +do_install:append() {
> +	# it can be completely empty when all PACKAGECONFIG options are disabled
> +	rmdir --ignore-fail-on-non-empty ${D}${bindir}
> +
> +	if [ -f ${D}${bindir}/clear ]; then
> +		mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos
> +	fi
> +}
> -- 
> 2.49.0
>
Randolph Sapp May 6, 2025, 6:16 p.m. UTC | #2
On Tue May 6, 2025 at 11:08 AM CDT, Denys Dmytriyenko wrote:
> On Mon, May 05, 2025 at 07:22:03PM -0500, rs@ti.com wrote:
>> From: Randolph Sapp <rs@ti.com>
>> 
>> Add a newer git version of this package to fetch modifications that
>> allow us to build the EGL and GLES specific demos without the hard
>> Desktop GL and X11 dependencies.
>> 
>> These modification have not made it into a tag yet, but this recipe can
>> be removed once oe-core's version of the package passes
>> 02eae079cb0b8186064d5b194ca4cc2995f099ee.
>
> Adding a different version of an upstream recipe potentially causes signature 
> change during YP compliance checks.
>
> There are 2 alternatives:
>
> 1. Do a .bbappend that modifies SRC_URI, SRCREV, S and anything else you need. 
> That way you can activate it based on one of the overrides, such as :arago
>
> 2. Set DEFAULT_PREFERENCE = "-1" in the recipe and then force preference in a 
> distro conf with PREFERRED_VERSION. And you have to set the correct PV here.
>

2 seems the most applicable here since it's a significant version bump.
Unfortunately it's a git package. No real version to tag. I see the use of
"<rev>+git" is common in oe-core. Any complaints about using that here?

>> Signed-off-by: Randolph Sapp <rs@ti.com>
>> ---
>>  .../recipes-graphics/mesa/mesa-demos_git.bb   | 43 +++++++++++++++++++
>>  1 file changed, 43 insertions(+)
>>  create mode 100644 meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
>> 
>> diff --git a/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
>> new file mode 100644
>> index 00000000..5dd5a8ec
>> --- /dev/null
>> +++ b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
>> @@ -0,0 +1,43 @@
>> +SUMMARY = "Mesa demo applications"
>> +DESCRIPTION = "This package includes the demonstration application, such as glxgears. \
>> +These applications can be used for Mesa validation and benchmarking."
>> +HOMEPAGE = "http://mesa3d.org"
>> +BUGTRACKER = "https://bugs.freedesktop.org"
>> +
>> +LICENSE = "MIT & PD"
>> +LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=a481fbdb2ac800ecb12405c33bcfacae \
>> +                    file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06"
>> +
>> +SRC_URI = "git://gitlab.freedesktop.org/mesa/demos.git;protocol=https;branch=main"
>> +SRCREV = "02eae079cb0b8186064d5b194ca4cc2995f099ee"
>> +S = "${WORKDIR}/git"
>> +
>> +inherit meson pkgconfig features_check
>> +# depends on virtual/egl, virtual/libgl ...
>> +REQUIRED_DISTRO_FEATURES = "opengl"
>> +
>> +EXTRA_OEMESON = "-Dwith-system-data-files=true"
>> +
>> +# Note: wayland is not included as the feature requires libdecor recipe,
>> +# which is not currently in core
>> +PACKAGECONFIG ?= "drm egl gles1 gles2 \
>> +                  ${@bb.utils.filter('DISTRO_FEATURES', 'vulkan x11 wayland', d)}"
>> +
>> +PACKAGECONFIG[drm] = "-Dlibdrm=enabled,-Dlibdrm=disabled,libdrm"
>> +PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl"
>> +PACKAGECONFIG[gles1] = "-Dgles1=enabled,-Dgles1=disabled,virtual/libgles1"
>> +PACKAGECONFIG[gles2] = "-Dgles2=enabled,-Dgles2=disabled,virtual/libgles2"
>> +PACKAGECONFIG[glut] = "-Dwith-glut=${STAGING_EXECPREFIXDIR},-Dglut=disabled,freeglut"
>> +PACKAGECONFIG[osmesa] = "-Dosmesa=enabled,-Dosmesa=disabled,"
>> +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader glslang-native"
>> +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/libgl wayland wayland-native wayland-protocols libxkbcommon libdecor"
>> +PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libglu libxkbcommon libxcb"
>> +
>> +do_install:append() {
>> +	# it can be completely empty when all PACKAGECONFIG options are disabled
>> +	rmdir --ignore-fail-on-non-empty ${D}${bindir}
>> +
>> +	if [ -f ${D}${bindir}/clear ]; then
>> +		mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos
>> +	fi
>> +}
>> -- 
>> 2.49.0
>>
Denys Dmytriyenko May 6, 2025, 6:30 p.m. UTC | #3
On Tue, May 06, 2025 at 01:16:56PM -0500, Randolph Sapp wrote:
> On Tue May 6, 2025 at 11:08 AM CDT, Denys Dmytriyenko wrote:
> > On Mon, May 05, 2025 at 07:22:03PM -0500, rs@ti.com wrote:
> >> From: Randolph Sapp <rs@ti.com>
> >> 
> >> Add a newer git version of this package to fetch modifications that
> >> allow us to build the EGL and GLES specific demos without the hard
> >> Desktop GL and X11 dependencies.
> >> 
> >> These modification have not made it into a tag yet, but this recipe can
> >> be removed once oe-core's version of the package passes
> >> 02eae079cb0b8186064d5b194ca4cc2995f099ee.
> >
> > Adding a different version of an upstream recipe potentially causes signature 
> > change during YP compliance checks.
> >
> > There are 2 alternatives:
> >
> > 1. Do a .bbappend that modifies SRC_URI, SRCREV, S and anything else you need. 
> > That way you can activate it based on one of the overrides, such as :arago
> >
> > 2. Set DEFAULT_PREFERENCE = "-1" in the recipe and then force preference in a 
> > distro conf with PREFERRED_VERSION. And you have to set the correct PV here.
> >
> 
> 2 seems the most applicable here since it's a significant version bump.
> Unfortunately it's a git package. No real version to tag. I see the use of
> "<rev>+git" is common in oe-core. Any complaints about using that here?

Yes, that's a correct use - it's previous tag plus git sha after it, which 
gets automatically expanded in the package version. We also use this 
extensively in our layers.


> >> Signed-off-by: Randolph Sapp <rs@ti.com>
> >> ---
> >>  .../recipes-graphics/mesa/mesa-demos_git.bb   | 43 +++++++++++++++++++
> >>  1 file changed, 43 insertions(+)
> >>  create mode 100644 meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
> >> 
> >> diff --git a/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
> >> new file mode 100644
> >> index 00000000..5dd5a8ec
> >> --- /dev/null
> >> +++ b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
> >> @@ -0,0 +1,43 @@
> >> +SUMMARY = "Mesa demo applications"
> >> +DESCRIPTION = "This package includes the demonstration application, such as glxgears. \
> >> +These applications can be used for Mesa validation and benchmarking."
> >> +HOMEPAGE = "http://mesa3d.org"
> >> +BUGTRACKER = "https://bugs.freedesktop.org"
> >> +
> >> +LICENSE = "MIT & PD"
> >> +LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=a481fbdb2ac800ecb12405c33bcfacae \
> >> +                    file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06"
> >> +
> >> +SRC_URI = "git://gitlab.freedesktop.org/mesa/demos.git;protocol=https;branch=main"
> >> +SRCREV = "02eae079cb0b8186064d5b194ca4cc2995f099ee"
> >> +S = "${WORKDIR}/git"
> >> +
> >> +inherit meson pkgconfig features_check
> >> +# depends on virtual/egl, virtual/libgl ...
> >> +REQUIRED_DISTRO_FEATURES = "opengl"
> >> +
> >> +EXTRA_OEMESON = "-Dwith-system-data-files=true"
> >> +
> >> +# Note: wayland is not included as the feature requires libdecor recipe,
> >> +# which is not currently in core
> >> +PACKAGECONFIG ?= "drm egl gles1 gles2 \
> >> +                  ${@bb.utils.filter('DISTRO_FEATURES', 'vulkan x11 wayland', d)}"
> >> +
> >> +PACKAGECONFIG[drm] = "-Dlibdrm=enabled,-Dlibdrm=disabled,libdrm"
> >> +PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl"
> >> +PACKAGECONFIG[gles1] = "-Dgles1=enabled,-Dgles1=disabled,virtual/libgles1"
> >> +PACKAGECONFIG[gles2] = "-Dgles2=enabled,-Dgles2=disabled,virtual/libgles2"
> >> +PACKAGECONFIG[glut] = "-Dwith-glut=${STAGING_EXECPREFIXDIR},-Dglut=disabled,freeglut"
> >> +PACKAGECONFIG[osmesa] = "-Dosmesa=enabled,-Dosmesa=disabled,"
> >> +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader glslang-native"
> >> +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/libgl wayland wayland-native wayland-protocols libxkbcommon libdecor"
> >> +PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libglu libxkbcommon libxcb"
> >> +
> >> +do_install:append() {
> >> +	# it can be completely empty when all PACKAGECONFIG options are disabled
> >> +	rmdir --ignore-fail-on-non-empty ${D}${bindir}
> >> +
> >> +	if [ -f ${D}${bindir}/clear ]; then
> >> +		mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos
> >> +	fi
> >> +}
> >> -- 
> >> 2.49.0
> >>
diff mbox series

Patch

diff --git a/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
new file mode 100644
index 00000000..5dd5a8ec
--- /dev/null
+++ b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
@@ -0,0 +1,43 @@ 
+SUMMARY = "Mesa demo applications"
+DESCRIPTION = "This package includes the demonstration application, such as glxgears. \
+These applications can be used for Mesa validation and benchmarking."
+HOMEPAGE = "http://mesa3d.org"
+BUGTRACKER = "https://bugs.freedesktop.org"
+
+LICENSE = "MIT & PD"
+LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=a481fbdb2ac800ecb12405c33bcfacae \
+                    file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06"
+
+SRC_URI = "git://gitlab.freedesktop.org/mesa/demos.git;protocol=https;branch=main"
+SRCREV = "02eae079cb0b8186064d5b194ca4cc2995f099ee"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig features_check
+# depends on virtual/egl, virtual/libgl ...
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+EXTRA_OEMESON = "-Dwith-system-data-files=true"
+
+# Note: wayland is not included as the feature requires libdecor recipe,
+# which is not currently in core
+PACKAGECONFIG ?= "drm egl gles1 gles2 \
+                  ${@bb.utils.filter('DISTRO_FEATURES', 'vulkan x11 wayland', d)}"
+
+PACKAGECONFIG[drm] = "-Dlibdrm=enabled,-Dlibdrm=disabled,libdrm"
+PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl"
+PACKAGECONFIG[gles1] = "-Dgles1=enabled,-Dgles1=disabled,virtual/libgles1"
+PACKAGECONFIG[gles2] = "-Dgles2=enabled,-Dgles2=disabled,virtual/libgles2"
+PACKAGECONFIG[glut] = "-Dwith-glut=${STAGING_EXECPREFIXDIR},-Dglut=disabled,freeglut"
+PACKAGECONFIG[osmesa] = "-Dosmesa=enabled,-Dosmesa=disabled,"
+PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader glslang-native"
+PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/libgl wayland wayland-native wayland-protocols libxkbcommon libdecor"
+PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libglu libxkbcommon libxcb"
+
+do_install:append() {
+	# it can be completely empty when all PACKAGECONFIG options are disabled
+	rmdir --ignore-fail-on-non-empty ${D}${bindir}
+
+	if [ -f ${D}${bindir}/clear ]; then
+		mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos
+	fi
+}