]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
python3-wheel-native: install ${bindir}/wheel
authorTim Orling <ticotimo@gmail.com>
Wed, 23 Feb 2022 22:09:13 +0000 (14:09 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 25 Feb 2022 15:06:46 +0000 (15:06 +0000)
pip install would normally install [project.scripts] to ${D}${bindir}
but our naïve bootstrapping only unzipps the wheel to
${D}${PYTHON_SITEPACKAGES_DIR}. Correct this by creating the equivalent
script in do_install:class-native

[YOCTO #14739]

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/python/python3-wheel_0.37.1.bb

index c7354c9d982e0b3d4928b5be7313391954699222..91bff8250970c6c871402a29164bb48cad8a2459 100644 (file)
@@ -18,6 +18,22 @@ do_install:class-native () {
     PYPA_WHEEL="${B}/dist/${PYPI_PACKAGE}-${PV}-*.whl"
     unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PYPA_WHEEL} || \
     bbfatal_log "Failed to install"
+
+    # pip install would normally generate [project.scripts] in ${bindir}
+    install -d ${D}/${bindir}
+    cat << EOF >> ${D}/${bindir}/wheel
+#!/bin/sh
+'''exec' ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} "\$0" "\$@"
+' '''
+# -*- coding: utf-8 -*-
+import re
+import sys
+from wheel.cli import main
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
+EOF
+    chmod 0755 ${D}${bindir}/wheel
 }
 
 BBCLASSEXTEND = "native nativesdk"