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

Contents of /eclass/font.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.30 - (hide annotations) (download)
Sun Sep 16 06:21:05 2007 UTC (7 years, 3 months ago) by dirtyepic
Branch: MAIN
Changes since 1.29: +7 -3 lines
Move permission checking to postinst/postrm, and check everything in /usr/share/fonts rather than just the current package.

1 dirtyepic 1.26 # Copyright 1999-2007 Gentoo Foundation
2 foser 1.1 # Distributed under the terms of the GNU General Public License v2
3 dirtyepic 1.30 # $Header: /var/cvsroot/gentoo-x86/eclass/font.eclass,v 1.29 2007/09/16 02:20:05 dirtyepic Exp $
4 foser 1.1
5     # Author: foser <foser@gentoo.org>
6    
7     # Font Eclass
8     #
9 foser 1.19 # Eclass to make font installation uniform
10 foser 1.1
11 kugelfang 1.7 inherit eutils
12    
13 foser 1.1 #
14     # Variable declarations
15     #
16    
17     FONT_SUFFIX="" # Space delimited list of font suffixes to install
18    
19 foser 1.2 FONT_S="${S}" # Dir containing the fonts
20    
21 robbat2 1.18 FONT_PN="${PN}" # Last part of $FONTDIR
22    
23 dirtyepic 1.24 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 robbat2 1.18
27 foser 1.1 DOCS="" # Docs to install
28    
29 swegener 1.15 IUSE="X"
30 foser 1.1
31 genstef 1.22 DEPEND="X? ( x11-apps/mkfontdir )
32 robbat2 1.18 media-libs/fontconfig"
33 foser 1.1
34 swegener 1.15 #
35 foser 1.2 # Public functions
36 foser 1.1 #
37    
38 foser 1.2 font_xfont_config() {
39 foser 1.1 # create Xfont files
40 foser 1.11 if use X ; then
41 vapier 1.10 einfo "Creating fonts.scale & fonts.dir ..."
42 robbat2 1.18 mkfontscale "${D}${FONTDIR}"
43 foser 1.1 mkfontdir \
44     -e /usr/share/fonts/encodings \
45     -e /usr/share/fonts/encodings/large \
46 robbat2 1.18 "${D}${FONTDIR}"
47 foser 1.11 if [ -e "${FONT_S}/fonts.alias" ] ; then
48 usata 1.8 doins "${FONT_S}/fonts.alias"
49 usata 1.3 fi
50 foser 1.1 fi
51 foser 1.2 }
52    
53     font_xft_config() {
54 foser 1.19 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 foser 1.2 }
61    
62 dirtyepic 1.24 font_fontconfig() {
63     local conffile
64 dirtyepic 1.25 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 dirtyepic 1.24 fi
72     }
73    
74 foser 1.2 #
75     # Public inheritable functions
76     #
77    
78     font_src_install() {
79 dirtyepic 1.23 local suffix commondoc
80 foser 1.2
81 usata 1.8 cd "${FONT_S}"
82 foser 1.2
83 robbat2 1.18 insinto "${FONTDIR}"
84 swegener 1.15
85 foser 1.2 for suffix in ${FONT_SUFFIX}; do
86 dirtyepic 1.28 doins *.${suffix}
87 foser 1.2 done
88    
89     rm -f fonts.{dir,scale} encodings.dir
90    
91     font_xfont_config
92     font_xft_config
93 dirtyepic 1.24 font_fontconfig
94 foser 1.2
95 usata 1.8 cd "${S}"
96 dberkholz 1.20 dodoc ${DOCS} 2> /dev/null
97 foser 1.11
98 dirtyepic 1.23 # install common docs
99     for commondoc in COPYRIGHT README NEWS AUTHORS BUGS ChangeLog; do
100 dirtyepic 1.24 [[ -s ${commondoc} ]] && dodoc ${commondoc}
101 dirtyepic 1.23 done
102 foser 1.1 }
103    
104 foser 1.12 font_pkg_setup() {
105 dirtyepic 1.24 # make sure we get no collisions
106 foser 1.12 # setup is not the nicest place, but preinst doesn't cut it
107 dberkholz 1.20 [[ -e "${FONTDIR}/fonts.cache-1" ]] && rm -f "${FONTDIR}/fonts.cache-1"
108 foser 1.19 }
109    
110     font_pkg_postinst() {
111 dirtyepic 1.30 find /usr/share/fonts/ -type f \! -perm 0644 -print0 \
112     | xargs -0 chmod 0644 2&>/dev/null
113    
114 foser 1.19 if has_version '>=media-libs/fontconfig-2.4'; then
115     if [ ${ROOT} == "/" ]; then
116     ebegin "Updating global fontcache"
117 dirtyepic 1.26 fc-cache -fs
118 foser 1.19 eend $?
119     fi
120     fi
121     }
122    
123     font_pkg_postrm() {
124 dirtyepic 1.30 find /usr/share/fonts/ -type f \! -perm 0644 -print0 \
125     | xargs -0 chmod 0644 2&>/dev/null
126    
127 foser 1.19 if has_version '>=media-libs/fontconfig-2.4'; then
128     if [ ${ROOT} == "/" ]; then
129     ebegin "Updating global fontcache"
130 dirtyepic 1.26 fc-cache -fs
131 foser 1.19 eend $?
132     fi
133     fi
134 foser 1.12 }
135    
136 foser 1.19 EXPORT_FUNCTIONS src_install pkg_setup pkg_postinst pkg_postrm

  ViewVC Help
Powered by ViewVC 1.1.20