- 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....@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....@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....@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

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to