From fd1517e2b51a170f2427122c6b95396db251d827 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 10 Aug 2022 14:35:29 +0100 Subject: classes: Update classes to match new bitbake class scope functionality Move classes to classes-global or classes-recipe as appropriate to take advantage of new bitbake functionality to check class scope/usage. (From OE-Core rev: f5c128008365e141082c129417eb72d2751e8045) Signed-off-by: Richard Purdie --- meta/classes-recipe/manpages.bbclass | 51 ++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 meta/classes-recipe/manpages.bbclass (limited to 'meta/classes-recipe/manpages.bbclass') diff --git a/meta/classes-recipe/manpages.bbclass b/meta/classes-recipe/manpages.bbclass new file mode 100644 index 0000000000..693fb53671 --- /dev/null +++ b/meta/classes-recipe/manpages.bbclass @@ -0,0 +1,51 @@ +# +# Copyright OpenEmbedded Contributors +# +# SPDX-License-Identifier: MIT +# + +# Inherit this class to enable or disable building and installation of manpages +# depending on whether 'api-documentation' is in DISTRO_FEATURES. Such building +# 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:${MAN_PKG}:append () { + # 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} + chown -R root:root $D${mandir} + + mkdir -p $D${localstatedir}/cache/man + cd $D${mandir} + find . -name index.db | while read index; do + mkdir -p $D${localstatedir}/cache/man/$(dirname ${index}) + mv ${index} $D${localstatedir}/cache/man/${index} + chown man:man $D${localstatedir}/cache/man/${index} + done + cd - + else + $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX} + fi + else + mandb -q + fi + fi +} + +pkg_postrm:${MAN_PKG}:append () { + # 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 +} -- cgit v1.2.3-54-g00ecf