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:
parent
0cda9d8c8d
commit
cef8bc9e80
|
@ -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)
|
||||||
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ PACKAGES =+ "${PN}-utils ${PN}-codegen"
|
||||||
LEAD_SONAME = "libglib-2.0.*"
|
LEAD_SONAME = "libglib-2.0.*"
|
||||||
FILES_${PN}-utils = "${bindir}/* ${datadir}/glib-2.0/gettext"
|
FILES_${PN}-utils = "${bindir}/* ${datadir}/glib-2.0/gettext"
|
||||||
|
|
||||||
inherit autotools gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion
|
inherit autotools gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache
|
||||||
|
|
||||||
S = "${WORKDIR}/glib-${PV}"
|
S = "${WORKDIR}/glib-${PV}"
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ PACKAGECONFIG[pkcs11] = "--with-pkcs11,--without-pkcs11,p11-kit"
|
||||||
|
|
||||||
EXTRA_OECONF = "--without-gnome-proxy"
|
EXTRA_OECONF = "--without-gnome-proxy"
|
||||||
|
|
||||||
inherit gnomebase gettext upstream-version-is-even
|
inherit gnomebase gettext upstream-version-is-even gio-module-cache
|
||||||
|
|
||||||
FILES_${PN} += "${libdir}/gio/modules/libgio*.so ${datadir}/dbus-1/services/"
|
FILES_${PN} += "${libdir}/gio/modules/libgio*.so ${datadir}/dbus-1/services/"
|
||||||
FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la"
|
FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la"
|
||||||
|
|
|
@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
|
||||||
|
|
||||||
DEPENDS = "glib-2.0 dbus dbus-glib libxml2 intltool-native"
|
DEPENDS = "glib-2.0 dbus dbus-glib libxml2 intltool-native"
|
||||||
|
|
||||||
inherit gnomebase gtk-doc gettext gobject-introspection
|
inherit gnomebase gtk-doc gettext gobject-introspection gio-module-cache
|
||||||
|
|
||||||
SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;name=archive \
|
SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;name=archive \
|
||||||
file://remove_plus_from_invalid_characters_list.patch \
|
file://remove_plus_from_invalid_characters_list.patch \
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D${libdir}:$D${base_libdir} \
|
||||||
|
$D${libexecdir}/${binprefix}gio-querymodules $D${libdir}/gio/modules/
|
||||||
|
|
Loading…
Reference in New Issue