[oe-commits] Roman I Khimov : distutils-common-base: move Python dir detection to separate class

git version control git at git.openembedded.org
Thu Mar 25 06:32:43 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: e0f9409803d6edc14608828967c0c52b5a2d182e
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=e0f9409803d6edc14608828967c0c52b5a2d182e

Author: Roman I Khimov <khimov at altell.ru>
Date:   Tue Mar 23 13:27:40 2010 +0300

distutils-common-base: move Python dir detection to separate class

Allows to inherit that in packages containing Python extensions but still tightly
control packaging of those extensions. Mainly for the cases where you want
those python modules/extensions/parts to be packaged separately from the main
package in order not to introduce python dependency where you don't need it.
Technically, you can do it with distutils-common-base, but it might require
more FILES_* work than with python-dir.

Introduce PYTHON_SITEPACKAGES_DIR along the way, site-packages directory is
referenced frequently enough within class files, but some recipes also pack this
directory as

${libdir}/python2.5/site-packages
${libdir}/python2.6/site-packages
${libdir}/python*/site-packages
/usr/lib/python*/site-packages
${libdir}/*/site-packages

all of which are not perfect.

Signed-off-by: Roman I Khimov <khimov at altell.ru>

---

 classes/distutils-common-base.bbclass |   13 ++-----------
 classes/python-dir.bbclass            |   11 +++++++++++
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/classes/distutils-common-base.bbclass b/classes/distutils-common-base.bbclass
index 87578b7..b6dce7e 100644
--- a/classes/distutils-common-base.bbclass
+++ b/classes/distutils-common-base.bbclass
@@ -1,19 +1,10 @@
+inherit python-dir
+
 EXTRA_OEMAKE = ""
 
 export STAGING_INCDIR
 export STAGING_LIBDIR
 
-def python_dir(d):
-	import os, bb
-	staging_incdir = bb.data.getVar( "STAGING_INCDIR", d, 1 )
-	for majmin in "2.6 2.5 2.4 2.3".split():
-		if os.path.exists( "%s/python%s" % ( staging_incdir, majmin ) ): return "python%s" % majmin
-	if not "python-native" in bb.data.getVar( "DEPENDS", d, 1 ).split():
-		raise "No Python in STAGING_INCDIR. Forgot to build python-native ?"
-	return "INVALID"
-
-PYTHON_DIR = "${@python_dir(d)}"
-
 PACKAGES = "${PN}-dev ${PN}-dbg ${PN}-doc ${PN}"
 
 FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
diff --git a/classes/python-dir.bbclass b/classes/python-dir.bbclass
new file mode 100644
index 0000000..d631a5c
--- /dev/null
+++ b/classes/python-dir.bbclass
@@ -0,0 +1,11 @@
+def python_dir(d):
+	import os, bb
+	staging_incdir = bb.data.getVar( "STAGING_INCDIR", d, 1 )
+	for majmin in "2.6 2.5 2.4 2.3".split():
+		if os.path.exists( "%s/python%s" % ( staging_incdir, majmin ) ): return "python%s" % majmin
+	if not "python-native" in bb.data.getVar( "DEPENDS", d, 1 ).split():
+		raise "No Python in STAGING_INCDIR. Forgot to build python-native ?"
+	return "INVALID"
+
+PYTHON_DIR = "${@python_dir(d)}"
+PYTHON_SITEPACKAGES_DIR = "${libdir}/${PYTHON_DIR}/site-packages"





More information about the Openembedded-commits mailing list