summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2019-10-07 08:26:02 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2019-10-16 10:44:26 +0200
commit3a6d02f463136bcb222738bc096115cdb121a53c (patch)
tree9c81d2c199dd44dee87ccc7f38bde7e7f33d1e3c /eclass/font.eclass
parentdev-java/tomcat-servlet-api-8.0.53*: removed obsolete (diff)
downloadgentoo-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.eclass75
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
}