commit:     3a6d02f463136bcb222738bc096115cdb121a53c
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  7 06:26:02 2019 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Oct 16 08:44:26 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a6d02f4

font.eclass: Port to EAPI-7

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 eclass/font.eclass | 75 +++++++++++++++++++++++++++---------------------------
 1 file changed, 37 insertions(+), 38 deletions(-)

diff --git a/eclass/font.eclass b/eclass/font.eclass
index 1570bf3f6e1..18dcb3f14b4 100644
--- a/eclass/font.eclass
+++ b/eclass/font.eclass
@@ -4,16 +4,15 @@
 # @ECLASS: font.eclass
 # @MAINTAINER:
 # fo...@gentoo.org
-# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6
+# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7
 # @BLURB: Eclass to make font installation uniform
 
 case ${EAPI:-0} in
-       0|1|2|3|4|5|6) ;;
-       *)             die "EAPI ${EAPI} is not supported by font.eclass." ;;
+       0|1|2|3|4|5|6) inherit eutils ;;
+       7) ;;
+       *) die "EAPI ${EAPI} is not supported by font.eclass." ;;
 esac
 
-inherit eutils
-
 EXPORT_FUNCTIONS pkg_setup src_install pkg_postinst pkg_postrm
 
 # @ECLASS-VARIABLE: FONT_SUFFIX
@@ -67,15 +66,15 @@ fi
 # Generate Xorg font files (mkfontscale/mkfontdir).
 font_xfont_config() {
        local dir_name
-       if has X ${IUSE//+} && use X ; then
+       if in_iuse X && use X ; then
                dir_name="${1:-${FONT_PN}}"
                ebegin "Creating fonts.scale & fonts.dir in ${dir_name##*/}"
-               rm -f 
"${ED}${FONTDIR}/${1//${S}/}"/{fonts.{dir,scale},encodings.dir}
-               mkfontscale "${ED}${FONTDIR}/${1//${S}/}"
+               rm -f 
"${ED%/}/${FONTDIR}/${1//${S}/}"/{fonts.{dir,scale},encodings.dir}
+               mkfontscale "${ED%/}/${FONTDIR}/${1//${S}/}"
                mkfontdir \
                        -e ${EPREFIX}/usr/share/fonts/encodings \
                        -e ${EPREFIX}/usr/share/fonts/encodings/large \
-                       "${ED}${FONTDIR}/${1//${S}/}"
+                       "${ED%/}/${FONTDIR}/${1//${S}/}"
                eend $?
                if [[ -e fonts.alias ]] ; then
                        doins fonts.alias
@@ -105,7 +104,7 @@ font_cleanup_dirs() {
        local d f g generated candidate otherfile
 
        ebegin "Cleaning up font directories"
-       find -L "${EROOT}"usr/share/fonts/ -type d -print0 | while read -d 
$'\0' d; do
+       find -L "${EROOT%/}"/usr/share/fonts/ -type d -print0 | while read -d 
$'\0' d; do
                candidate=false
                otherfile=false
                for f in "${d}"/*; do
@@ -162,7 +161,7 @@ font_pkg_setup() {
 
        # make sure we get no collisions
        # setup is not the nicest place, but preinst doesn't cut it
-       [[ -e "${EROOT}/${FONTDIR}/fonts.cache-1" ]] && rm -f 
"${EROOT}/${FONTDIR}/fonts.cache-1"
+       [[ -e "${EROOT%/}/${FONTDIR}/fonts.cache-1" ]] && rm -f 
"${EROOT%/}/${FONTDIR}/fonts.cache-1"
 }
 
 # @FUNCTION: font_src_install
@@ -204,36 +203,47 @@ font_src_install() {
        done
 }
 
+# @FUNCTION: _update_fontcache
+# @DESCRIPTION:
+# Updates fontcache if !prefix and media-libs/fontconfig installed
+_update_fontcache() {
+       # unreadable font files = fontconfig segfaults
+       find "${EROOT%/}"/usr/share/fonts/ -type f '!' -perm 0644 \
+               -exec chmod -v 0644 2>/dev/null {} + || die "failed to fix font 
files perms"
+
+       if [[ -z ${ROOT%/} ]] ; then
+               if has_version media-libs/fontconfig ; then
+                       ebegin "Updating global fontcache"
+                       fc-cache -fs
+                       if ! eend $? ; then
+                               die "failed to update global fontcache"
+                       fi
+               else
+                       einfo "Skipping fontcache update (media-libs/fontconfig 
not installed)"
+               fi
+       else
+               einfo "Skipping fontcache update (ROOT != /)"
+       fi
+}
+
 # @FUNCTION: font_pkg_postinst
 # @DESCRIPTION:
 # The font pkg_postinst function.
 font_pkg_postinst() {
-       # unreadable font files = fontconfig segfaults
-       find "${EROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0 \
-               | xargs -0 chmod -v 0644 2>/dev/null
-
        if [[ -n ${FONT_CONF[@]} ]]; then
                local conffile
-               echo
                elog "The following fontconfig configuration files have been 
installed:"
                elog
                for conffile in "${FONT_CONF[@]}"; do
-                       if [[ -e ${EROOT}etc/fonts/conf.avail/$(basename 
${conffile}) ]]; then
-                               elog "  $(basename ${conffile})"
+                       if [[ -e 
"${EROOT%/}"/etc/fonts/conf.avail/${conffile##*/} ]]; then
+                               elog "  ${conffile##*/}"
                        fi
                done
                elog
                elog "Use \`eselect fontconfig\` to enable/disable them."
-               echo
        fi
 
-       if has_version media-libs/fontconfig && [[ ${ROOT} == / ]]; then
-               ebegin "Updating global fontcache"
-               fc-cache -fs
-               eend $?
-       else
-               einfo "Skipping fontcache update (media-libs/fontconfig is not 
installed or ROOT != /)"
-       fi
+       _update_fontcache
 }
 
 # @FUNCTION: font_pkg_postrm
@@ -241,16 +251,5 @@ font_pkg_postinst() {
 # The font pkg_postrm function.
 font_pkg_postrm() {
        font_cleanup_dirs
-
-       # unreadable font files = fontconfig segfaults
-       find "${EROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0 \
-               | xargs -0 chmod -v 0644 2>/dev/null
-
-       if has_version media-libs/fontconfig && [[ ${ROOT} == / ]]; then
-               ebegin "Updating global fontcache"
-               fc-cache -fs
-               eend $?
-       else
-               einfo "Skipping fontcache update (media-libs/fontconfig is not 
installed or ROOT != /)"
-       fi
+       _update_fontcache
 }

Reply via email to