From: Kai Kang Date: Thu, 7 Jun 2018 09:01:59 +0000 (-0700) Subject: manpages.bbclass: Update RDEPENDS and post install scripts X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~17693 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=078900f2416202b677471b10b69c8defb0f14c8d;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git manpages.bbclass: Update RDEPENDS and post install scripts If a package installs manual files, it should update manual index cache after its installation. Add package 'man-db' to RDEPENDS which contains command 'mandb' to update the cache. And do the update in the post install scripts. Signed-off-by: Kai Kang Signed-off-by: Ross Burton --- diff --git a/meta/classes/manpages.bbclass b/meta/classes/manpages.bbclass index d16237b8983..50c254763e8 100644 --- a/meta/classes/manpages.bbclass +++ b/meta/classes/manpages.bbclass @@ -3,3 +3,35 @@ # tends to pull in the entire XML stack and other tools, so it's not enabled # by default. PACKAGECONFIG_append_class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'manpages', '', d)}" + +inherit qemu + +# usually manual files are packaged to ${PN}-doc except man-pages +MAN_PKG ?= "${PN}-doc" + +# only add man-db to RDEPENDS when manual files are built and installed +RDEPENDS_${MAN_PKG} += "${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'man-db', '', d)}" + +pkg_postinst_append_${MAN_PKG} () { + # only update manual page index caches when manual files are built and installed + if ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'true', 'false', d)}; then + if test -n "$D"; then + if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true','false', d)}; then + sed "s:\(\s\)/:\1$D/:g" $D${sysconfdir}/man_db.conf | ${@qemu_run_binary(d, '$D', '${bindir}/mandb')} -C - -u -q $D${mandir} + mkdir -p $D${localstatedir}/cache/man + mv $D${mandir}/index.db $D${localstatedir}/cache/man + else + $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX} + fi + else + mandb -q + fi + fi +} + +pkg_postrm_append_${MAN_PKG} () { + # only update manual page index caches when manual files are built and installed + if ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'true', 'false', d)}; then + mandb -q + fi +}