From patchwork Thu Dec 6 09:49:27 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: distutils: Replacing path to native python by path to python in the image to support python packages with console-script setup Date: Thu, 06 Dec 2012 09:49:27 -0000 From: Lukas Bulwahn X-Patchwork-Id: 40559 Message-Id: <1354787367-18543-2-git-send-email-lukas.bulwahn@oss.bmw-carit.de> To: openembedded-core@lists.openembedded.org Cc: Lukas Bulwahn , Lukas Bulwahn From: Lukas Bulwahn When using distutils for a python package based on a python-setuptools installation script that sets up a console script, the header of the console script created by setuptools points to the python-native path. The console scripts are commonly executed in the image, but not in the sysroot environment. Therefore, the header of the console scripts should point to the python interpreter in the image. Setuptools does not allow to set the path of the python interpreter via some command-line argument. Hence after the installation script ran, the distutils class replaces the path in the console script files created by the installation. Signed-off-by: Lukas Bulwahn --- meta/classes/distutils.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/classes/distutils.bbclass b/meta/classes/distutils.bbclass index 552e5f3..f67297e 100644 --- a/meta/classes/distutils.bbclass +++ b/meta/classes/distutils.bbclass @@ -47,12 +47,14 @@ distutils_do_install() { if test -e ${D}${bindir} ; then for i in ${D}${bindir}/* ; do \ + sed -i -e s:${STAGING_BINDIR_NATIVE}/python-native/python:${bindir}/python:g $i sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i done fi if test -e ${D}${sbindir}; then for i in ${D}${sbindir}/* ; do \ + sed -i -e s:${STAGING_BINDIR_NATIVE}/python-native/python:${bindir}/python:g $i sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i done fi @@ -64,7 +66,6 @@ distutils_do_install() { # if test -e ${D}${datadir}/share; then mv -f ${D}${datadir}/share/* ${D}${datadir}/ - rmdir ${D}${datadir}/share fi }