xref: /openbmc/openbmc/poky/meta/classes-recipe/manpages.bbclass (revision 92b42cb35d755f8cfe6c17d403711a536e0f0721)
1*92b42cb3SPatrick Williams#
2*92b42cb3SPatrick Williams# Copyright OpenEmbedded Contributors
3*92b42cb3SPatrick Williams#
4*92b42cb3SPatrick Williams# SPDX-License-Identifier: MIT
5*92b42cb3SPatrick Williams#
6*92b42cb3SPatrick Williams
7*92b42cb3SPatrick Williams# Inherit this class to enable or disable building and installation of manpages
8*92b42cb3SPatrick Williams# depending on whether 'api-documentation' is in DISTRO_FEATURES. Such building
9*92b42cb3SPatrick Williams# tends to pull in the entire XML stack and other tools, so it's not enabled
10*92b42cb3SPatrick Williams# by default.
11*92b42cb3SPatrick WilliamsPACKAGECONFIG:append:class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'manpages', '', d)}"
12*92b42cb3SPatrick Williams
13*92b42cb3SPatrick Williamsinherit qemu
14*92b42cb3SPatrick Williams
15*92b42cb3SPatrick Williams# usually manual files are packaged to ${PN}-doc except man-pages
16*92b42cb3SPatrick WilliamsMAN_PKG ?= "${PN}-doc"
17*92b42cb3SPatrick Williams
18*92b42cb3SPatrick Williams# only add man-db to RDEPENDS when manual files are built and installed
19*92b42cb3SPatrick WilliamsRDEPENDS:${MAN_PKG} += "${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'man-db', '', d)}"
20*92b42cb3SPatrick Williams
21*92b42cb3SPatrick Williamspkg_postinst:${MAN_PKG}:append () {
22*92b42cb3SPatrick Williams	# only update manual page index caches when manual files are built and installed
23*92b42cb3SPatrick Williams	if ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'true', 'false', d)}; then
24*92b42cb3SPatrick Williams		if test -n "$D"; then
25*92b42cb3SPatrick Williams			if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
26*92b42cb3SPatrick Williams				sed "s:\(\s\)/:\1$D/:g" $D${sysconfdir}/man_db.conf | ${@qemu_run_binary(d, '$D', '${bindir}/mandb')} -C - -u -q $D${mandir}
27*92b42cb3SPatrick Williams				chown -R root:root $D${mandir}
28*92b42cb3SPatrick Williams
29*92b42cb3SPatrick Williams				mkdir -p $D${localstatedir}/cache/man
30*92b42cb3SPatrick Williams				cd $D${mandir}
31*92b42cb3SPatrick Williams				find . -name index.db | while read index; do
32*92b42cb3SPatrick Williams					mkdir -p $D${localstatedir}/cache/man/$(dirname ${index})
33*92b42cb3SPatrick Williams					mv ${index} $D${localstatedir}/cache/man/${index}
34*92b42cb3SPatrick Williams					chown man:man $D${localstatedir}/cache/man/${index}
35*92b42cb3SPatrick Williams				done
36*92b42cb3SPatrick Williams				cd -
37*92b42cb3SPatrick Williams			else
38*92b42cb3SPatrick Williams				$INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
39*92b42cb3SPatrick Williams			fi
40*92b42cb3SPatrick Williams		else
41*92b42cb3SPatrick Williams			mandb -q
42*92b42cb3SPatrick Williams		fi
43*92b42cb3SPatrick Williams	fi
44*92b42cb3SPatrick Williams}
45*92b42cb3SPatrick Williams
46*92b42cb3SPatrick Williamspkg_postrm:${MAN_PKG}:append () {
47*92b42cb3SPatrick Williams	# only update manual page index caches when manual files are built and installed
48*92b42cb3SPatrick Williams	if ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'true', 'false', d)}; then
49*92b42cb3SPatrick Williams		mandb -q
50*92b42cb3SPatrick Williams	fi
51*92b42cb3SPatrick Williams}
52