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 <khi...@altell.ru> --- classes/distutils-common-base.bbclass | 13 ++----------- classes/python-dir.bbclass | 11 +++++++++++ 2 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 classes/python-dir.bbclass 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" -- 1.5.6.5 _______________________________________________ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel