1*4882a593Smuzhiyun# 2*4882a593Smuzhiyun# This class will generate the proper postinst/postrm scriptlets for pixbuf 3*4882a593Smuzhiyun# packages. 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunDEPENDS:append:class-target = " qemu-native" 7*4882a593Smuzhiyuninherit qemu 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunPIXBUF_PACKAGES ??= "${PN}" 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunPACKAGE_WRITE_DEPS += "qemu-native gdk-pixbuf-native" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunpixbufcache_common() { 14*4882a593Smuzhiyunif [ "x$D" != "x" ]; then 15*4882a593Smuzhiyun $INTERCEPT_DIR/postinst_intercept update_pixbuf_cache ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} libdir=${libdir} \ 16*4882a593Smuzhiyun bindir=${bindir} base_libdir=${base_libdir} 17*4882a593Smuzhiyunelse 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun # Update the pixbuf loaders in case they haven't been registered yet 20*4882a593Smuzhiyun ${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun if [ -x ${bindir}/gtk-update-icon-cache ] && [ -d ${datadir}/icons ]; then 23*4882a593Smuzhiyun for icondir in /usr/share/icons/*; do 24*4882a593Smuzhiyun if [ -d ${icondir} ]; then 25*4882a593Smuzhiyun gtk-update-icon-cache -t -q ${icondir} 26*4882a593Smuzhiyun fi 27*4882a593Smuzhiyun done 28*4882a593Smuzhiyun fi 29*4882a593Smuzhiyunfi 30*4882a593Smuzhiyun} 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunpython populate_packages:append() { 33*4882a593Smuzhiyun pixbuf_pkgs = d.getVar('PIXBUF_PACKAGES').split() 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun for pkg in pixbuf_pkgs: 36*4882a593Smuzhiyun bb.note("adding pixbuf postinst and postrm scripts to %s" % pkg) 37*4882a593Smuzhiyun postinst = d.getVar('pkg_postinst:%s' % pkg) or d.getVar('pkg_postinst') 38*4882a593Smuzhiyun if not postinst: 39*4882a593Smuzhiyun postinst = '#!/bin/sh\n' 40*4882a593Smuzhiyun postinst += d.getVar('pixbufcache_common') 41*4882a593Smuzhiyun d.setVar('pkg_postinst:%s' % pkg, postinst) 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun postrm = d.getVar('pkg_postrm:%s' % pkg) or d.getVar('pkg_postrm') 44*4882a593Smuzhiyun if not postrm: 45*4882a593Smuzhiyun postrm = '#!/bin/sh\n' 46*4882a593Smuzhiyun postrm += d.getVar('pixbufcache_common') 47*4882a593Smuzhiyun d.setVar('pkg_postrm:%s' % pkg, postrm) 48*4882a593Smuzhiyun} 49*4882a593Smuzhiyun 50*4882a593Smuzhiyungdkpixbuf_complete() { 51*4882a593SmuzhiyunGDK_PIXBUF_FATAL_LOADER=1 ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache || exit 1 52*4882a593Smuzhiyun} 53*4882a593Smuzhiyun 54*4882a593SmuzhiyunDEPENDS:append:class-native = " gdk-pixbuf-native" 55*4882a593SmuzhiyunSYSROOT_PREPROCESS_FUNCS:append:class-native = " pixbufcache_sstate_postinst" 56*4882a593Smuzhiyun 57*4882a593Smuzhiyunpixbufcache_sstate_postinst() { 58*4882a593Smuzhiyun mkdir -p ${SYSROOT_DESTDIR}${bindir} 59*4882a593Smuzhiyun dest=${SYSROOT_DESTDIR}${bindir}/postinst-${PN} 60*4882a593Smuzhiyun echo '#!/bin/sh' > $dest 61*4882a593Smuzhiyun echo "${gdkpixbuf_complete}" >> $dest 62*4882a593Smuzhiyun chmod 0755 $dest 63*4882a593Smuzhiyun} 64