diff options
| author | Jussi Kukkonen <jussi.kukkonen@intel.com> | 2016-03-23 10:59:07 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-28 15:55:49 +0100 |
| commit | cef8bc9e80cf5e3620df1cb54e6ac0305f8f92d9 (patch) | |
| tree | 8f7cdc32aef9e095522d946af2d52c8489ee87ad /meta/classes/gio-module-cache.bbclass | |
| parent | 0cda9d8c8ddf67bad1a043c3486e1febcab646cf (diff) | |
| download | poky-cef8bc9e80cf5e3620df1cb54e6ac0305f8f92d9.tar.gz | |
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>
Diffstat (limited to 'meta/classes/gio-module-cache.bbclass')
| -rw-r--r-- | meta/classes/gio-module-cache.bbclass | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/meta/classes/gio-module-cache.bbclass b/meta/classes/gio-module-cache.bbclass new file mode 100644 index 0000000000..91461b11e7 --- /dev/null +++ b/meta/classes/gio-module-cache.bbclass | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | DEPENDS += "qemu-native" | ||
| 2 | inherit qemu | ||
| 3 | |||
| 4 | GIO_MODULE_PACKAGES ??= "${PN}" | ||
| 5 | |||
| 6 | gio_module_cache_common() { | ||
| 7 | if [ "x$D" != "x" ]; then | ||
| 8 | $INTERCEPT_DIR/postinst_intercept update_gio_module_cache ${PKG} \ | ||
| 9 | mlprefix=${MLPREFIX} \ | ||
| 10 | binprefix=${MLPREFIX} \ | ||
| 11 | libdir=${libdir} \ | ||
| 12 | base_libdir=${base_libdir} \ | ||
| 13 | bindir=${bindir} | ||
| 14 | else | ||
| 15 | ${libexecdir}/${MLPREFIX}gio-querymodules ${libdir}/gio/modules/ | ||
| 16 | fi | ||
| 17 | } | ||
| 18 | |||
| 19 | python populate_packages_append () { | ||
| 20 | packages = d.getVar('GIO_MODULE_PACKAGES', True).split() | ||
| 21 | |||
| 22 | for pkg in packages: | ||
| 23 | bb.note("adding gio-module-cache postinst and postrm scripts to %s" % pkg) | ||
| 24 | |||
| 25 | postinst = d.getVar('pkg_postinst_%s' % pkg, True) | ||
| 26 | if not postinst: | ||
| 27 | postinst = '#!/bin/sh\n' | ||
| 28 | postinst += d.getVar('gio_module_cache_common', True) | ||
| 29 | d.setVar('pkg_postinst_%s' % pkg, postinst) | ||
| 30 | |||
| 31 | postrm = d.getVar('pkg_postrm_%s' % pkg, True) | ||
| 32 | if not postrm: | ||
| 33 | postrm = '#!/bin/sh\n' | ||
| 34 | postrm += d.getVar('gio_module_cache_common', True) | ||
| 35 | d.setVar('pkg_postrm_%s' % pkg, postrm) | ||
| 36 | } | ||
| 37 | |||
