192b42cb3SPatrick Williams#
292b42cb3SPatrick Williams# Copyright OpenEmbedded Contributors
392b42cb3SPatrick Williams#
492b42cb3SPatrick Williams# SPDX-License-Identifier: MIT
592b42cb3SPatrick Williams#
692b42cb3SPatrick Williams
792b42cb3SPatrick Williams#
892b42cb3SPatrick Williams# This class will generate the proper postinst/postrm scriptlets for font
992b42cb3SPatrick Williams# packages.
1092b42cb3SPatrick Williams#
1192b42cb3SPatrick Williams
1292b42cb3SPatrick WilliamsPACKAGE_WRITE_DEPS += "qemu-native"
1392b42cb3SPatrick Williamsinherit qemu
1492b42cb3SPatrick Williams
1592b42cb3SPatrick WilliamsFONT_PACKAGES ??= "${PN}"
16*220dafdbSAndrew GeisslerFONT_PACKAGES:class-native = ""
1792b42cb3SPatrick WilliamsFONT_EXTRA_RDEPENDS ?= "${MLPREFIX}fontconfig-utils"
1892b42cb3SPatrick WilliamsFONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"
1992b42cb3SPatrick WilliamsFONTCONFIG_CACHE_PARAMS ?= "-v"
2092b42cb3SPatrick Williams# You can change this to e.g. FC_DEBUG=16 to debug fc-cache issues,
2192b42cb3SPatrick Williams# something has to be set, because qemuwrapper is using this variable after -E
2292b42cb3SPatrick Williams# multiple variables aren't allowed because for qemu they are separated
2392b42cb3SPatrick Williams# by comma and in -n "$D" case they should be separated by space
2492b42cb3SPatrick WilliamsFONTCONFIG_CACHE_ENV ?= "FC_DEBUG=1"
2592b42cb3SPatrick Williamsfontcache_common() {
2692b42cb3SPatrick Williamsif [ -n "$D" ] ; then
2792b42cb3SPatrick Williams	$INTERCEPT_DIR/postinst_intercept update_font_cache ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} \
2892b42cb3SPatrick Williams		'bindir="${bindir}"' \
2992b42cb3SPatrick Williams		'libdir="${libdir}"' \
3092b42cb3SPatrick Williams		'libexecdir="${libexecdir}"' \
3192b42cb3SPatrick Williams		'base_libdir="${base_libdir}"' \
3292b42cb3SPatrick Williams		'fontconfigcachedir="${FONTCONFIG_CACHE_DIR}"' \
3392b42cb3SPatrick Williams		'fontconfigcacheparams="${FONTCONFIG_CACHE_PARAMS}"' \
3492b42cb3SPatrick Williams		'fontconfigcacheenv="${FONTCONFIG_CACHE_ENV}"'
3592b42cb3SPatrick Williamselse
3692b42cb3SPatrick Williams	${FONTCONFIG_CACHE_ENV} fc-cache ${FONTCONFIG_CACHE_PARAMS}
3792b42cb3SPatrick Williamsfi
3892b42cb3SPatrick Williams}
3992b42cb3SPatrick Williams
4092b42cb3SPatrick Williamspython () {
4192b42cb3SPatrick Williams    font_pkgs = d.getVar('FONT_PACKAGES').split()
4292b42cb3SPatrick Williams    deps = d.getVar("FONT_EXTRA_RDEPENDS")
4392b42cb3SPatrick Williams
4492b42cb3SPatrick Williams    for pkg in font_pkgs:
4592b42cb3SPatrick Williams        if deps: d.appendVar('RDEPENDS:' + pkg, ' '+deps)
4692b42cb3SPatrick Williams}
4792b42cb3SPatrick Williams
4892b42cb3SPatrick Williamspython add_fontcache_postinsts() {
4992b42cb3SPatrick Williams    for pkg in d.getVar('FONT_PACKAGES').split():
5092b42cb3SPatrick Williams        bb.note("adding fonts postinst and postrm scripts to %s" % pkg)
5192b42cb3SPatrick Williams        postinst = d.getVar('pkg_postinst:%s' % pkg) or d.getVar('pkg_postinst')
5292b42cb3SPatrick Williams        if not postinst:
5392b42cb3SPatrick Williams            postinst = '#!/bin/sh\n'
5492b42cb3SPatrick Williams        postinst += d.getVar('fontcache_common')
5592b42cb3SPatrick Williams        d.setVar('pkg_postinst:%s' % pkg, postinst)
5692b42cb3SPatrick Williams
5792b42cb3SPatrick Williams        postrm = d.getVar('pkg_postrm:%s' % pkg) or d.getVar('pkg_postrm')
5892b42cb3SPatrick Williams        if not postrm:
5992b42cb3SPatrick Williams            postrm = '#!/bin/sh\n'
6092b42cb3SPatrick Williams        postrm += d.getVar('fontcache_common')
6192b42cb3SPatrick Williams        d.setVar('pkg_postrm:%s' % pkg, postrm)
6292b42cb3SPatrick Williams}
6392b42cb3SPatrick Williams
6492b42cb3SPatrick WilliamsPACKAGEFUNCS =+ "add_fontcache_postinsts"
65