summaryrefslogtreecommitdiff
path: root/recipes-gnome
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2013-06-24 09:45:12 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2013-06-26 14:05:14 +0200
commitcdcea0e20d626d7d6feab47cda028c2a07c6d709 (patch)
tree188f172d9ecbc4d5353d50eaea1f3457f5103b94 /recipes-gnome
parentd65f71fbae4695d5f6ebc1551b62d1a2e8366032 (diff)
gdk-pixbuf: update icon cache on rootfs build time
Diffstat (limited to 'recipes-gnome')
-rw-r--r--recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend30
1 files changed, 30 insertions, 0 deletions
diff --git a/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend b/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend
index 42a31fe..e3f90c0 100644
--- a/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend
+++ b/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.24.1.bbappend
@@ -1,5 +1,35 @@
+PRINC = "1"
# build for x11, at least lxpanel needs this
DEPENDS += "virtual/libx11"
EXTRA_OECONF += "--with-x11"
+# do the timeconsuming gdk-pixbuf-query-loaders on the build machine
+# backport from http://cgit.openembedded.org/openembedded-core/commit/meta/recipes-gnome/gdk-pixbuf?id=5ba420bc0e282a1cbf000ce32034ad7ab15c01d5
+postinst_pixbufloader () {
+if [ "x$D" != "x" ]; then
+# 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
+rm -f $D/${libdir}/gdk-pixbuf-2.0/${LIBV}/sed*
+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
+ for icondir in /usr/share/icons/*; do
+ if [ -d ${icondir} ]; then
+ gtk-update-icon-cache -t -q ${icondir}
+ fi
+ done
+fi
+}