diff options
author | Ulrich Müller <ulm@gentoo.org> | 2020-02-14 15:50:18 +0100 |
---|---|---|
committer | Ulrich Müller <ulm@gentoo.org> | 2020-03-20 16:40:25 +0100 |
commit | 58cea2803d7aa7b1a98f72aa55b6221618dc5e5f (patch) | |
tree | 23e3688d9ba09dd1341cd44f809db5d15b764fdf /eclass/font.eclass | |
parent | sys-libs/glibc: Remove old (diff) | |
download | gentoo-58cea2803d7aa7b1a98f72aa55b6221618dc5e5f.tar.gz gentoo-58cea2803d7aa7b1a98f72aa55b6221618dc5e5f.tar.bz2 gentoo-58cea2803d7aa7b1a98f72aa55b6221618dc5e5f.zip |
font.eclass: Don't assign FONT_S in global scope, allow an array.
Accessing ${S} in global scope is not allowed by PMS, therefore remove
the global variable assignment of FONT_S which uses it. Add a fallback
to ${S} in font_src_install() instead.
Allow FONT_S to be an array, if there are multiple directories.
Support for whitespace-separated lists will be kept for some time,
and a QA warning will be shown.
Die if pushd or popd fails.
Closes: https://bugs.gentoo.org/613108
Closes: https://bugs.gentoo.org/709578
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Diffstat (limited to 'eclass/font.eclass')
-rw-r--r-- | eclass/font.eclass | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/eclass/font.eclass b/eclass/font.eclass index 1287f2273454..bf24701f12fc 100644 --- a/eclass/font.eclass +++ b/eclass/font.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: font.eclass @@ -25,10 +25,10 @@ EXPORT_FUNCTIONS pkg_setup src_install pkg_postinst pkg_postrm FONT_SUFFIX=${FONT_SUFFIX:-} # @ECLASS-VARIABLE: FONT_S -# @REQUIRED +# @DEFAULT_UNSET # @DESCRIPTION: -# Space delimited list of directories containing the fonts. -FONT_S=${FONT_S:-${S}} +# Directory containing the fonts. If unset, ${S} is used instead. +# Can also be an array of several directories. # @ECLASS-VARIABLE: FONT_PN # @DESCRIPTION: @@ -159,27 +159,39 @@ font_pkg_setup() { font_src_install() { local dir suffix commondoc - set -- ${FONT_S:-${S}} - if [[ $# -gt 1 ]]; then - # if we have multiple FONT_S elements then we want to recreate the dir - # structure + if [[ $(declare -p FONT_S 2>/dev/null) == "declare -a"* ]]; then + # recreate the directory structure if FONT_S is an array + for dir in "${FONT_S[@]}"; do + pushd "${dir}" > /dev/null || die "pushd ${dir} failed" + insinto "${FONTDIR}/${dir#"${S}"}" + for suffix in ${FONT_SUFFIX}; do + doins *.${suffix} + done + font_xfont_config "${dir}" + popd > /dev/null || die + done + elif [[ ${FONT_S/ } != "${FONT_S}" ]]; then + # backwards compatibility code, can be removed after 2021-02-14 + eqawarn "Using a space-separated list for FONT_S is deprecated." + eqawarn "Use a bash array instead if there are multiple directories." for dir in ${FONT_S}; do - pushd "${dir}" > /dev/null + pushd "${dir}" > /dev/null || die "pushd ${dir} failed" insinto "${FONTDIR}/${dir//${S}/}" for suffix in ${FONT_SUFFIX}; do doins *.${suffix} done font_xfont_config "${dir}" - popd > /dev/null + popd > /dev/null || die done else - pushd "${FONT_S}" > /dev/null + pushd "${FONT_S:-${S}}" > /dev/null \ + || die "pushd ${FONT_S:-${S}} failed" insinto "${FONTDIR}" for suffix in ${FONT_SUFFIX}; do doins *.${suffix} done font_xfont_config - popd > /dev/null + popd > /dev/null || die fi font_fontconfig |