]> code.ossystems Code Review - openembedded-core.git/commitdiff
manpages.bbclass: Update RDEPENDS and post install scripts
authorKai Kang <kai.kang@windriver.com>
Thu, 7 Jun 2018 09:01:59 +0000 (02:01 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 15 Jun 2018 10:09:40 +0000 (11:09 +0100)
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 <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/classes/manpages.bbclass

index d16237b898361a8ce466b27bd62e7a1300ef84cf..50c254763e8934bec448dde91bffd48942e39a17 100644 (file)
@@ -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
+}