[OE-core] [PATCH 10/18] python-pycairo: fix buildpath QA issue
Hongxu Jia
hongxu.jia at windriver.com
Thu Mar 10 07:23:15 UTC 2016
- Inherit waf.bbclass, remove duplicate tasks
- Get "--destdir" directory supplied to the "install" command,
and use it as a prefix to strip off the purported filename
encoded in bytecode files.
- Do not need to generate pycairo.pc manually
[YOCTO #8446]
Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
---
...trip-off-build-path-in-purported-filename.patch | 62 ++++++++++++++++++++++
.../python/python-pycairo_1.10.0.bb | 25 +++------
2 files changed, 68 insertions(+), 19 deletions(-)
create mode 100644 meta/recipes-devtools/python/python-pycairo/strip-off-build-path-in-purported-filename.patch
diff --git a/meta/recipes-devtools/python/python-pycairo/strip-off-build-path-in-purported-filename.patch b/meta/recipes-devtools/python/python-pycairo/strip-off-build-path-in-purported-filename.patch
new file mode 100644
index 0000000..647c4be
--- /dev/null
+++ b/meta/recipes-devtools/python/python-pycairo/strip-off-build-path-in-purported-filename.patch
@@ -0,0 +1,62 @@
+From 86faf604fc8a7f17320db48734cda464119da387 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia at windriver.com>
+Date: Thu, 25 Feb 2016 04:22:07 -0500
+Subject: [PATCH] strip off build path in purported filename
+
+Get the "--destdir" directory supplied to the "install" command,
+and use it as a prefix to strip off the purported filename
+encoded in bytecode files.
+
+Upstream-Status: Inappropriate [openembedded specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
+---
+diff --git a/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Tools/python.py b/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Tools/python.py
+--- a/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Tools/python.py
++++ b/.waf-1.6.3-3c3129a3ec8fb4a5bbc7ba3161463b22/waflib/Tools/python.py
+@@ -26,7 +26,7 @@ int main()
+ INST='''
+ import sys, py_compile
+ for pyfile in sys.argv[1:]:
+- py_compile.compile(pyfile, pyfile + %r)
++ py_compile.compile(pyfile, pyfile + %r, %r)
+ '''
+ def process_py(self,node):
+ try:
+@@ -39,6 +39,16 @@ def process_py(self,node):
+ def inst_py(ctx):
+ install_pyfile(self,node)
+ self.bld.add_post_fun(inst_py)
++
++def get_dfile(dfile):
++ if getattr(Options.options,'destdir'):
++ destdir = Options.options.destdir
++ if dfile[:len(destdir)] != destdir:
++ raise Errors.WafError("invalid destdir: filename %r doesn't start with %r" % ((dfile, destdir)))
++ dfile = dfile[len(destdir):]
++
++ return dfile
++
+ def install_pyfile(self,node):
+ tsk=self.bld.install_files(self.install_path,[node],postpone=False)
+ path=os.path.join(tsk.get_install_path(),node.name)
+@@ -53,12 +63,14 @@ def install_pyfile(self,node):
+ if self.env['PYC']or self.env['PYO']:
+ info("+ byte compiling %r"%path)
+ if self.env['PYC']:
+- argv=self.env['PYTHON']+['-c',INST%'c',path]
++ dfile = get_dfile(path+'c')
++ argv=self.env['PYTHON']+['-c',INST%('c',dfile),path]
+ ret=Utils.subprocess.Popen(argv).wait()
+ if ret:
+ raise Errors.WafError('pyc compilation failed %r'%path)
+ if self.env['PYO']:
+- argv=self.env['PYTHON']+[self.env['PYFLAGS_OPT'],'-c',INST%'o',path]
++ dfile = get_dfile(path+'o')
++ argv=self.env['PYTHON']+[self.env['PYFLAGS_OPT'],'-c',INST%('o',dfile),path]
+ ret=Utils.subprocess.Popen(argv).wait()
+ if ret:
+ raise Errors.WafError('pyo compilation failed %r'%path)
+--
+1.9.1
+
diff --git a/meta/recipes-devtools/python/python-pycairo_1.10.0.bb b/meta/recipes-devtools/python/python-pycairo_1.10.0.bb
index 70fe25c..2fbd033 100644
--- a/meta/recipes-devtools/python/python-pycairo_1.10.0.bb
+++ b/meta/recipes-devtools/python/python-pycairo_1.10.0.bb
@@ -11,31 +11,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f2e071ab72978431b294a0d696327421 \
DEPENDS = "cairo"
PR = "r2"
-SRC_URI = "http://cairographics.org/releases/py2cairo-${PV}.tar.bz2"
+SRC_URI = "http://cairographics.org/releases/py2cairo-${PV}.tar.bz2 \
+ file://strip-off-build-path-in-purported-filename.patch \
+"
SRC_URI[md5sum] = "20337132c4ab06c1146ad384d55372c5"
SRC_URI[sha256sum] = "d30439f06c2ec1a39e27464c6c828b6eface3b22ee17b2de05dc409e429a7431"
S = "${WORKDIR}/py2cairo-${PV}"
-inherit distutils pkgconfig
+inherit distutils pkgconfig waf
BBCLASSEXTEND = "native"
-do_configure() {
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} ./waf configure --prefix=${D}${prefix} --libdir=${D}${libdir}
-}
-
-do_compile() {
- ./waf build ${PARALLEL_MAKE}
-}
-
-do_install() {
- ./waf install
- sed \
- -e 's:@prefix@:${prefix}:' \
- -e 's:@VERSION@:${PV}:' \
- -e 's:@includedir@:${includedir}:' \
- pycairo.pc.in > pycairo.pc
- install -m 0644 pycairo.pc ${D}${libdir}/pkgconfig/
-}
+CACHED_CONFIGUREVARS = "BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS}"
+EXTRA_OECONF += "--libdir=${libdir}"
--
1.9.1
More information about the Openembedded-core
mailing list