* [OE-core] [PATCH 01/20] python-native: Put binaries in seperate directory
@ 2012-07-13 12:22 Morgan Little
0 siblings, 0 replies; 2+ messages in thread
From: Morgan Little @ 2012-07-13 12:22 UTC (permalink / raw)
To: openembedded-devel, morgan.little
Update python-native to install the binaries in the python-native directory,
add pythonnative.bbclass to let recipes that need python-native use the
binaries and update disutils access the new binaries.
Signed-off-by: Morgan Little <morgan.little@windriver.com>
---
meta/classes/distutils.bbclass | 14 +++++++++-----
meta/classes/pythonnative.bbclass | 3 +++
.../recipes-devtools/python/python-native_2.7.3.bb | 9 ++++++---
3 files changed, 18 insertions(+), 8 deletions(-)
create mode 100644 meta/classes/pythonnative.bbclass
diff --git a/meta/classes/distutils.bbclass b/meta/classes/distutils.bbclass
index bcddf8d..f731257 100644
--- a/meta/classes/distutils.bbclass
+++ b/meta/classes/distutils.bbclass
@@ -1,4 +1,4 @@
-inherit distutils-base
+inherit distutils-base pythonnative
DISTUTILS_BUILD_ARGS ?= ""
DISTUTILS_STAGE_HEADERS_ARGS ?= "--install-dir=${STAGING_INCDIR}/${PYTHON_DIR}"
@@ -11,14 +11,14 @@ distutils_do_compile() {
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python setup.py build ${DISTUTILS_BUILD_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/python-native/python setup.py build ${DISTUTILS_BUILD_ARGS} || \
bbfatal "python setup.py build_ext execution failed."
}
distutils_stage_headers() {
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/python-native/python setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
bbfatal "python setup.py install_headers execution failed."
}
@@ -28,7 +28,7 @@ distutils_stage_all() {
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/python-native/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
bbfatal "python setup.py install (stage) execution failed."
}
@@ -38,7 +38,7 @@ distutils_do_install() {
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${D}/${PYTHON_SITEPACKAGES_DIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_INSTALL_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/python-native/python setup.py install ${DISTUTILS_INSTALL_ARGS} || \
bbfatal "python setup.py install execution failed."
for i in `find ${D} -name "*.py"` ; do \
@@ -65,6 +65,10 @@ distutils_do_install() {
if test -e ${D}${datadir}/share; then
mv -f ${D}${datadir}/share/* ${D}${datadir}/
fi
+
+ # These are generated files, on really slow systems the storage/speed trade off
+ # might be worth it, but in general it isn't
+ find ${D}${libdir}/${PYTHON_DIR}/site-packages -iname '*.pyo' -exec rm {} \;
}
EXPORT_FUNCTIONS do_compile do_install
diff --git a/meta/classes/pythonnative.bbclass b/meta/classes/pythonnative.bbclass
new file mode 100644
index 0000000..bc346da
--- /dev/null
+++ b/meta/classes/pythonnative.bbclass
@@ -0,0 +1,3 @@
+PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python"
+PATH_prepend = "${STAGING_BINDIR_NATIVE}/python-native:"
+DEPENDS += " python-native "
diff --git a/meta/recipes-devtools/python/python-native_2.7.3.bb b/meta/recipes-devtools/python/python-native_2.7.3.bb
index 50bf894..a4cbdcd 100644
--- a/meta/recipes-devtools/python/python-native_2.7.3.bb
+++ b/meta/recipes-devtools/python/python-native_2.7.3.bb
@@ -1,6 +1,6 @@
require python.inc
DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native"
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
SRC_URI += "file://04-default-is-optimized.patch \
file://05-enable-ctypes-cross-build.patch \
@@ -20,6 +20,8 @@ inherit native
RPROVIDES += "python-distutils-native python-compression-native python-textutils-native python-core-native"
+EXTRA_OECONF += " --bindir=${bindir}/${PN}"
+
EXTRA_OEMAKE = '\
BUILD_SYS="" \
HOST_SYS="" \
@@ -35,10 +37,11 @@ do_configure_prepend() {
do_install() {
oe_runmake 'DESTDIR=${D}' install
install -d ${D}${bindir}/
- install -m 0755 Parser/pgen ${D}${bindir}/
+ install -d ${D}${bindir}/${PN}
+ install -m 0755 Parser/pgen ${D}${bindir}/${PN}
# Make sure we use /usr/bin/env python
- for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do
+ for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT
done
}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [OE-core] [PATCH 01/20] python-native: Put binaries in seperate directory
2012-07-13 12:22 [OE-core] [PATCH 00/20] Change python-native path Morgan Little
@ 2012-07-13 12:22 ` Morgan Little
0 siblings, 0 replies; 2+ messages in thread
From: Morgan Little @ 2012-07-13 12:22 UTC (permalink / raw)
To: openembedded-devel
Update python-native to install the binaries in the python-native directory,
add pythonnative.bbclass to let recipes that need python-native use the
binaries and update disutils access the new binaries.
Signed-off-by: Morgan Little <morgan.little@windriver.com>
---
meta/classes/distutils.bbclass | 14 +++++++++-----
meta/classes/pythonnative.bbclass | 3 +++
.../recipes-devtools/python/python-native_2.7.3.bb | 9 ++++++---
3 files changed, 18 insertions(+), 8 deletions(-)
create mode 100644 meta/classes/pythonnative.bbclass
diff --git a/meta/classes/distutils.bbclass b/meta/classes/distutils.bbclass
index bcddf8d..f731257 100644
--- a/meta/classes/distutils.bbclass
+++ b/meta/classes/distutils.bbclass
@@ -1,4 +1,4 @@
-inherit distutils-base
+inherit distutils-base pythonnative
DISTUTILS_BUILD_ARGS ?= ""
DISTUTILS_STAGE_HEADERS_ARGS ?= "--install-dir=${STAGING_INCDIR}/${PYTHON_DIR}"
@@ -11,14 +11,14 @@ distutils_do_compile() {
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python setup.py build ${DISTUTILS_BUILD_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/python-native/python setup.py build ${DISTUTILS_BUILD_ARGS} || \
bbfatal "python setup.py build_ext execution failed."
}
distutils_stage_headers() {
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/python-native/python setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
bbfatal "python setup.py install_headers execution failed."
}
@@ -28,7 +28,7 @@ distutils_stage_all() {
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/python-native/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
bbfatal "python setup.py install (stage) execution failed."
}
@@ -38,7 +38,7 @@ distutils_do_install() {
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${D}/${PYTHON_SITEPACKAGES_DIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_INSTALL_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/python-native/python setup.py install ${DISTUTILS_INSTALL_ARGS} || \
bbfatal "python setup.py install execution failed."
for i in `find ${D} -name "*.py"` ; do \
@@ -65,6 +65,10 @@ distutils_do_install() {
if test -e ${D}${datadir}/share; then
mv -f ${D}${datadir}/share/* ${D}${datadir}/
fi
+
+ # These are generated files, on really slow systems the storage/speed trade off
+ # might be worth it, but in general it isn't
+ find ${D}${libdir}/${PYTHON_DIR}/site-packages -iname '*.pyo' -exec rm {} \;
}
EXPORT_FUNCTIONS do_compile do_install
diff --git a/meta/classes/pythonnative.bbclass b/meta/classes/pythonnative.bbclass
new file mode 100644
index 0000000..bc346da
--- /dev/null
+++ b/meta/classes/pythonnative.bbclass
@@ -0,0 +1,3 @@
+PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python"
+PATH_prepend = "${STAGING_BINDIR_NATIVE}/python-native:"
+DEPENDS += " python-native "
diff --git a/meta/recipes-devtools/python/python-native_2.7.3.bb b/meta/recipes-devtools/python/python-native_2.7.3.bb
index 50bf894..a4cbdcd 100644
--- a/meta/recipes-devtools/python/python-native_2.7.3.bb
+++ b/meta/recipes-devtools/python/python-native_2.7.3.bb
@@ -1,6 +1,6 @@
require python.inc
DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native"
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
SRC_URI += "file://04-default-is-optimized.patch \
file://05-enable-ctypes-cross-build.patch \
@@ -20,6 +20,8 @@ inherit native
RPROVIDES += "python-distutils-native python-compression-native python-textutils-native python-core-native"
+EXTRA_OECONF += " --bindir=${bindir}/${PN}"
+
EXTRA_OEMAKE = '\
BUILD_SYS="" \
HOST_SYS="" \
@@ -35,10 +37,11 @@ do_configure_prepend() {
do_install() {
oe_runmake 'DESTDIR=${D}' install
install -d ${D}${bindir}/
- install -m 0755 Parser/pgen ${D}${bindir}/
+ install -d ${D}${bindir}/${PN}
+ install -m 0755 Parser/pgen ${D}${bindir}/${PN}
# Make sure we use /usr/bin/env python
- for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do
+ for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT
done
}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-07-13 15:12 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-13 12:22 [OE-core] [PATCH 01/20] python-native: Put binaries in seperate directory Morgan Little
2012-07-13 12:22 [OE-core] [PATCH 00/20] Change python-native path Morgan Little
2012-07-13 12:22 ` [OE-core] [PATCH 01/20] python-native: Put binaries in seperate directory Morgan Little
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.