From: Richard Purdie Date: Mon, 15 Mar 2021 23:48:34 +0000 (+0000) Subject: meson: Work around determinism issue X-Git-Tag: yocto-3.3~143 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=ad00107dc02b3211f5d1a7fe889f538ee2bc064d;p=openembedded-core.git meson: Work around determinism issue The meson determinism issue is the same frozenset issue we encountered with python itself. Remove the problematic pyc file until upstream work out the best way to address the issue (as with core python). Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py index d301c8dd88..1945a12c31 100644 --- a/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/meta/lib/oeqa/selftest/cases/reproducible.py @@ -33,7 +33,6 @@ exclude_packages = [ 'go-runtime', 'go_', 'go-', - 'meson', 'ovmf-shell-efi', 'ruby-ri-docs' ] diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc index 8454d18c28..fc3ca85fae 100644 --- a/meta/recipes-devtools/meson/meson.inc +++ b/meta/recipes-devtools/meson/meson.inc @@ -23,6 +23,10 @@ SRC_URI_append_class-native = " \ file://0002-Support-building-allarch-recipes-again.patch \ " +# remove at next version upgrade or when output changes +PR = "r1" +HASHEQUIV_HASH_VERSION .= ".1" + UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases" UPSTREAM_CHECK_REGEX = "meson-(?P\d+(\.\d+)+)\.tar" @@ -31,3 +35,13 @@ inherit setuptools3 RDEPENDS_${PN} = "ninja python3-modules python3-pkg-resources" FILES_${PN} += "${datadir}/polkit-1" + +do_install_append () { + # As per the same issue in the python recipe itself: + # Unfortunately the following pyc files are non-deterministc due to 'frozenset' + # being written without strict ordering, even with PYTHONHASHSEED = 0 + # Upstream is discussing ways to solve the issue properly, until then let's + # just not install the problematic files. + # More info: http://benno.id.au/blog/2013/01/15/python-determinism + rm ${D}${libdir}/python*/site-packages/mesonbuild/dependencies/__pycache__/mpi.cpython* +}