Patchwork [v2] pango: don't try to split modules if none were installed

login
register
mail settings
Submitter Phil Blundell
Date Sept. 30, 2012, 5:48 p.m.
Message ID <1349027303.4422.63.camel@x121e.pbcl.net>
Download mbox | patch
Permalink /patch/37509/
State New
Headers show

Comments

Phil Blundell - Sept. 30, 2012, 5:48 p.m.
If pango is configured --with-included-modules then the modules
directory may not exist.  Trying to call do_split_modules() on a
nonexistent path leads to python stack traceback spew and a build
failure, so check in advance whether that directory is present before
trying to do any splitting.

Signed-off-by: Phil Blundell <philb@gnu.org>
---
v2: can't use os.path.join() with modules_root as 2nd argument

 meta/recipes-graphics/pango/pango.inc |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
Phil Blundell - Sept. 30, 2012, 9:28 p.m.
On Sun, 2012-09-30 at 19:31 +0100, Ross Burton wrote:
> As this keeps on cropping up, I did have a patch to do_split_packages
> that added an allow-empty argument. Might be worth digging out. 

Sounds like a decent plan.

p.
Ross Burton - Oct. 12, 2012, 11:07 a.m.
On 30 September 2012 22:28, Phil Blundell <philb@gnu.org> wrote:
> On Sun, 2012-09-30 at 19:31 +0100, Ross Burton wrote:
>> As this keeps on cropping up, I did have a patch to do_split_packages
>> that added an allow-empty argument. Might be worth digging out.
>
> Sounds like a decent plan.

So do_split_packages() effectively has this if you set recursive=True,
as os.walk() returns an empty list if you pass it a non-existent
directory (it's documented as ignoring errors from os.listdir).

So, what is the behaviour do_split_packages() should have if the split
root doesn't exist - should it error, ignore, or there be an option?

(note that pre-automake 1.12 this rarely happened because the
directory would exist but be empty, now with 1.12 it doesn't install
empty directories)

Ross

Patch

diff --git a/meta/recipes-graphics/pango/pango.inc b/meta/recipes-graphics/pango/pango.inc
index c9e92f0..18ee068 100644
--- a/meta/recipes-graphics/pango/pango.inc
+++ b/meta/recipes-graphics/pango/pango.inc
@@ -64,8 +64,9 @@  python populate_packages_prepend () {
     prologue = d.getVar("postinst_prologue", True)
 
     modules_root = d.expand('${libdir}/pango/${LIBV}/modules')
-
-    do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + '${bindir}/${MLPREFIX}pango-querymodules > /etc/pango/${MLPREFIX}pango.modules')
+    
+    if os.path.exists(d.expand('${WORKDIR}/package') + modules_root):
+       do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + '${bindir}/${MLPREFIX}pango-querymodules > /etc/pango/${MLPREFIX}pango.modules')
 }
 
 FILES_${PN} = "${sysconfdir}/pango/* ${bindir}/* ${libdir}/libpango*${SOLIBS}"