From 69df75f268e2b3d5874f05e2b5a6125f6d990a03 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 25 Sep 2015 23:25:12 +0100 Subject: gdk-pixbuf: move gdk-pixbuf-query-loaders to $libdir for multilib safety 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 Signed-off-by: Richard Purdie --- meta/classes/gtk-icon-cache.bbclass | 14 +++++++++----- meta/classes/pixbufcache.bbclass | 4 ++-- meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb | 11 +++++++++-- 3 files changed, 20 insertions(+), 9 deletions(-) (limited to 'meta') diff --git a/meta/classes/gtk-icon-cache.bbclass b/meta/classes/gtk-icon-cache.bbclass index 12358e3aed..b005ab220b 100644 --- a/meta/classes/gtk-icon-cache.bbclass +++ b/meta/classes/gtk-icon-cache.bbclass @@ -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 diff --git a/meta/classes/pixbufcache.bbclass b/meta/classes/pixbufcache.bbclass index 349967d74b..18fd9fa68d 100644 --- a/meta/classes/pixbufcache.bbclass +++ b/meta/classes/pixbufcache.bbclass @@ -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 } # 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 87f5038f03..2f0ca49b35 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 @@ -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 } -- cgit 1.2.3-korg