[3/3] python3-numpy: Fix pyc determinism issue

Message ID 20220225145828.88238-3-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit 9888608f75a97a633bc7d2207ab2defc48c92ac4
Headers show
Series [1/3] python-pip: Improve reproducibility | expand

Commit Message

Richard Purdie Feb. 25, 2022, 2:58 p.m. UTC
Using frozenset causes problems for pyc file determinism. For now remove
the problematic pyc file as we do in the main python3 recipe.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 meta/recipes-devtools/python/python3-numpy_1.22.2.bb | 9 +++++++++
 1 file changed, 9 insertions(+)

Patch

diff --git a/meta/recipes-devtools/python/python3-numpy_1.22.2.bb b/meta/recipes-devtools/python/python3-numpy_1.22.2.bb
index d2b2f3e38d5..43e7427eab5 100644
--- a/meta/recipes-devtools/python/python3-numpy_1.22.2.bb
+++ b/meta/recipes-devtools/python/python3-numpy_1.22.2.bb
@@ -30,6 +30,15 @@  do_compile:prepend() {
     export NPY_DISABLE_SVML=1
 }
 
+# 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
+do_install:append() {
+	rm ${D}${PYTHON_SITEPACKAGES_DIR}/numpy/typing/tests/data/pass/__pycache__/literal.cpython*
+}
+
 FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a"
 
 # install what is needed for numpy.test()