| # |
| # Copyright OpenEmbedded Contributors |
| # |
| # SPDX-License-Identifier: MIT |
| # |
| |
| # |
| # This class will generate the proper postinst/postrm scriptlets for pixbuf |
| # packages. |
| # |
| |
| DEPENDS:append:class-target = " qemu-native" |
| inherit qemu |
| |
| PIXBUF_PACKAGES ??= "${PN}" |
| |
| PACKAGE_WRITE_DEPS += "qemu-native gdk-pixbuf-native" |
| |
| pixbufcache_common() { |
| if [ "x$D" != "x" ]; then |
| $INTERCEPT_DIR/postinst_intercept update_pixbuf_cache ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} libdir=${libdir} \ |
| bindir=${bindir} base_libdir=${base_libdir} |
| else |
| |
| # Update the pixbuf loaders in case they haven't been registered yet |
| ${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 |
| if [ -d ${icondir} ]; then |
| gtk-update-icon-cache -t -q ${icondir} |
| fi |
| done |
| fi |
| fi |
| } |
| |
| python populate_packages:append() { |
| pixbuf_pkgs = d.getVar('PIXBUF_PACKAGES').split() |
| |
| for pkg in pixbuf_pkgs: |
| bb.note("adding pixbuf postinst and postrm scripts to %s" % pkg) |
| postinst = d.getVar('pkg_postinst:%s' % pkg) or d.getVar('pkg_postinst') |
| if not postinst: |
| postinst = '#!/bin/sh\n' |
| postinst += d.getVar('pixbufcache_common') |
| d.setVar('pkg_postinst:%s' % pkg, postinst) |
| |
| postrm = d.getVar('pkg_postrm:%s' % pkg) or d.getVar('pkg_postrm') |
| if not postrm: |
| postrm = '#!/bin/sh\n' |
| postrm += d.getVar('pixbufcache_common') |
| d.setVar('pkg_postrm:%s' % pkg, postrm) |
| } |
| |
| gdkpixbuf_complete() { |
| GDK_PIXBUF_FATAL_LOADER=1 ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache || exit 1 |
| } |
| |
| DEPENDS:append:class-native = " gdk-pixbuf-native" |
| SYSROOT_PREPROCESS_FUNCS:append:class-native = " pixbufcache_sstate_postinst" |
| |
| pixbufcache_sstate_postinst() { |
| mkdir -p ${SYSROOT_DESTDIR}${bindir} |
| dest=${SYSROOT_DESTDIR}${bindir}/postinst-${PN} |
| echo '#!/bin/sh' > $dest |
| echo "${gdkpixbuf_complete}" >> $dest |
| chmod 0755 $dest |
| } |