mirror of
https://git.yoctoproject.org/poky
synced 2026-02-06 16:56:37 +01:00
bitbake librsvg-native would fail with an error about missing icu-native. The reason is that bitbake doesn't directly parse setscene dependencies. This change ensures bitbake does see the dependencies and avoids the error. Ideally we'd teach bitbake about those but that is a significant and complex change so this resolves the problem for now. [YOCTO #5926] (From OE-Core rev: 33fa7c8f28d343ecec354a551d45f23643becd59) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
71 lines
2.6 KiB
Plaintext
71 lines
2.6 KiB
Plaintext
#
|
|
# This class will generate the proper postinst/postrm scriptlets for pixbuf
|
|
# packages.
|
|
#
|
|
|
|
DEPENDS += "qemu-native"
|
|
inherit qemu
|
|
|
|
PIXBUF_PACKAGES ??= "${PN}"
|
|
|
|
pixbufcache_common() {
|
|
if [ "x$D" != "x" ]; then
|
|
$INTERCEPT_DIR/postinst_intercept update_pixbuf_cache ${PKG} mlprefix=${MLPREFIX} libdir=${libdir} \
|
|
bindir=${bindir} base_libdir=${base_libdir}
|
|
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
|
|
|
|
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', True).split()
|
|
|
|
for pkg in pixbuf_pkgs:
|
|
bb.note("adding pixbuf postinst and postrm scripts to %s" % pkg)
|
|
postinst = d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True)
|
|
if not postinst:
|
|
postinst = '#!/bin/sh\n'
|
|
postinst += d.getVar('pixbufcache_common', True)
|
|
d.setVar('pkg_postinst_%s' % pkg, postinst)
|
|
|
|
postrm = d.getVar('pkg_postrm_%s' % pkg, True) or d.getVar('pkg_postrm', True)
|
|
if not postrm:
|
|
postrm = '#!/bin/sh\n'
|
|
postrm += d.getVar('pixbufcache_common', True)
|
|
d.setVar('pkg_postrm_%s' % pkg, postrm)
|
|
}
|
|
|
|
#
|
|
# Add a sstate postinst hook to update the cache for native packages
|
|
#
|
|
SSTATEPOSTINSTFUNCS_append_class-native = " pixbufcache_sstate_postinst"
|
|
|
|
pixbufcache_sstate_postinst() {
|
|
if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
|
|
then
|
|
gdk-pixbuf-query-loaders --update-cache
|
|
fi
|
|
}
|
|
|
|
# Add all of the dependencies of gdk-pixbuf as dependencies of
|
|
# do_populate_sysroot_setscene so that pixbufcache_sstate_postinst can work
|
|
# (otherwise gdk-pixbuf-query-loaders may not exist or link). Only add
|
|
# gdk-pixbuf-native if we're not building gdk-pixbuf itself.
|
|
#
|
|
# Packages that use this class should extend this variable with their runtime
|
|
# dependencies.
|
|
PIXBUFCACHE_SYSROOT_DEPS = ""
|
|
PIXBUFCACHE_SYSROOT_DEPS_class-native = "${@['gdk-pixbuf-native:do_populate_sysroot_setscene', '']['${BPN}' == 'gdk-pixbuf']} glib-2.0-native:do_populate_sysroot_setscene libffi-native:do_populate_sysroot_setscene libpng-native:do_populate_sysroot_setscene zlib-native:do_populate_sysroot_setscene"
|
|
do_populate_sysroot_setscene[depends] += "${PIXBUFCACHE_SYSROOT_DEPS}"
|
|
do_populate_sysroot[depends] += "${@d.getVar('PIXBUFCACHE_SYSROOT_DEPS', True).replace('_setscene','')}"
|