]> code.ossystems Code Review - openembedded-core.git/commitdiff
gdk-pixbuf: move gdk-pixbuf-query-loaders to $libdir for multilib safety
authorRoss Burton <ross.burton@intel.com>
Fri, 25 Sep 2015 22:25:12 +0000 (23:25 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 26 Sep 2015 16:57:43 +0000 (17:57 +0100)
If for example gdk-pixbuf and lib32-gdk-pixbuf are in an image then only one
${bindir}/gdk-pixbuf-query-loaders will be installed, so only one variant will
actually be usable.

Solve this by moving gdk-pixbuf-query-loaders into ${libdir} as it's intimately
tied to the library and rarely directly invoked by the user, and update the
callers to use the right path.

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/gtk-icon-cache.bbclass
meta/classes/pixbufcache.bbclass
meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb
scripts/postinst-intercepts/update_icon_cache
scripts/postinst-intercepts/update_pixbuf_cache

index 12358e3aedc02f31bb6c5769b2abeb52691343a1..b005ab220b9e0bcda2083f18766225c513379aa2 100644 (file)
@@ -4,12 +4,14 @@ DEPENDS += "${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk
 
 gtk_icon_cache_postinst() {
 if [ "x$D" != "x" ]; then
-       $INTERCEPT_DIR/postinst_intercept update_icon_cache ${PKG} mlprefix=${MLPREFIX} libdir=${libdir} \
-               base_libdir=${base_libdir}
+       $INTERCEPT_DIR/postinst_intercept update_icon_cache ${PKG} \
+               mlprefix=${MLPREFIX} \
+               libdir=${libdir} \
+               STAGING_LIBDIR_NATIVE=${STAGING_LIBDIR_NATIVE}
 else
 
        # Update the pixbuf loaders in case they haven't been registered yet
-       GDK_PIXBUF_MODULEDIR=${libdir}/gdk-pixbuf-2.0/2.10.0/loaders gdk-pixbuf-query-loaders --update-cache
+       GDK_PIXBUF_MODULEDIR=${libdir}/gdk-pixbuf-2.0/2.10.0/loaders ${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache
 
        for icondir in /usr/share/icons/* ; do
                if [ -d $icondir ] ; then
@@ -21,8 +23,10 @@ fi
 
 gtk_icon_cache_postrm() {
 if [ "x$D" != "x" ]; then
-       $INTERCEPT_DIR/postinst_intercept update_icon_cache ${PKG} mlprefix=${MLPREFIX} libdir=${libdir} \
-               base_libdir=${base_libdir}
+       $INTERCEPT_DIR/postinst_intercept update_icon_cache ${PKG} \
+               mlprefix=${MLPREFIX} \
+               libdir=${libdir} \
+               STAGING_LIBDIR_NATIVE=${STAGING_LIBDIR_NATIVE}
 else
        for icondir in /usr/share/icons/* ; do
                if [ -d $icondir ] ; then
index 349967d74ba078da7c67c4cc56087267eeaf4fce..18fd9fa68db4d828fff381033d83b34aa18a5227 100644 (file)
@@ -15,7 +15,7 @@ if [ "x$D" != "x" ]; then
 else
 
        # Update the pixbuf loaders in case they haven't been registered yet
-       GDK_PIXBUF_MODULEDIR=${libdir}/gdk-pixbuf-2.0/2.10.0/loaders gdk-pixbuf-query-loaders --update-cache
+       GDK_PIXBUF_MODULEDIR=${libdir}/gdk-pixbuf-2.0/2.10.0/loaders ${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache
 
        if [ -x ${bindir}/gtk-update-icon-cache ] && [ -d ${datadir}/icons ]; then
                for icondir in /usr/share/icons/*; do
@@ -46,7 +46,7 @@ python populate_packages_append() {
 }
 
 gdkpixbuf_complete() {
-       GDK_PIXBUF_FATAL_LOADER=1 ${STAGING_BINDIR_NATIVE}/gdk-pixbuf-query-loaders --update-cache || exit 1
+       GDK_PIXBUF_FATAL_LOADER=1 ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache || exit 1
 }
 
 #
index 87f5038f036175a247d7f3cbe28808d85330fadf..2f0ca49b353fcc89fbd1fa21276bef4a3da21f26 100644 (file)
@@ -49,7 +49,7 @@ PACKAGES =+ "${PN}-xlib"
 FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}"
 ALLOW_EMPTY_${PN}-xlib = "1"
 
-FILES_${PN} = "${bindir}/gdk-pixbuf-query-loaders \
+FILES_${PN} = "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \
        ${libdir}/lib*.so.*"
 
 FILES_${PN}-dev += " \
@@ -61,6 +61,7 @@ FILES_${PN}-dev += " \
 
 FILES_${PN}-dbg += " \
        ${libdir}/.debug/* \
+       ${libdir}/gdk-pixbuf-2.0/.debug/* \
        ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/.debug/* \
 "
 
@@ -80,6 +81,12 @@ python populate_packages_prepend () {
     d.appendVar("RDEPENDS_gdk-pixbuf-ptest", " " + packages)
 }
 
+do_install_append() {
+       # Move gdk-pixbuf-query-loaders into libdir so it is always available
+       # in multilib builds.
+       mv ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/
+}
+
 do_install_append_class-native() {
        find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \;
 
@@ -89,7 +96,7 @@ do_install_append_class-native() {
        create_wrapper ${D}/${bindir}/gdk-pixbuf-pixdata \
                GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache
 
-       create_wrapper ${D}/${bindir}/gdk-pixbuf-query-loaders \
+       create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \
                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
 }
index 8e17a6ac0ce8ba4744dd48ce3458aa770c8054b9..c02273d52a73b11d84fe5a0205a9480085929ff5 100644 (file)
@@ -1,8 +1,9 @@
 #!/bin/sh
 
 set -e
+
 # update native pixbuf loaders
-gdk-pixbuf-query-loaders --update-cache
+${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache
 
 for icondir in $D/usr/share/icons/*/ ; do
     if [ -d $icondir ] ; then
index 95bf4f90a3fe6706d603493c30134755624b205a..a8b4001069e9c2213c7e10a8946bcef31f3db536 100644 (file)
@@ -4,8 +4,6 @@ export GDK_PIXBUF_MODULEDIR=$D${libdir}/gdk-pixbuf-2.0/2.10.0/loaders
 export GDK_PIXBUF_FATAL_LOADER=1
 
 PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\
-    $D${bindir}/gdk-pixbuf-query-loaders \
+    $D${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \
     >$GDK_PIXBUF_MODULEDIR/../loaders.cache && \
     sed -i -e "s:$D::g" $GDK_PIXBUF_MODULEDIR/../loaders.cache
-
-