summaryrefslogtreecommitdiff
path: root/meta-phosphor/classes/obmc-phosphor-python3-autotools.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta-phosphor/classes/obmc-phosphor-python3-autotools.bbclass')
-rw-r--r--meta-phosphor/classes/obmc-phosphor-python3-autotools.bbclass21
1 files changed, 21 insertions, 0 deletions
diff --git a/meta-phosphor/classes/obmc-phosphor-python3-autotools.bbclass b/meta-phosphor/classes/obmc-phosphor-python3-autotools.bbclass
index d76598a36c..89a884a1b2 100644
--- a/meta-phosphor/classes/obmc-phosphor-python3-autotools.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-python3-autotools.bbclass
@@ -1,6 +1,9 @@
inherit obmc-phosphor-utils
inherit python3native
+OBMC_PYTHON_EXE="python3"
+OBMC_PYTHON_EXE_class-native="nativepython3"
+
DEPENDS += "python3"
export BUILD_SYS
@@ -15,3 +18,21 @@ python() {
set_append(d, 'FILES_%s' % pkg,
d.getVar('PYTHON_SITEPACKAGES_DIR', True))
}
+
+# python-setuptools does some mangling of the #! in any scripts it installs,
+# which has been reported for years at pypa/setuptools#494. OE has
+# workarounds in distutils3.bbclass, but we cannot inherit that here because
+# it conflicts with autotools.bbclass. Port the un-mangling code here.
+#
+# This finds any ${PYTHON} executable path that got put into the scripts
+# and reverts it back to "/usr/bin/env python3". It also reverts any full
+# ${STAGING_BINDIR_NATIVE} path back to "/usr/bin".
+#
+do_install_append() {
+ for i in ${D}${bindir}/* ${D}${sbindir}/*; do
+ if [ -f "$i" ]; then
+ sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${OBMC_PYTHON_EXE}:g $i
+ sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
+ fi
+ done
+}