From patchwork Tue Dec 4 13:59:11 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [4/5] gdk-pixbuf: generate the pixbuf loader's cache ar rootfs time Date: Tue, 04 Dec 2012 13:59:11 -0000 From: Laurentiu Palcu X-Patchwork-Id: 40275 Message-Id: To: openembedded-core@lists.openembedded.org, schnitzeltony@googlemail.com This will generate the loaders.cache file for pixbuf, at rootfs time. Signed-off-by: Laurentiu Palcu --- meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bb | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bb index 65a2d68..2377d0e 100644 --- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bb +++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bb @@ -58,9 +58,21 @@ FILES_${PN}-dbg += " \ postinst_pixbufloader () { if [ "x$D" != "x" ]; then - exit 1 +# Update the target's pixbuf loader's cache. Since the native binary will +# throw an error if the shared objects do not belong to the same ELF class, +# we trick the gdk-pixbuf-query-loaders into scanning the native shared +# objects and then we remove the NATIVE_ROOT prefix from the paths in +# loaders.cache. +gdk-pixbuf-query-loaders $(find $D/${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders \ + -name *.so | sed -e "s:$D:$NATIVE_ROOT:g") > \ + $D/${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders.cache || exit 1 + +sed -i -e "s:$NATIVE_ROOT:/:g" $D/${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders.cache + +exit 0 fi +# Update the pixbuf loaders in case they haven't been registered yet GDK_PIXBUF_MODULEDIR=${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders gdk-pixbuf-query-loaders --update-cache if [ -x ${bindir}/gtk-update-icon-cache ] && [ -d ${datadir}/icons ]; then @@ -93,6 +105,7 @@ do_install_append_class-native() { GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache create_wrapper ${D}/${bindir}/gdk-pixbuf-query-loaders \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ + GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders } BBCLASSEXTEND = "native"