I have to ask you to resend and drop the DISTRO_FEATURE idea. We do not want to make the impression that python2 is supported in any way, and as explained earlier this implies that all scripts that ask for python would work with both 2 and 3. No, this is a clean break, and anyone who still has 2.x stuff has to adjust it to ask for #!/usr/bin/python2.
Alex On Sun, 20 Nov 2022 at 18:53, Markus Volk <[email protected]> wrote: > > Currently /usr/bin/python is provided by the python2 package. If python2 > is not installed, the built image lacks a provider for it. > This results in failed scripts when using '/usr/bin/python' shebang. > > This patch adds a /usr/bin/python symlink for python3 to fix this issue. > For images containing python2 and python3, the do_rootfs task will fail > because now both of them provide the same file. > To allow this corner case, a DISTRO_FEATURE 'python2' has been introduced > which, > if set, will prevent python3 from creating the symlink. > > The link is created with relative path because using an absolute path would > fail > for native and nativesdk. > > Signed-off-by: Markus Volk <[email protected]> > --- > meta/recipes-devtools/python/python3/python3-manifest.json | 1 + > meta/recipes-devtools/python/python3_3.11.0.bb | 4 ++++ > 2 files changed, 5 insertions(+) > > diff --git a/meta/recipes-devtools/python/python3/python3-manifest.json > b/meta/recipes-devtools/python/python3/python3-manifest.json > index 64203cf0fc..7b6f509a45 100644 > --- a/meta/recipes-devtools/python/python3/python3-manifest.json > +++ b/meta/recipes-devtools/python/python3/python3-manifest.json > @@ -203,6 +203,7 @@ > "files": [ > "${bindir}/python${PYTHON_MAJMIN}", > "${bindir}/python${PYTHON_MAJMIN}.real", > + "${bindir}/python", > "${bindir}/python3", > "${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h", > "${libdir}/python${PYTHON_MAJMIN}/UserDict.py", > diff --git a/meta/recipes-devtools/python/python3_3.11.0.bb > b/meta/recipes-devtools/python/python3_3.11.0.bb > index 92a1f69320..18b631f79d 100644 > --- a/meta/recipes-devtools/python/python3_3.11.0.bb > +++ b/meta/recipes-devtools/python/python3_3.11.0.bb > @@ -144,6 +144,7 @@ do_install:prepend() { > > do_install:append:class-target() { > oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h > + ${@bb.utils.contains('DISTRO_FEATURES', 'python2', '', 'ln -sf > ./python3 ${D}${bindir}/python', d)} > } > > do_install:append:class-native() { > @@ -156,6 +157,7 @@ do_install:append:class-native() { > # (these often end up too long for the #! parser in the kernel as the > # buffer is 128 bytes long). > ln -s python3-native/python3 ${D}${bindir}/nativepython3 > + ${@bb.utils.contains('DISTRO_FEATURES', 'python2', '', 'ln -sf > ./python3-native/python3 ${D}${bindir}/nativepython', d)} > > # Remove the opt-1.pyc and opt-2.pyc files. There are over 3,000 of > them > # and the overhead in each recipe-sysroot-native isn't worth it, > particularly > @@ -213,6 +215,7 @@ do_install:append() { > } > > do_install:append:class-nativesdk () { > + ${@bb.utils.contains('DISTRO_FEATURES', 'python2', '', 'ln -sf ./python3 > ${D}${bindir}/python', d)} > # Make sure we use /usr/bin/env python > for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do > sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT > @@ -376,6 +379,7 @@ RRECOMMENDS:${PN}-crypt:append:class-nativesdk = " > ${MLPREFIX}openssl ${MLPREFIX > > # For historical reasons PN is empty and provided by python3-modules > FILES:${PN} = "" > +RPROVIDES:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'python2', '', > '${bindir}/python', d)}" > RPROVIDES:${PN}-modules = "${PN}" > > FILES:${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3" > -- > 2.34.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#173639): https://lists.openembedded.org/g/openembedded-core/message/173639 Mute This Topic: https://lists.openembedded.org/mt/95156228/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
