mirror of
https://git.yoctoproject.org/poky
synced 2026-03-06 23:39:40 +01:00
gio-module-cache: Add class for Gio modules
The new class uses gio-querymodules tool on postinst and postrm. This regenerates the module cache which is useful to avoid loading modules that are not needed at runtime: If a Gio module is not listed in the cache file it will always get loaded. * Add a postinst-intercept 'gio-module-cache': it runs gio-querymodules using qemuwrapper. This is required because the tool actually loads the modules to generate the cache. * Add a gio-module-cache class that adds postinstall and postrm scripts. In the sysroot population case use the new intercept. * Inherit the new class in glib-2.0, glib-networking and gconf. Fixes [YOCTO #9241]. (From OE-Core rev: 168cf5502a2dda78348cc9679e37bed0c69c0208) Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
0cda9d8c8d
commit
cef8bc9e80
37
meta/classes/gio-module-cache.bbclass
Normal file
37
meta/classes/gio-module-cache.bbclass
Normal file
@@ -0,0 +1,37 @@
|
||||
DEPENDS += "qemu-native"
|
||||
inherit qemu
|
||||
|
||||
GIO_MODULE_PACKAGES ??= "${PN}"
|
||||
|
||||
gio_module_cache_common() {
|
||||
if [ "x$D" != "x" ]; then
|
||||
$INTERCEPT_DIR/postinst_intercept update_gio_module_cache ${PKG} \
|
||||
mlprefix=${MLPREFIX} \
|
||||
binprefix=${MLPREFIX} \
|
||||
libdir=${libdir} \
|
||||
base_libdir=${base_libdir} \
|
||||
bindir=${bindir}
|
||||
else
|
||||
${libexecdir}/${MLPREFIX}gio-querymodules ${libdir}/gio/modules/
|
||||
fi
|
||||
}
|
||||
|
||||
python populate_packages_append () {
|
||||
packages = d.getVar('GIO_MODULE_PACKAGES', True).split()
|
||||
|
||||
for pkg in packages:
|
||||
bb.note("adding gio-module-cache postinst and postrm scripts to %s" % pkg)
|
||||
|
||||
postinst = d.getVar('pkg_postinst_%s' % pkg, True)
|
||||
if not postinst:
|
||||
postinst = '#!/bin/sh\n'
|
||||
postinst += d.getVar('gio_module_cache_common', True)
|
||||
d.setVar('pkg_postinst_%s' % pkg, postinst)
|
||||
|
||||
postrm = d.getVar('pkg_postrm_%s' % pkg, True)
|
||||
if not postrm:
|
||||
postrm = '#!/bin/sh\n'
|
||||
postrm += d.getVar('gio_module_cache_common', True)
|
||||
d.setVar('pkg_postrm_%s' % pkg, postrm)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user