--- /home/pva/overlays/gentoo-x86/eclass/font.eclass 2009-09-27 14:31:09.000000000 +0400 +++ font.eclass 2009-10-12 22:43:16.000000000 +0400 @@ -38,6 +38,15 @@ # This is where the fonts are installed FONTDIR=${FONTDIR:-/usr/share/fonts/${FONT_PN}} +# @ECLASS-VARIABLE: FONTDIR_ATTRIBUTES +# @DESCRIPTION: +# Font path element attributes, such as 'unscaled'. Also new 'pri'attribute is +# supported for ordering (lower pri - closer to top fondir will be). Users may +# override fontdir attributes defining ${PN//[-+]/_}_FONTDIR_ATTRIBUTES either +# on command line in /etc/make.conf. In case FONTDIR_ATTRIBUTES=none, symlink +# will not be created. +FONTDIR_ATTRIBUTES=${FONTDIR_ATTRIBUTES:-} + # @ECLASS-VARIABLE: FONT_CONF # @DESCRIPTION: # Array, which element(s) is(are) path(s) of fontconfig-2.4 file(s) to install @@ -103,6 +112,40 @@ fi } +# @FUNCTION: font_do_fontpath +# @USAGE: [fontdir] +# @DESCRIPTION: +# Create font catalogue symlinks. +font_do_fontpath() { + if use X; then + FONTDIR=${1:-${FONTDIR}} + + local FA + eval FA="\$${PN//[-+]/_}_FONTDIR_ATTRIBUTES" + [[ -n ${FA} ]] && FONTDIR_ATTRIBUTES=${FA} + + # Do not create symlink + [[ ${FONTDIR_ATTRIBUTES} == none ]] && return + + if [[ -n ${FONTDIR_ATTRIBUTES} ]]; then + FONTDIR=${FONTDIR}:${FONTDIR_ATTRIBUTES} + else + case ${FONTDIR##*/} in + misc) + FONTDIR="${FONTDIR}:unscaled:pri=10" ;; + 75dpi) + FONTDIR="${FONTDIR}:unscaled:pri=20" ;; + 100dpi) + FONTDIR="${FONTDIR}:unscaled:pri=30" ;; + *) + ;; + esac + fi + + dosym "${FONTDIR%%:*}" "/etc/X11/fontpath.d/${FONTDIR##*/}" + fi +} + # # Public inheritable functions # @@ -126,6 +169,7 @@ font_xfont_config font_xft_config font_fontconfig + font_do_fontpath cd "${S}" dodoc ${DOCS} 2> /dev/null