/[gentoo-x86]/eclass/font.eclass
Gentoo

Contents of /eclass/font.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.31 - (show annotations) (download)
Sun Sep 16 07:07:52 2007 UTC (6 years, 7 months ago) by dirtyepic
Branch: MAIN
Changes since 1.30: +19 -5 lines
Hopefully the last permission handling change - now reports when changing a file's permissions, emulates chmod -c, and is all pretty-like.  Thanks to dberkholz for the suggestion.

1 # Copyright 1999-2007 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/eclass/font.eclass,v 1.30 2007/09/16 06:21:05 dirtyepic Exp $
4
5 # Author: foser <foser@gentoo.org>
6
7 # Font Eclass
8 #
9 # Eclass to make font installation uniform
10
11 inherit eutils
12
13 #
14 # Variable declarations
15 #
16
17 FONT_SUFFIX="" # Space delimited list of font suffixes to install
18
19 FONT_S="${S}" # Dir containing the fonts
20
21 FONT_PN="${PN}" # Last part of $FONTDIR
22
23 FONTDIR="/usr/share/fonts/${FONT_PN}" # This is where the fonts are installed
24
25 FONT_CONF="" # Space delimited list of fontconfig-2.4 file(s) to install
26
27 DOCS="" # Docs to install
28
29 IUSE="X"
30
31 DEPEND="X? ( x11-apps/mkfontdir )
32 media-libs/fontconfig"
33
34 #
35 # Public functions
36 #
37
38 font_xfont_config() {
39 # create Xfont files
40 if use X ; then
41 einfo "Creating fonts.scale & fonts.dir ..."
42 mkfontscale "${D}${FONTDIR}"
43 mkfontdir \
44 -e /usr/share/fonts/encodings \
45 -e /usr/share/fonts/encodings/large \
46 "${D}${FONTDIR}"
47 if [ -e "${FONT_S}/fonts.alias" ] ; then
48 doins "${FONT_S}/fonts.alias"
49 fi
50 fi
51 }
52
53 font_xft_config() {
54 if ! has_version '>=media-libs/fontconfig-2.4'; then
55 # create fontconfig cache
56 einfo "Creating fontconfig cache ..."
57 # Mac OS X has fc-cache at /usr/X11R6/bin
58 HOME="/root" fc-cache -f "${D}${FONTDIR}"
59 fi
60 }
61
62 font_fontconfig() {
63 local conffile
64 if [[ -n ${FONT_CONF} ]]; then
65 if has_version '>=media-libs/fontconfig-2.4'; then
66 insinto /etc/fonts/conf.avail/
67 for conffile in "${FONT_CONF}"; do
68 [[ -e ${conffile} ]] && doins ${conffile}
69 done
70 fi
71 fi
72 }
73
74 #
75 # Public inheritable functions
76 #
77
78 font_src_install() {
79 local suffix commondoc
80
81 cd "${FONT_S}"
82
83 insinto "${FONTDIR}"
84
85 for suffix in ${FONT_SUFFIX}; do
86 doins *.${suffix}
87 done
88
89 rm -f fonts.{dir,scale} encodings.dir
90
91 font_xfont_config
92 font_xft_config
93 font_fontconfig
94
95 cd "${S}"
96 dodoc ${DOCS} 2> /dev/null
97
98 # install common docs
99 for commondoc in COPYRIGHT README NEWS AUTHORS BUGS ChangeLog; do
100 [[ -s ${commondoc} ]] && dodoc ${commondoc}
101 done
102 }
103
104 font_pkg_setup() {
105 # make sure we get no collisions
106 # setup is not the nicest place, but preinst doesn't cut it
107 [[ -e "${FONTDIR}/fonts.cache-1" ]] && rm -f "${FONTDIR}/fonts.cache-1"
108 }
109
110 font_pkg_postinst() {
111 # unreadable font files = fontconfig segfaults
112 badperms="$( find /usr/share/fonts/ -type f \! -perm 0644 -print )"
113 if [[ -n ${badperms} ]]; then
114 echo
115 for fontfile in ${badperms}; do
116 ewarn $( chmod -v 0644 ${fontfile} )
117 done
118 echo
119 fi
120
121 if has_version '>=media-libs/fontconfig-2.4'; then
122 if [ ${ROOT} == "/" ]; then
123 ebegin "Updating global fontcache"
124 fc-cache -fs
125 eend $?
126 fi
127 fi
128 }
129
130 font_pkg_postrm() {
131 # unreadable font files = fontconfig segfaults
132 badperms="$( find /usr/share/fonts/ -type f \! -perm 0644 -print )"
133 if [[ -n ${badperms} ]]; then
134 echo
135 for fontfile in ${badperms}; do
136 ewarn $( chmod -v 0644 ${fontfile} )
137 done
138 echo
139 fi
140
141 if has_version '>=media-libs/fontconfig-2.4'; then
142 if [ ${ROOT} == "/" ]; then
143 ebegin "Updating global fontcache"
144 fc-cache -fs
145 eend $?
146 fi
147 fi
148 }
149
150 EXPORT_FUNCTIONS src_install pkg_setup pkg_postinst pkg_postrm

  ViewVC Help
Powered by ViewVC 1.1.20