[2/3] pip_install_wheel: Recompile modified files

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

Commit Message

Richard Purdie Feb. 25, 2022, 2:58 p.m. UTC
If we modify the file, we need to recompile the pyc files since the file
hash has changed. This would otherwise result in reproducibility failrues.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 meta/classes/pip_install_wheel.bbclass | 5 +++++
 1 file changed, 5 insertions(+)

Patch

diff --git a/meta/classes/pip_install_wheel.bbclass b/meta/classes/pip_install_wheel.bbclass
index f0312e0b1eb..8a848c0ebab 100644
--- a/meta/classes/pip_install_wheel.bbclass
+++ b/meta/classes/pip_install_wheel.bbclass
@@ -32,6 +32,11 @@  pip_install_wheel_do_install () {
             sed -i -e "1s,#!.*nativepython3,#!${USRBINPATH}/env ${PIP_INSTALL_PYTHON}," $i
             sed -i -e "s:${PYTHON}:${USRBINPATH}/env\ ${PIP_INSTALL_PYTHON}:g" $i
             sed -i -e "s:${STAGING_BINDIR_NATIVE}:${bindir}:g" $i
+            # Recompile after modifying it
+            cd ${D}
+            file=`echo $i | sed 's:^${D}/::'`
+            ${STAGING_BINDIR_NATIVE}/python3-native/python3 -c "from py_compile import compile; compile('$file')"
+            cd -
         fi
     done
 }