python3-pip-native: install scripts in ${bindir}

The naïve approach of simply unzipping the built wheel is not
sufficient. 'pip install' would normally have created the
[console_scripts] from entry-points.txt in ${D}${bindir}.

For bootstrapping purposes, hardcode the scripts and install them into
${D}${bindir}. Skip the ${bindir}/pip variant.

[YOCTO #14739]

(From OE-Core rev: 5b58328b610273fea42c144cd590e638c0dc1e4e)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Tim Orling
2022-02-23 14:09:10 -08:00
committed by Richard Purdie
parent d98a804617
commit 3a4f842307

View File

@@ -24,6 +24,23 @@ do_install:class-native() {
install -d ${D}${PYTHON_SITEPACKAGES_DIR}
unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PYPA_WHEEL} || \
bbfatal_log "Failed to unzip wheel: ${PYPA_WHEEL}. Check the logs."
# pip install would normally generate [console_scripts] in ${bindir}
install -d ${D}/${bindir}
# We will skip the ${bindir}/pip variant as we would just remove it in the do_install:append
cat << EOF >> ${D}/${bindir}/pip3 | tee ${D}/${bindir}/pip${PYTHON_BASEVERSION}
#!/bin/sh
'''exec' ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} "\$0" "\$@"
' '''
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main 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}/pip3 ${D}${bindir}/pip${PYTHON_BASEVERSION}
}
do_install:append() {