Files
Martin Jansa 8a042b540d glmark2: inherit python3native to fix build with python-3.12 on build host
* fixes:
| WARNING: Unable to execute waf --version, exit code 1. Assuming waf version without bindir/libdir support.
| DEBUG: Python function waf_preconfigure finished
| DEBUG: Executing shell function do_configure
| Traceback (most recent call last):
|   File "/OE/build/luneos-kirkstone/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git/./waf", line 163, in <module>
|     from waflib import Scripting
|   File "/OE/build/luneos-kirkstone/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git/waflib/Scripting.py", line 6, in <module>
|     from waflib import Utils,Configure,Logs,Options,ConfigSet,Context,Errors,Build,Node
|   File "/OE/build/luneos-kirkstone/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git/waflib/Configure.py", line 6, in <module>
|     from waflib import ConfigSet,Utils,Options,Logs,Context,Build,Errors
|   File "/OE/build/luneos-kirkstone/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git/waflib/Options.py", line 6, in <module>
|     from waflib import Logs,Utils,Context,Errors
|   File "/OE/build/luneos-kirkstone/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git/waflib/Context.py", line 5, in <module>
|     import os,re,imp,sys
| ModuleNotFoundError: No module named 'imp'
| WARNING: /OE/build/luneos-kirkstone/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/temp/run.do_configure.1263276:146 exit 1 from 'waf_do_configure'

* this first issue can be fixed easily by backporting:
  https://gitlab.com/ita1024/waf/-/commit/d2060dfd8af4edb5824153ff24e207b39ecd67a2

* but then it still fails a bit later, because of SyntaxWarning in waf --version
  output:

ERROR: glmark2-2021.12-r0 do_configure: Error executing a python function in exec_func_python() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_func_python() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:waf_preconfigure(d)
     0003:
File: '/OE/build/luneos-kirkstone/openembedded-core/meta/classes/waf.bbclass', lineno: 52, function: waf_preconfigure
     0048:    wafbin = os.path.join(subsrcdir, 'waf')
     0049:    try:
     0050:        result = subprocess.check_output([python, wafbin, '--version'], cwd=subsrcdir, stderr=subprocess.STDOUT)
     0051:        version = result.decode('utf-8').split()[1]
 *** 0052:        if bb.utils.vercmp_string_op(version, "1.8.7", ">="):
     0053:            d.setVar("WAF_EXTRA_CONF", "--bindir=${bindir} --libdir=${libdir}")
     0054:    except subprocess.CalledProcessError as e:
     0055:        bb.warn("Unable to execute waf --version, exit code %d. Assuming waf version without bindir/libdir support." % e.returncode)
     0056:    except FileNotFoundError:
File: '/OE/build/luneos-kirkstone/bitbake/lib/bb/utils.py', lineno: 148, function: vercmp_string_op
     0144:    Compare two versions and check if the specified comparison operator matches the result of the comparison.
     0145:    This function is fairly liberal about what operators it will accept since there are a variety of styles
     0146:    depending on the context.
     0147:    """
 *** 0148:    res = vercmp_string(a, b)
     0149:    if op in ('=', '=='):
     0150:        return res == 0
     0151:    elif op == '<=':
     0152:        return res <= 0
File: '/OE/build/luneos-kirkstone/bitbake/lib/bb/utils.py', lineno: 138, function: vercmp_string
     0134:    return r
     0135:
     0136:def vercmp_string(a, b):
     0137:    """ Split version strings and compare them """
 *** 0138:    ta = split_version(a)
     0139:    tb = split_version(b)
     0140:    return vercmp(ta, tb)
     0141:
     0142:def vercmp_string_op(a, b, op):
File: '/OE/build/luneos-kirkstone/bitbake/lib/bb/utils.py', lineno: 89, function: split_version
     0085:    """Split a version string into its constituent parts (PE, PV, PR)"""
     0086:    s = s.strip(" <>=")
     0087:    e = 0
     0088:    if s.count(':'):
 *** 0089:        e = int(s.split(":")[0])
     0090:        s = s.split(":")[1]
     0091:    r = ""
     0092:    if s.count('-'):
     0093:        r = s.rsplit("-", 1)[1]
Exception: ValueError: invalid literal for int() with base 10: 'SyntaxWarning'

ERROR: Logfile of failure stored in: /OE/build/luneos-kirkstone/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/temp/log.do_configure.1264918

  so it's safer to just use python3-native everywhere, instead of more patches for waf

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
2024-01-12 07:14:16 -05:00

66 lines
2.6 KiB
BlitzBasic

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 = "2021.12"
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://0001-libmatrix-Include-missing-utility-header.patch \
file://0001-waflib-fix-compatibility-with-python-3.11.patch \
"
SRCREV = "0858b450cd88c84a15b99dda9698d44e7f7e8c70"
S = "${WORKDIR}/git"
inherit waf pkgconfig features_check python3native
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_OECONF", " --with-flavors=%s" % ",".join(flavors))
}