diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2019-10-07 08:26:02 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2019-10-16 10:44:26 +0200 |
commit | 3a6d02f463136bcb222738bc096115cdb121a53c (patch) | |
tree | 9c81d2c199dd44dee87ccc7f38bde7e7f33d1e3c /eclass/font.eclass | |
parent | dev-java/tomcat-servlet-api-8.0.53*: removed obsolete (diff) | |
download | gentoo-3a6d02f463136bcb222738bc096115cdb121a53c.tar.gz gentoo-3a6d02f463136bcb222738bc096115cdb121a53c.tar.bz2 gentoo-3a6d02f463136bcb222738bc096115cdb121a53c.zip |
font.eclass: Port to EAPI-7
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'eclass/font.eclass')
-rw-r--r-- | eclass/font.eclass | 75 |
1 files changed, 37 insertions, 38 deletions
diff --git a/eclass/font.eclass b/eclass/font.eclass index 1570bf3f6e19..18dcb3f14b41 100644 --- a/eclass/font.eclass +++ b/eclass/font.eclass @@ -4,16 +4,15 @@ # @ECLASS: font.eclass # @MAINTAINER: # fonts@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 } |