]> code.ossystems Code Review - openembedded-core.git/commitdiff
meson: Work around determinism issue
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 15 Mar 2021 23:48:34 +0000 (23:48 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 15 Mar 2021 23:55:34 +0000 (23:55 +0000)
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 <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/selftest/cases/reproducible.py
meta/recipes-devtools/meson/meson.inc

index d301c8dd888f2e38e19fab7ee2ef4a2d76f9cba3..1945a12c319a9fcb30a885c7348b04a6c3566742 100644 (file)
@@ -33,7 +33,6 @@ exclude_packages = [
        'go-runtime',
        'go_',
        'go-',
-       'meson',
        'ovmf-shell-efi',
        'ruby-ri-docs'
        ]
index 8454d18c284de01c2a44c248c5d88c9bdc27b99f..fc3ca85faebd144f9f6c1dc1cd9a642f04e1411b 100644 (file)
@@ -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<pver>\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*
+}