diff options
author | Koen Kooi <koen@dominion.thruhere.net> | 2011-01-18 12:11:37 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-01-20 21:37:00 +0000 |
commit | 6f31e13e81ed87319154f639d24013799fde1438 (patch) | |
tree | 3cdbe1aca13df91af101cd3a1e928c8e87b23762 | |
parent | 943f80f2aa55b196d5881f4b639f3645a78ab648 (diff) | |
download | poky-6f31e13e81ed87319154f639d24013799fde1438.tar.gz |
distutils(-common-base) bbclass: sync with OE
When using python recipes imported from OE (e.g. python-cheetah) parsing only succeeds when python has already been built due to the PYTHON_DIR references.
This commit syncs the classes with OE to make it work, but keeps the *.pyo removal from yocto.
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
-rw-r--r-- | meta/classes/distutils-common-base.bbclass | 23 | ||||
-rw-r--r-- | meta/classes/distutils.bbclass | 20 |
2 files changed, 17 insertions, 26 deletions
diff --git a/meta/classes/distutils-common-base.bbclass b/meta/classes/distutils-common-base.bbclass index 01bf9eaeba..f66a5cd571 100644 --- a/meta/classes/distutils-common-base.bbclass +++ b/meta/classes/distutils-common-base.bbclass | |||
@@ -1,19 +1,10 @@ | |||
1 | inherit python-dir | ||
2 | |||
1 | EXTRA_OEMAKE = "" | 3 | EXTRA_OEMAKE = "" |
2 | 4 | ||
3 | export STAGING_INCDIR | 5 | export STAGING_INCDIR |
4 | export STAGING_LIBDIR | 6 | export STAGING_LIBDIR |
5 | 7 | ||
6 | def python_dir(d): | ||
7 | import os, bb | ||
8 | staging_incdir = bb.data.getVar( "STAGING_INCDIR", d, 1 ) | ||
9 | for majmin in "2.6 2.5 2.4 2.3".split(): | ||
10 | if os.path.exists( "%s/python%s" % ( staging_incdir, majmin ) ): return "python%s" % majmin | ||
11 | if not "python-native" in bb.data.getVar( "DEPENDS", d, 1 ).split(): | ||
12 | raise "No Python in STAGING_INCDIR. Forgot to build python-native ?" | ||
13 | return "INVALID" | ||
14 | |||
15 | PYTHON_DIR = "${@python_dir(d)}" | ||
16 | |||
17 | PACKAGES = "${PN}-dev ${PN}-dbg ${PN}-doc ${PN}" | 8 | PACKAGES = "${PN}-dev ${PN}-dbg ${PN}-doc ${PN}" |
18 | 9 | ||
19 | FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*" | 10 | FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*" |
@@ -21,10 +12,10 @@ FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*" | |||
21 | FILES_${PN}-dev += "\ | 12 | FILES_${PN}-dev += "\ |
22 | ${datadir}/pkgconfig \ | 13 | ${datadir}/pkgconfig \ |
23 | ${libdir}/pkgconfig \ | 14 | ${libdir}/pkgconfig \ |
24 | ${libdir}/${PYTHON_DIR}/site-packages/*.la \ | 15 | ${PYTHON_SITEPACKAGES_DIR}/*.la \ |
25 | " | 16 | " |
26 | FILES_${PN}-dbg = "\ | 17 | FILES_${PN}-dbg += "\ |
27 | ${libdir}/${PYTHON_DIR}/site-packages/.debug \ | 18 | ${PYTHON_SITEPACKAGES_DIR}/.debug \ |
28 | ${libdir}/${PYTHON_DIR}/site-packages/*/.debug \ | 19 | ${PYTHON_SITEPACKAGES_DIR}/*/.debug \ |
29 | ${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug \ | 20 | ${PYTHON_SITEPACKAGES_DIR}/*/*/.debug \ |
30 | " | 21 | " |
diff --git a/meta/classes/distutils.bbclass b/meta/classes/distutils.bbclass index 245ef7d859..7e6fbc0c06 100644 --- a/meta/classes/distutils.bbclass +++ b/meta/classes/distutils.bbclass | |||
@@ -16,9 +16,7 @@ distutils_do_compile() { | |||
16 | } | 16 | } |
17 | 17 | ||
18 | distutils_stage_headers() { | 18 | distutils_stage_headers() { |
19 | install -d ${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages | 19 | install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} |
20 | STAGING_INCDIR=${STAGING_INCDIR} \ | ||
21 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | ||
22 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ | 20 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ |
23 | ${STAGING_BINDIR_NATIVE}/python setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \ | 21 | ${STAGING_BINDIR_NATIVE}/python setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \ |
24 | oefatal "python setup.py install_headers execution failed." | 22 | oefatal "python setup.py install_headers execution failed." |
@@ -27,18 +25,18 @@ distutils_stage_headers() { | |||
27 | distutils_stage_all() { | 25 | distutils_stage_all() { |
28 | STAGING_INCDIR=${STAGING_INCDIR} \ | 26 | STAGING_INCDIR=${STAGING_INCDIR} \ |
29 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | 27 | STAGING_LIBDIR=${STAGING_LIBDIR} \ |
30 | install -d ${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages | 28 | install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} |
31 | PYTHONPATH=${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages \ | 29 | PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} \ |
32 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ | 30 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ |
33 | ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \ | 31 | ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \ |
34 | oefatal "python setup.py install (stage) execution failed." | 32 | oefatal "python setup.py install (stage) execution failed." |
35 | } | 33 | } |
36 | 34 | ||
37 | distutils_do_install() { | 35 | distutils_do_install() { |
38 | install -d ${D}${libdir}/${PYTHON_DIR}/site-packages | 36 | install -d ${D}${PYTHON_SITEPACKAGES_DIR} |
39 | STAGING_INCDIR=${STAGING_INCDIR} \ | 37 | STAGING_INCDIR=${STAGING_INCDIR} \ |
40 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | 38 | STAGING_LIBDIR=${STAGING_LIBDIR} \ |
41 | PYTHONPATH=${D}/${libdir}/${PYTHON_DIR}/site-packages \ | 39 | PYTHONPATH=${D}/${PYTHON_SITEPACKAGES_DIR} \ |
42 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ | 40 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ |
43 | ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_INSTALL_ARGS} || \ | 41 | ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_INSTALL_ARGS} || \ |
44 | oefatal "python setup.py install execution failed." | 42 | oefatal "python setup.py install execution failed." |
@@ -59,15 +57,17 @@ distutils_do_install() { | |||
59 | done | 57 | done |
60 | fi | 58 | fi |
61 | 59 | ||
62 | rm -f ${D}${libdir}/${PYTHON_DIR}/site-packages/easy-install.pth | 60 | rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/easy-install.pth |
63 | 61 | ||
64 | # | 62 | # |
65 | # FIXME: Bandaid against wrong datadir computation | 63 | # FIXME: Bandaid against wrong datadir computation |
66 | # | 64 | # |
67 | if test -e ${D}${datadir}/share; then | 65 | if test -e ${D}${datadir}/share; then |
68 | mv -f ${D}${datadir}/share/* ${D}${datadir}/ | 66 | mv -f ${D}${datadir}/share/* ${D}${datadir}/ |
69 | fi | 67 | fi |
70 | 68 | ||
69 | # These are generated files, on really slow systems the storage/speed trade off | ||
70 | # might be worth it, but in general it isn't | ||
71 | find ${D}${libdir}/${PYTHON_DIR}/site-packages -iname '*.pyo' -exec rm {} \; | 71 | find ${D}${libdir}/${PYTHON_DIR}/site-packages -iname '*.pyo' -exec rm {} \; |
72 | } | 72 | } |
73 | 73 | ||