1 |
spyderous |
1.1 |
# Copyright 1999-2005 Gentoo Foundation |
2 |
|
|
# Distributed under the terms of the GNU General Public License v2 |
3 |
spyderous |
1.45 |
# $Header: /var/cvsroot/gentoo-x86/eclass/x-modular.eclass,v 1.44 2006/02/15 21:07:00 spyderous Exp $ |
4 |
spyderous |
1.1 |
# |
5 |
|
|
# Author: Donnie Berkholz <spyderous@gentoo.org> |
6 |
|
|
# |
7 |
|
|
# This eclass is designed to reduce code duplication in the modularized X11 |
8 |
|
|
# ebuilds. |
9 |
spyderous |
1.32 |
# |
10 |
|
|
# Using this eclass: |
11 |
|
|
# |
12 |
|
|
# Inherit it. If you need to run autoreconf for any reason (e.g., your patches |
13 |
|
|
# apply to the autotools files rather than configure), set SNAPSHOT="yes". Set |
14 |
|
|
# CONFIGURE_OPTIONS to everything you want to pass to the configure script. |
15 |
|
|
# |
16 |
|
|
# If you have any patches to apply, set PATCHES to their locations and epatch |
17 |
|
|
# will apply them. It also handles epatch-style bulk patches, if you know how to |
18 |
|
|
# use them and set the correct variables. If you don't, read eutils.eclass. |
19 |
|
|
# |
20 |
|
|
# If you're creating a font package and the suffix of PN is not equal to the |
21 |
|
|
# subdirectory of /usr/share/fonts/ it should install into, set FONT_DIR to that |
22 |
|
|
# directory or directories. |
23 |
|
|
# |
24 |
spyderous |
1.33 |
# IMPORTANT: Both SNAPSHOT and FONT_DIR must be set _before_ the inherit. |
25 |
|
|
# |
26 |
spyderous |
1.32 |
# Pretty much everything else should be automatic. |
27 |
spyderous |
1.1 |
|
28 |
spyderous |
1.25 |
EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_preinst pkg_postinst pkg_postrm |
29 |
spyderous |
1.1 |
|
30 |
spyderous |
1.41 |
inherit eutils libtool toolchain-funcs flag-o-matic |
31 |
spyderous |
1.1 |
|
32 |
|
|
# Directory prefix to use for everything |
33 |
|
|
XDIR="/usr" |
34 |
|
|
|
35 |
joshuabaergen |
1.29 |
# Set up default patchset version(s) if necessary |
36 |
|
|
# x11-driver-patches |
37 |
|
|
if [[ -z "${XDPVER}" ]]; then |
38 |
|
|
XDPVER="1" |
39 |
|
|
fi |
40 |
|
|
|
41 |
spyderous |
1.1 |
IUSE="" |
42 |
|
|
HOMEPAGE="http://xorg.freedesktop.org/" |
43 |
spyderous |
1.44 |
|
44 |
|
|
# Set up SRC_URI for individual modular releases |
45 |
|
|
BASE_INDIVIDUAL_URI="http://xorg.freedesktop.org/releases/individual" |
46 |
|
|
if [[ ${CATEGORY} = x11-apps ]]; then |
47 |
|
|
SRC_URI="${SRC_URI} |
48 |
|
|
${BASE_INDIVIDUAL_URI}/app/${P}.tar.bz2" |
49 |
|
|
elif [[ ${CATEGORY} = app-doc ]]; then |
50 |
|
|
SRC_URI="${SRC_URI} |
51 |
|
|
${BASE_INDIVIDUAL_URI}/doc/${P}.tar.bz2" |
52 |
|
|
# x11-misc contains data and util, x11-themes contains data |
53 |
|
|
elif [[ ${CATEGORY} = x11-misc ]] || [[ ${CATEGORY} = x11-themes ]]; then |
54 |
|
|
SRC_URI="${SRC_URI} |
55 |
|
|
${BASE_INDIVIDUAL_URI}/data/${P}.tar.bz2 |
56 |
|
|
${BASE_INDIVIDUAL_URI}/util/${P}.tar.bz2" |
57 |
|
|
elif [[ ${CATEGORY} = x11-drivers ]]; then |
58 |
|
|
SRC_URI="${SRC_URI} |
59 |
|
|
${BASE_INDIVIDUAL_URI}/driver/${P}.tar.bz2" |
60 |
|
|
elif [[ ${CATEGORY} = media-fonts ]]; then |
61 |
|
|
SRC_URI="${SRC_URI} |
62 |
|
|
${BASE_INDIVIDUAL_URI}/font/${P}.tar.bz2" |
63 |
|
|
elif [[ ${CATEGORY} = x11-libs ]]; then |
64 |
|
|
SRC_URI="${SRC_URI} |
65 |
|
|
${BASE_INDIVIDUAL_URI}/lib/${P}.tar.bz2" |
66 |
|
|
elif [[ ${CATEGORY} = x11-proto ]]; then |
67 |
|
|
SRC_URI="${SRC_URI} |
68 |
|
|
${BASE_INDIVIDUAL_URI}/proto/${P}.tar.bz2" |
69 |
|
|
elif [[ ${CATEGORY} = x11-base ]]; then |
70 |
|
|
SRC_URI="${SRC_URI} |
71 |
|
|
${BASE_INDIVIDUAL_URI}/xserver/${P}.tar.bz2" |
72 |
|
|
fi |
73 |
|
|
|
74 |
|
|
# SRC_URI for full releases |
75 |
|
|
SRC_URI="${SRC_URI} |
76 |
spyderous |
1.45 |
http://xorg.freedesktop.org/releases/X11R7.0/src/everything/${P}.tar.bz2" |
77 |
spyderous |
1.44 |
|
78 |
spyderous |
1.1 |
SLOT="0" |
79 |
|
|
|
80 |
joshuabaergen |
1.40 |
# Set the license for the package. This can be overridden by setting |
81 |
|
|
# LICENSE after the inherit. |
82 |
|
|
LICENSE=${PN} |
83 |
|
|
|
84 |
spyderous |
1.1 |
# Set up shared dependencies |
85 |
spyderous |
1.28 |
if [[ -n "${SNAPSHOT}" ]]; then |
86 |
spyderous |
1.1 |
# FIXME: What's the minimal libtool version supporting arbitrary versioning? |
87 |
|
|
DEPEND="${DEPEND} |
88 |
|
|
>=sys-devel/autoconf-2.57 |
89 |
|
|
>=sys-devel/automake-1.7 |
90 |
|
|
>=sys-devel/libtool-1.5 |
91 |
|
|
>=sys-devel/m4-1.4" |
92 |
|
|
fi |
93 |
|
|
|
94 |
spyderous |
1.3 |
# If we're a font package, but not the font.alias one |
95 |
spyderous |
1.25 |
if [[ "${PN/#font-}" != "${PN}" ]] \ |
96 |
|
|
&& [[ "${PN}" != "font-alias" ]] \ |
97 |
|
|
&& [[ "${PN}" != "font-util" ]]; then |
98 |
spyderous |
1.4 |
# Activate font code in the rest of the eclass |
99 |
|
|
FONT="yes" |
100 |
|
|
|
101 |
spyderous |
1.3 |
RDEPEND="${RDEPEND} |
102 |
spyderous |
1.36 |
media-fonts/encodings |
103 |
spyderous |
1.30 |
x11-apps/mkfontscale |
104 |
|
|
x11-apps/mkfontdir" |
105 |
spyderous |
1.3 |
PDEPEND="${PDEPEND} |
106 |
|
|
media-fonts/font-alias" |
107 |
spyderous |
1.25 |
|
108 |
|
|
# Starting with 7.0RC3, we can specify the font directory |
109 |
|
|
# But oddly, we can't do the same for encodings or font-alias |
110 |
|
|
|
111 |
|
|
# Wrap in `if` so ebuilds can set it too |
112 |
|
|
if [[ -z ${FONT_DIR} ]]; then |
113 |
|
|
FONT_DIR=${PN##*-} |
114 |
|
|
|
115 |
|
|
fi |
116 |
|
|
|
117 |
|
|
# Fix case of font directories |
118 |
|
|
FONT_DIR=${FONT_DIR/ttf/TTF} |
119 |
|
|
FONT_DIR=${FONT_DIR/otf/OTF} |
120 |
|
|
FONT_DIR=${FONT_DIR/type1/Type1} |
121 |
|
|
FONT_DIR=${FONT_DIR/speedo/Speedo} |
122 |
|
|
|
123 |
|
|
# Set up configure option |
124 |
|
|
FONT_OPTIONS="--with-fontdir=\"/usr/share/fonts/${FONT_DIR}\"" |
125 |
|
|
|
126 |
|
|
if [[ -n "${FONT}" ]]; then |
127 |
|
|
if [[ ${PN##*-} = misc ]] || [[ ${PN##*-} = 75dpi ]] || [[ ${PN##*-} = 100dpi ]]; then |
128 |
|
|
IUSE="${IUSE} nls" |
129 |
|
|
fi |
130 |
|
|
fi |
131 |
spyderous |
1.3 |
fi |
132 |
|
|
|
133 |
spyderous |
1.7 |
# If we're a driver package |
134 |
spyderous |
1.12 |
if [[ "${PN/#xf86-video}" != "${PN}" ]] || [[ "${PN/#xf86-input}" != "${PN}" ]]; then |
135 |
joshuabaergen |
1.29 |
# Enable driver code in the rest of the eclass |
136 |
|
|
DRIVER="yes" |
137 |
|
|
|
138 |
|
|
# Add driver patchset to SRC_URI |
139 |
swegener |
1.37 |
SRC_URI="${SRC_URI} |
140 |
joshuabaergen |
1.29 |
http://dev.gentoo.org/~joshuabaergen/distfiles/x11-driver-patches-${XDPVER}.tar.bz2" |
141 |
spyderous |
1.7 |
fi |
142 |
|
|
|
143 |
spyderous |
1.41 |
# Debugging -- ignore packages that can't be built with debugging |
144 |
|
|
if [[ -z "${FONT}" ]] \ |
145 |
|
|
|| [[ "${PN/app-doc}" != "${PN}" ]] \ |
146 |
|
|
|| [[ "${PN/x11-proto}" != "${PN}" ]] \ |
147 |
|
|
|| [[ "${PN/util-macros}" != "${PN}" ]] \ |
148 |
|
|
|| [[ "${PN/xbitmaps}" != "${PN}" ]] \ |
149 |
|
|
|| [[ "${PN/xkbdata}" != "${PN}" ]] \ |
150 |
|
|
|| [[ "${PN/xorg-cf-files}" != "${PN}" ]] \ |
151 |
|
|
|| [[ "${PN/xcursor}" != "${PN}" ]] \ |
152 |
|
|
; then |
153 |
|
|
DEBUGGABLE="yes" |
154 |
|
|
IUSE="${IUSE} debug" |
155 |
|
|
if use debug; then |
156 |
|
|
RESTRICT="${RESTRICT} nostrip" |
157 |
|
|
fi |
158 |
|
|
fi |
159 |
|
|
|
160 |
spyderous |
1.1 |
DEPEND="${DEPEND} |
161 |
spyderous |
1.39 |
>=dev-util/pkgconfig-0.18" |
162 |
|
|
|
163 |
spyderous |
1.43 |
if [[ "${PN/util-macros}" = "${PN}" ]]; then |
164 |
spyderous |
1.39 |
DEPEND="${DEPEND} |
165 |
|
|
>=x11-misc/util-macros-0.99.2" |
166 |
|
|
fi |
167 |
spyderous |
1.1 |
|
168 |
spyderous |
1.21 |
# >=sys-apps/man-1.6b-r2 required to look in [0-8]x/ directories |
169 |
spyderous |
1.13 |
RDEPEND="${RDEPEND} |
170 |
joshuabaergen |
1.22 |
!<=x11-base/xorg-x11-6.9 |
171 |
spyderous |
1.21 |
>=sys-apps/man-1.6b-r2" |
172 |
spyderous |
1.13 |
# Provides virtual/x11 for temporary use until packages are ported |
173 |
spyderous |
1.1 |
# x11-base/x11-env" |
174 |
|
|
|
175 |
|
|
x-modular_unpack_source() { |
176 |
|
|
unpack ${A} |
177 |
|
|
cd ${S} |
178 |
joshuabaergen |
1.16 |
|
179 |
spyderous |
1.25 |
if [[ -n ${FONT_OPTIONS} ]]; then |
180 |
|
|
einfo "Detected font directory: ${FONT_DIR}" |
181 |
|
|
fi |
182 |
spyderous |
1.1 |
} |
183 |
|
|
|
184 |
|
|
x-modular_patch_source() { |
185 |
|
|
# Use standardized names and locations with bulk patching |
186 |
|
|
# Patch directory is ${WORKDIR}/patch |
187 |
|
|
# See epatch() in eutils.eclass for more documentation |
188 |
spyderous |
1.28 |
if [[ -z "${EPATCH_SUFFIX}" ]] ; then |
189 |
spyderous |
1.1 |
EPATCH_SUFFIX="patch" |
190 |
|
|
fi |
191 |
|
|
|
192 |
joshuabaergen |
1.29 |
# If this is a driver package we need to fix man page install location. |
193 |
|
|
# Running autoreconf will use the patched util-macros to make the |
194 |
|
|
# change for us, so we only need to patch if it is not going to run. |
195 |
|
|
if [[ -n "${DRIVER}" ]] && [[ "${SNAPSHOT}" != "yes" ]]; then |
196 |
|
|
PATCHES="${PATCHES} ${DISTDIR}/x11-driver-patches-${XDPVER}.tar.bz2" |
197 |
|
|
fi |
198 |
|
|
|
199 |
spyderous |
1.1 |
# For specific list of patches |
200 |
spyderous |
1.28 |
if [[ -n "${PATCHES}" ]] ; then |
201 |
spyderous |
1.1 |
for PATCH in ${PATCHES} |
202 |
|
|
do |
203 |
|
|
epatch ${PATCH} |
204 |
|
|
done |
205 |
|
|
# For non-default directory bulk patching |
206 |
spyderous |
1.28 |
elif [[ -n "${PATCH_LOC}" ]] ; then |
207 |
spyderous |
1.1 |
epatch ${PATCH_LOC} |
208 |
|
|
# For standard bulk patching |
209 |
spyderous |
1.28 |
elif [[ -d "${EPATCH_SOURCE}" ]] ; then |
210 |
spyderous |
1.1 |
epatch |
211 |
|
|
fi |
212 |
|
|
} |
213 |
|
|
|
214 |
|
|
x-modular_reconf_source() { |
215 |
|
|
# Run autoreconf for CVS snapshots only |
216 |
spyderous |
1.28 |
if [[ "${SNAPSHOT}" = "yes" ]] |
217 |
spyderous |
1.1 |
then |
218 |
|
|
# If possible, generate configure if it doesn't exist |
219 |
|
|
if [ -f "${S}/configure.ac" ] |
220 |
|
|
then |
221 |
|
|
einfo "Running autoreconf..." |
222 |
cardoe |
1.8 |
autoreconf -v --force --install |
223 |
spyderous |
1.1 |
fi |
224 |
|
|
fi |
225 |
|
|
|
226 |
|
|
} |
227 |
|
|
|
228 |
|
|
x-modular_src_unpack() { |
229 |
joshuabaergen |
1.29 |
if [[ ${PN:0:11} = "xorg-server" ]] || [[ -n "${DRIVER}" ]]; then |
230 |
|
|
if gcc-specs-now; then |
231 |
joshuabaergen |
1.26 |
msg="Do not emerge ${PN} without vanilla gcc!" |
232 |
|
|
eerror "$msg" |
233 |
|
|
die "$msg" |
234 |
|
|
fi |
235 |
joshuabaergen |
1.29 |
fi |
236 |
joshuabaergen |
1.26 |
|
237 |
spyderous |
1.1 |
x-modular_unpack_source |
238 |
|
|
x-modular_patch_source |
239 |
|
|
x-modular_reconf_source |
240 |
spyderous |
1.27 |
|
241 |
|
|
# Joshua Baergen - October 23, 2005 |
242 |
|
|
# Fix shared lib issues on MIPS, FBSD, etc etc |
243 |
|
|
elibtoolize |
244 |
spyderous |
1.1 |
} |
245 |
|
|
|
246 |
spyderous |
1.25 |
x-modular_font_configure() { |
247 |
|
|
if [[ -n "${FONT}" ]]; then |
248 |
|
|
# Might be worth adding an option to configure your desired font |
249 |
|
|
# and exclude all others. Also, should this USE be nls or minimal? |
250 |
|
|
if ! use nls; then |
251 |
|
|
FONT_OPTIONS="${FONT_OPTIONS} |
252 |
|
|
--disable-iso8859-2 |
253 |
|
|
--disable-iso8859-3 |
254 |
|
|
--disable-iso8859-4 |
255 |
|
|
--disable-iso8859-5 |
256 |
|
|
--disable-iso8859-6 |
257 |
|
|
--disable-iso8859-7 |
258 |
|
|
--disable-iso8859-8 |
259 |
|
|
--disable-iso8859-9 |
260 |
|
|
--disable-iso8859-10 |
261 |
|
|
--disable-iso8859-11 |
262 |
|
|
--disable-iso8859-12 |
263 |
|
|
--disable-iso8859-13 |
264 |
|
|
--disable-iso8859-14 |
265 |
|
|
--disable-iso8859-15 |
266 |
|
|
--disable-iso8859-16 |
267 |
|
|
--disable-jisx0201 |
268 |
|
|
--disable-koi8-r" |
269 |
|
|
fi |
270 |
|
|
fi |
271 |
|
|
} |
272 |
|
|
|
273 |
spyderous |
1.41 |
x-modular_debug_setup() { |
274 |
|
|
if [[ -n "${DEBUGGABLE}" ]]; then |
275 |
|
|
if use debug; then |
276 |
|
|
strip-flags |
277 |
spyderous |
1.42 |
append-flags -g |
278 |
spyderous |
1.41 |
fi |
279 |
|
|
fi |
280 |
|
|
} |
281 |
|
|
|
282 |
spyderous |
1.6 |
x-modular_src_configure() { |
283 |
spyderous |
1.25 |
x-modular_font_configure |
284 |
spyderous |
1.41 |
x-modular_debug_setup |
285 |
spyderous |
1.25 |
|
286 |
spyderous |
1.1 |
# If prefix isn't set here, .pc files cause problems |
287 |
spyderous |
1.28 |
if [[ -x ./configure ]]; then |
288 |
spyderous |
1.1 |
econf --prefix=${XDIR} \ |
289 |
|
|
--datadir=${XDIR}/share \ |
290 |
spyderous |
1.25 |
${FONT_OPTIONS} \ |
291 |
spyderous |
1.7 |
${DRIVER_OPTIONS} \ |
292 |
spyderous |
1.1 |
${CONFIGURE_OPTIONS} |
293 |
|
|
fi |
294 |
spyderous |
1.6 |
} |
295 |
|
|
|
296 |
|
|
x-modular_src_make() { |
297 |
spyderous |
1.1 |
emake || die "emake failed" |
298 |
|
|
} |
299 |
|
|
|
300 |
spyderous |
1.6 |
x-modular_src_compile() { |
301 |
|
|
x-modular_src_configure |
302 |
|
|
x-modular_src_make |
303 |
|
|
} |
304 |
|
|
|
305 |
spyderous |
1.1 |
x-modular_src_install() { |
306 |
|
|
# Install everything to ${XDIR} |
307 |
|
|
make \ |
308 |
|
|
DESTDIR="${D}" \ |
309 |
|
|
install |
310 |
|
|
# Shouldn't be necessary in XDIR=/usr |
311 |
|
|
# einstall forces datadir, so we need to re-force it |
312 |
|
|
# datadir=${XDIR}/share \ |
313 |
|
|
# mandir=${XDIR}/share/man \ |
314 |
spyderous |
1.7 |
|
315 |
|
|
# Don't install libtool archives for server modules |
316 |
|
|
if [[ -e ${D}/usr/lib/xorg/modules ]]; then |
317 |
|
|
find ${D}/usr/lib/xorg/modules -name '*.la' \ |
318 |
|
|
| xargs rm -f |
319 |
|
|
fi |
320 |
spyderous |
1.1 |
} |
321 |
spyderous |
1.2 |
|
322 |
spyderous |
1.4 |
x-modular_pkg_preinst() { |
323 |
|
|
if [[ -n "${FONT}" ]]; then |
324 |
|
|
discover_font_dirs |
325 |
|
|
fi |
326 |
|
|
} |
327 |
|
|
|
328 |
spyderous |
1.2 |
x-modular_pkg_postinst() { |
329 |
|
|
if [[ -n "${FONT}" ]]; then |
330 |
|
|
setup_fonts |
331 |
|
|
fi |
332 |
|
|
} |
333 |
|
|
|
334 |
spyderous |
1.25 |
x-modular_pkg_postrm() { |
335 |
|
|
if [[ -n "${FONT}" ]]; then |
336 |
|
|
cleanup_fonts |
337 |
|
|
fi |
338 |
|
|
} |
339 |
|
|
|
340 |
|
|
cleanup_fonts() { |
341 |
|
|
local ALLOWED_FILES="encodings.dir fonts.cache-1 fonts.dir fonts.scale" |
342 |
|
|
for DIR in ${FONT_DIR}; do |
343 |
|
|
unset KEEP_FONTDIR |
344 |
|
|
REAL_DIR=${ROOT}usr/share/fonts/${DIR} |
345 |
|
|
|
346 |
|
|
ebegin "Checking ${REAL_DIR} for useless files" |
347 |
|
|
pushd ${REAL_DIR} &> /dev/null |
348 |
|
|
for FILE in *; do |
349 |
|
|
unset MATCH |
350 |
|
|
for ALLOWED_FILE in ${ALLOWED_FILES}; do |
351 |
|
|
if [[ ${FILE} = ${ALLOWED_FILE} ]]; then |
352 |
|
|
# If it's allowed, then move on to the next file |
353 |
|
|
MATCH="yes" |
354 |
|
|
break |
355 |
|
|
fi |
356 |
|
|
done |
357 |
|
|
# If we found a match in allowed files, move on to the next file |
358 |
|
|
if [[ -n ${MATCH} ]]; then |
359 |
|
|
continue |
360 |
|
|
fi |
361 |
|
|
# If we get this far, there wasn't a match in the allowed files |
362 |
|
|
KEEP_FONTDIR="yes" |
363 |
|
|
# We don't need to check more files if we're already keeping it |
364 |
|
|
break |
365 |
|
|
done |
366 |
|
|
popd &> /dev/null |
367 |
|
|
# If there are no files worth keeping, then get rid of the dir |
368 |
|
|
if [[ -z "${KEEP_FONTDIR}" ]]; then |
369 |
|
|
rm -rf ${REAL_DIR} |
370 |
|
|
fi |
371 |
|
|
eend 0 |
372 |
|
|
done |
373 |
|
|
} |
374 |
|
|
|
375 |
spyderous |
1.2 |
setup_fonts() { |
376 |
|
|
if [[ ! -n "${FONT_DIRS}" ]]; then |
377 |
spyderous |
1.25 |
msg="FONT_DIRS is empty. The ebuild should set it to at least one subdir of /usr/share/fonts." |
378 |
|
|
eerror "${msg}" |
379 |
|
|
die "${msg}" |
380 |
spyderous |
1.2 |
fi |
381 |
|
|
|
382 |
|
|
create_fonts_scale |
383 |
|
|
create_fonts_dir |
384 |
|
|
fix_font_permissions |
385 |
|
|
create_font_cache |
386 |
|
|
} |
387 |
|
|
|
388 |
spyderous |
1.4 |
discover_font_dirs() { |
389 |
|
|
pushd ${IMAGE}/usr/share/fonts |
390 |
|
|
FONT_DIRS="$(find . -maxdepth 1 -mindepth 1 -type d)" |
391 |
|
|
FONT_DIRS="$(echo ${FONT_DIRS} | sed -e 's:./::g')" |
392 |
|
|
popd |
393 |
|
|
} |
394 |
|
|
|
395 |
spyderous |
1.2 |
create_fonts_scale() { |
396 |
|
|
ebegin "Creating fonts.scale files" |
397 |
|
|
local x |
398 |
|
|
for FONT_DIR in ${FONT_DIRS}; do |
399 |
|
|
x=${ROOT}/usr/share/fonts/${FONT_DIR} |
400 |
spyderous |
1.28 |
[[ -z "$(ls ${x}/)" ]] && continue |
401 |
|
|
[[ "$(ls ${x}/)" = "fonts.cache-1" ]] && continue |
402 |
spyderous |
1.2 |
|
403 |
|
|
# Only generate .scale files if truetype, opentype or type1 |
404 |
|
|
# fonts are present ... |
405 |
|
|
|
406 |
|
|
# First truetype (ttf,ttc) |
407 |
|
|
# NOTE: ttmkfdir does NOT work on type1 fonts (#53753) |
408 |
|
|
# Also, there is no way to regenerate Speedo/CID fonts.scale |
409 |
|
|
# <spyderous@gentoo.org> 2 August 2004 |
410 |
spyderous |
1.28 |
if [[ "${x/encodings}" = "${x}" ]] \ |
411 |
|
|
&& [[ -n "$(find ${x} -iname '*.tt[cf]' -print)" ]]; then |
412 |
|
|
if [[ -x ${ROOT}/usr/bin/ttmkfdir ]]; then |
413 |
spyderous |
1.2 |
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ROOT}/usr/$(get_libdir)" \ |
414 |
|
|
${ROOT}/usr/bin/ttmkfdir -x 2 \ |
415 |
|
|
-e ${ROOT}/usr/share/fonts/encodings/encodings.dir \ |
416 |
|
|
-o ${x}/fonts.scale -d ${x} |
417 |
|
|
# ttmkfdir fails on some stuff, so try mkfontscale if it does |
418 |
|
|
local ttmkfdir_return=$? |
419 |
|
|
else |
420 |
|
|
# We didn't use ttmkfdir at all |
421 |
|
|
local ttmkfdir_return=2 |
422 |
|
|
fi |
423 |
spyderous |
1.28 |
if [[ ${ttmkfdir_return} -ne 0 ]]; then |
424 |
spyderous |
1.2 |
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ROOT}/usr/$(get_libdir)" \ |
425 |
|
|
${ROOT}/usr/bin/mkfontscale \ |
426 |
|
|
-a /usr/share/fonts/encodings/encodings.dir \ |
427 |
|
|
-- ${x} |
428 |
|
|
fi |
429 |
|
|
# Next type1 and opentype (pfa,pfb,otf,otc) |
430 |
spyderous |
1.28 |
elif [[ "${x/encodings}" = "${x}" ]] \ |
431 |
|
|
&& [[ -n "$(find ${x} -iname '*.[po][ft][abcf]' -print)" ]]; then |
432 |
spyderous |
1.2 |
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ROOT}/usr/$(get_libdir)" \ |
433 |
|
|
${ROOT}/usr/bin/mkfontscale \ |
434 |
|
|
-a ${ROOT}/usr/share/fonts/encodings/encodings.dir \ |
435 |
|
|
-- ${x} |
436 |
|
|
fi |
437 |
|
|
done |
438 |
|
|
eend 0 |
439 |
|
|
} |
440 |
|
|
|
441 |
|
|
create_fonts_dir() { |
442 |
|
|
ebegin "Generating fonts.dir files" |
443 |
|
|
for FONT_DIR in ${FONT_DIRS}; do |
444 |
|
|
x=${ROOT}/usr/share/fonts/${FONT_DIR} |
445 |
spyderous |
1.28 |
[[ -z "$(ls ${x}/)" ]] && continue |
446 |
|
|
[[ "$(ls ${x}/)" = "fonts.cache-1" ]] && continue |
447 |
spyderous |
1.2 |
|
448 |
spyderous |
1.28 |
if [[ "${x/encodings}" = "${x}" ]]; then |
449 |
spyderous |
1.2 |
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ROOT}/usr/$(get_libdir)" \ |
450 |
|
|
${ROOT}/usr/bin/mkfontdir \ |
451 |
|
|
-e ${ROOT}/usr/share/fonts/encodings \ |
452 |
|
|
-e ${ROOT}/usr/share/fonts/encodings/large \ |
453 |
|
|
-- ${x} |
454 |
|
|
fi |
455 |
|
|
done |
456 |
|
|
eend 0 |
457 |
|
|
} |
458 |
|
|
|
459 |
|
|
fix_font_permissions() { |
460 |
|
|
ebegin "Fixing permissions" |
461 |
|
|
for FONT_DIR in ${FONT_DIRS}; do |
462 |
|
|
find ${ROOT}/usr/share/fonts/${FONT_DIR} -type f -name 'font.*' \ |
463 |
|
|
-exec chmod 0644 {} \; |
464 |
|
|
done |
465 |
|
|
eend 0 |
466 |
|
|
} |
467 |
|
|
|
468 |
|
|
create_font_cache() { |
469 |
|
|
# danarmak found out that fc-cache should be run AFTER all the above |
470 |
|
|
# stuff, as otherwise the cache is invalid, and has to be run again |
471 |
|
|
# as root anyway |
472 |
spyderous |
1.28 |
if [[ -x ${ROOT}/usr/bin/fc-cache ]]; then |
473 |
spyderous |
1.2 |
ebegin "Creating FC font cache" |
474 |
|
|
HOME="/root" ${ROOT}/usr/bin/fc-cache |
475 |
|
|
eend 0 |
476 |
|
|
fi |
477 |
|
|
} |