summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-23 23:32:45 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-24 17:53:25 +0100
commitd5cf21179d9f8d3c053316b0864d72fc609f5423 (patch)
tree294438c19b22a3e404d1985a995d0f35520ab01c
parentc1ef36c2b3e3876cc166a9a5e153fc6f23b42b92 (diff)
downloadopenembedded-core-contrib-d5cf21179d9f8d3c053316b0864d72fc609f5423.tar.gz
openembedded-core-contrib-d5cf21179d9f8d3c053316b0864d72fc609f5423.tar.bz2
openembedded-core-contrib-d5cf21179d9f8d3c053316b0864d72fc609f5423.zip
gdk-pixbuf: Avoid rebuild failures
If gdkpixbuf-native rebuilds and there are stale (broken) modules lying around, it can fail to run the postinst. E.g. svg links to harfbuzz and if harfbuzz is removed from the sysroot but the svg loader isn't, we get a symbol linking issue. The reproducer is along the lines of build gdk-pixbuf-native along with harfbuzz-native and librsvg-native, then make a small change to the gdk-pixbuf recipe that would cause it to rebuild, clean harfbuzz-native and then build gdk-pixbuf. To fix this, when we install gdk-pixbuf, we wipe out any previous loaders. The idea is that gdk would always come first and anything else installing itself will come later and rerun the postinst if needed. We can therefore just remove any other loaders. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb9
1 files changed, 9 insertions, 0 deletions
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb
index bdf173aa4b..35bb1920d6 100644
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb
@@ -94,3 +94,12 @@ do_install_append_class-native() {
GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders
}
BBCLASSEXTEND = "native"
+
+SSTATEPREINSTFUNCS_append_class-native = " gdkpixbuf_sstate_preinst"
+SYSROOT_PREPROCESS_FUNCS_append_class-native = " gdkpixbuf_sstate_preinst"
+
+gdkpixbuf_sstate_preinst() {
+ if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]; then
+ rm -rf ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/*
+ fi
+}