/[gentoo-x86]/eclass/x-modular.eclass
Gentoo

Contents of /eclass/x-modular.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.100 - (hide annotations) (download)
Wed May 28 01:48:10 2008 UTC (6 years, 4 months ago) by dberkholz
Branch: MAIN
Changes since 1.99: +11 -25 lines
Change the MODULE setup to a case statement. Thanks to Bo ├śrsted Andresen, who finally got me to do it.

1 spyderous 1.1 # Copyright 1999-2005 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 dberkholz 1.98 # $Header: /var/cvsroot/gentoo-x86/eclass/x-modular.eclass,v 1.97 2008/05/09 07:18:19 dberkholz Exp $
4 spyderous 1.1 #
5 dberkholz 1.91 # @ECLASS: x-modular.eclass
6     # @MAINTAINER:
7     # Donnie Berkholz <dberkholz@gentoo.org>, x11@gentoo.org
8     # @BLURB: Reduces code duplication in the modularized X11 ebuilds.
9     # @DESCRIPTION:
10     # This eclass makes trivial X ebuilds possible for apps, fonts, drivers,
11     # and more. Many things that would normally be done in various functions
12     # can be accessed by setting variables instead, such as patching,
13     # running eautoreconf, passing options to configure and installing docs.
14 spyderous 1.1 #
15 dberkholz 1.91 # All you need to do in a basic ebuild is inherit this eclass and set
16     # DESCRIPTION, KEYWORDS and RDEPEND/DEPEND. If your package is hosted
17     # with the other X packages, you don't need to set SRC_URI. Pretty much
18     # everything else should be automatic.
19    
20     # @ECLASS-VARIABLE: XDIR
21     # @DESCRIPTION:
22     # Directory prefix to use for everything. If you want to install to a
23     # non-default prefix (e.g., /opt/xorg), change XDIR. This has not been
24     # recently tested. You may need to uncomment the setting of datadir and
25     # mandir in x-modular_src_install() or add it back in if it's no longer
26     # there. You may also want to change the SLOT.
27 spyderous 1.1 XDIR="/usr"
28    
29     IUSE=""
30     HOMEPAGE="http://xorg.freedesktop.org/"
31 spyderous 1.44
32 dberkholz 1.93 if [[ -z ${SNAPSHOT} ]]; then
33 dberkholz 1.91 # @ECLASS-VARIABLE: SNAPSHOT
34     # @DESCRIPTION:
35     # If set to 'yes' and configure.ac exists, eautoreconf will run. Set
36     # before inheriting this eclass.
37 dberkholz 1.93 SNAPSHOT="no"
38     fi
39 dberkholz 1.91
40 dberkholz 1.87 if [[ ${PV} = 9999* ]]; then
41     GIT_ECLASS="git"
42     SNAPSHOT="yes"
43     SRC_URI=""
44     fi
45    
46 spyderous 1.44 # Set up SRC_URI for individual modular releases
47     BASE_INDIVIDUAL_URI="http://xorg.freedesktop.org/releases/individual"
48 dberkholz 1.99 # @ECLASS-VARIABLE: MODULE
49     # @DESCRIPTION:
50     # The subdirectory to download source from. Possible settings are app,
51     # doc, data, util, driver, font, lib, proto, xserver. Set above the
52     # inherit to override the default autoconfigured module.
53 dberkholz 1.100 [[ -z ${MODULE} ]] && MODULE=""
54     case ${CATEGORY} in
55     app-doc) MODULE="doc" ;;
56     media-fonts) MODULE="font" ;;
57     x11-apps|x11-wm) MODULE="app" ;;
58     x11-misc|x11-themes) MODULE="util" ;;
59     x11-drivers) MODULE="driver" ;;
60     x11-base) MODULE="xserver" ;;
61     x11-proto) MODULE="proto" ;;
62     x11-libs) MODULE="lib" ;;
63     esac
64 dberkholz 1.87
65     if [[ -n ${GIT_ECLASS} ]]; then
66     EGIT_REPO_URI="git://anongit.freedesktop.org/git/xorg/${MODULE}/${PN}"
67     else
68     SRC_URI="${SRC_URI} ${BASE_INDIVIDUAL_URI}/${MODULE}/${P}.tar.bz2"
69 spyderous 1.44 fi
70    
71 spyderous 1.1 SLOT="0"
72    
73 joshuabaergen 1.40 # Set the license for the package. This can be overridden by setting
74     # LICENSE after the inherit.
75     LICENSE=${PN}
76    
77 spyderous 1.1 # Set up shared dependencies
78 spyderous 1.28 if [[ -n "${SNAPSHOT}" ]]; then
79 spyderous 1.1 # FIXME: What's the minimal libtool version supporting arbitrary versioning?
80     DEPEND="${DEPEND}
81     >=sys-devel/libtool-1.5
82     >=sys-devel/m4-1.4"
83 joshuabaergen 1.81 WANT_AUTOCONF="latest"
84     WANT_AUTOMAKE="latest"
85 spyderous 1.1 fi
86    
87 spyderous 1.3 # If we're a font package, but not the font.alias one
88 dberkholz 1.80 FONT_ECLASS=""
89 spyderous 1.25 if [[ "${PN/#font-}" != "${PN}" ]] \
90 spyderous 1.49 && [[ "${CATEGORY}" = "media-fonts" ]] \
91 spyderous 1.25 && [[ "${PN}" != "font-alias" ]] \
92     && [[ "${PN}" != "font-util" ]]; then
93 spyderous 1.4 # Activate font code in the rest of the eclass
94     FONT="yes"
95    
96 dberkholz 1.80 # Whether to inherit the font eclass
97     FONT_ECLASS="font"
98    
99 spyderous 1.3 RDEPEND="${RDEPEND}
100 spyderous 1.36 media-fonts/encodings
101 spyderous 1.30 x11-apps/mkfontscale
102     x11-apps/mkfontdir"
103 spyderous 1.3 PDEPEND="${PDEPEND}
104     media-fonts/font-alias"
105 spyderous 1.25
106     # Starting with 7.0RC3, we can specify the font directory
107     # But oddly, we can't do the same for encodings or font-alias
108    
109     # Wrap in `if` so ebuilds can set it too
110     if [[ -z ${FONT_DIR} ]]; then
111 dberkholz 1.91 # @ECLASS-VARIABLE: FONT_DIR
112     # @DESCRIPTION:
113     # If you're creating a font package and the suffix of PN is not equal to
114     # the subdirectory of /usr/share/fonts/ it should install into, set
115     # FONT_DIR to that directory or directories. Set before inheriting this
116     # eclass.
117 spyderous 1.25 FONT_DIR=${PN##*-}
118    
119     fi
120    
121     # Fix case of font directories
122     FONT_DIR=${FONT_DIR/ttf/TTF}
123     FONT_DIR=${FONT_DIR/otf/OTF}
124     FONT_DIR=${FONT_DIR/type1/Type1}
125     FONT_DIR=${FONT_DIR/speedo/Speedo}
126    
127     # Set up configure option
128     FONT_OPTIONS="--with-fontdir=\"/usr/share/fonts/${FONT_DIR}\""
129    
130     if [[ -n "${FONT}" ]]; then
131 dberkholz 1.96 if [[ ${PN##*-} = misc ]] || [[ ${PN##*-} = 75dpi ]] || [[ ${PN##*-} = 100dpi ]] || [[ ${PN##*-} = cyrillic ]]; then
132 spyderous 1.25 IUSE="${IUSE} nls"
133     fi
134     fi
135 spyderous 1.3 fi
136    
137 spyderous 1.7 # If we're a driver package
138 spyderous 1.12 if [[ "${PN/#xf86-video}" != "${PN}" ]] || [[ "${PN/#xf86-input}" != "${PN}" ]]; then
139 joshuabaergen 1.29 # Enable driver code in the rest of the eclass
140     DRIVER="yes"
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 dberkholz 1.89 && [[ "${CATEGORY/app-doc}" = "${CATEGORY}" ]] \
146     && [[ "${CATEGORY/x11-proto}" = "${CATEGORY}" ]] \
147     && [[ "${PN/util-macros}" = "${PN}" ]] \
148     && [[ "${PN/xbitmaps}" = "${PN}" ]] \
149     && [[ "${PN/xkbdata}" = "${PN}" ]] \
150     && [[ "${PN/xorg-cf-files}" = "${PN}" ]] \
151     && [[ "${PN/xcursor}" = "${PN}" ]] \
152 spyderous 1.41 ; then
153     DEBUGGABLE="yes"
154     IUSE="${IUSE} debug"
155     fi
156    
157 spyderous 1.1 DEPEND="${DEPEND}
158 spyderous 1.64 >=dev-util/pkgconfig-0.18"
159 spyderous 1.39
160 spyderous 1.43 if [[ "${PN/util-macros}" = "${PN}" ]]; then
161 spyderous 1.39 DEPEND="${DEPEND}
162 spyderous 1.68 >=x11-misc/util-macros-0.99.2
163 spyderous 1.71 >=sys-devel/binutils-2.16.1-r3"
164 spyderous 1.39 fi
165 spyderous 1.1
166 spyderous 1.13 RDEPEND="${RDEPEND}
167 exg 1.59 !<=x11-base/xorg-x11-6.9"
168 spyderous 1.13 # Provides virtual/x11 for temporary use until packages are ported
169 spyderous 1.1 # x11-base/x11-env"
170    
171 dberkholz 1.87 inherit eutils libtool multilib toolchain-funcs flag-o-matic autotools \
172     ${FONT_ECLASS} ${GIT_ECLASS}
173 dberkholz 1.80
174 dberkholz 1.91 # @FUNCTION: x-modular_specs_check
175     # @USAGE:
176     # @DESCRIPTION:
177     # Make any necessary changes related to gcc specs (generally hardened)
178 spyderous 1.54 x-modular_specs_check() {
179     if [[ ${PN:0:11} = "xorg-server" ]] || [[ -n "${DRIVER}" ]]; then
180 solar 1.62 append-ldflags -Wl,-z,lazy
181 spyderous 1.56 # (#116698) breaks loading
182     filter-ldflags -Wl,-z,now
183 spyderous 1.54 fi
184     }
185    
186 dberkholz 1.91 # @FUNCTION: x-modular_dri_check
187     # @USAGE:
188     # @DESCRIPTION:
189     # Ensures the server supports DRI if building a driver with DRI support
190 spyderous 1.55 x-modular_dri_check() {
191 spyderous 1.53 # (#120057) Enabling DRI in drivers requires that the server was built with
192     # support for it
193     if [[ -n "${DRIVER}" ]]; then
194     if has dri ${IUSE} && use dri; then
195     einfo "Checking for direct rendering capabilities ..."
196     if ! built_with_use x11-base/xorg-server dri; then
197     die "You must build x11-base/xorg-server with USE=dri."
198     fi
199     fi
200     fi
201 spyderous 1.55 }
202 spyderous 1.53
203 dberkholz 1.91 # @FUNCTION: x-modular_server_supports_drivers_check
204     # @USAGE:
205     # @DESCRIPTION:
206     # Ensures the server SDK is installed if a driver is being built
207 joshuabaergen 1.61 x-modular_server_supports_drivers_check() {
208     # (#135873) Only certain servers will actually use or be capable of
209     # building external drivers, including binary drivers.
210     if [[ -n "${DRIVER}" ]]; then
211 spyderous 1.67 if has_version '>=x11-base/xorg-server-1.1'; then
212 spyderous 1.66 if ! built_with_use x11-base/xorg-server xorg; then
213     eerror "x11-base/xorg-server is not built with support for external drivers."
214     die "You must build x11-base/xorg-server with USE=xorg."
215     fi
216 joshuabaergen 1.61 fi
217     fi
218     }
219    
220 dberkholz 1.91 # @FUNCTION: x-modular_unpack_source
221     # @USAGE:
222     # @DESCRIPTION:
223     # Simply unpack source code. Nothing else.
224 spyderous 1.55 x-modular_unpack_source() {
225 dberkholz 1.87 if [[ -n ${GIT_ECLASS} ]]; then
226     git_src_unpack
227     else
228     unpack ${A}
229     fi
230 spyderous 1.1 cd ${S}
231 joshuabaergen 1.16
232 spyderous 1.25 if [[ -n ${FONT_OPTIONS} ]]; then
233     einfo "Detected font directory: ${FONT_DIR}"
234     fi
235 spyderous 1.1 }
236    
237 dberkholz 1.91 # @FUNCTION: x-modular_patch_source
238     # @USAGE:
239     # @DESCRIPTION:
240     # Apply all patches
241 spyderous 1.1 x-modular_patch_source() {
242     # Use standardized names and locations with bulk patching
243     # Patch directory is ${WORKDIR}/patch
244     # See epatch() in eutils.eclass for more documentation
245 spyderous 1.28 if [[ -z "${EPATCH_SUFFIX}" ]] ; then
246 spyderous 1.1 EPATCH_SUFFIX="patch"
247     fi
248    
249 dberkholz 1.91 # @VARIABLE: PATCHES
250     # @DESCRIPTION:
251     # If you have any patches to apply, set PATCHES to their locations and epatch
252     # will apply them. It also handles epatch-style bulk patches, if you know how to
253     # use them and set the correct variables. If you don't, read eutils.eclass.
254 dberkholz 1.95 if [[ ${#PATCHES[@]} -gt 1 ]]; then
255     for x in "${PATCHES[@]}"; do
256     epatch "${x}"
257     done
258     elif [[ -n "${PATCHES}" ]]; then
259     for x in ${PATCHES}; do
260     epatch "${x}"
261 spyderous 1.1 done
262     # For non-default directory bulk patching
263 spyderous 1.28 elif [[ -n "${PATCH_LOC}" ]] ; then
264 spyderous 1.1 epatch ${PATCH_LOC}
265     # For standard bulk patching
266 spyderous 1.28 elif [[ -d "${EPATCH_SOURCE}" ]] ; then
267 spyderous 1.1 epatch
268     fi
269     }
270    
271 dberkholz 1.91 # @FUNCTION: x-modular_reconf_source
272     # @USAGE:
273     # @DESCRIPTION:
274     # Run eautoreconf if necessary, and run elibtoolize.
275 spyderous 1.1 x-modular_reconf_source() {
276 spyderous 1.28 if [[ "${SNAPSHOT}" = "yes" ]]
277 spyderous 1.1 then
278     # If possible, generate configure if it doesn't exist
279 dberkholz 1.74 if [ -f "./configure.ac" ]
280 spyderous 1.1 then
281 spyderous 1.51 eautoreconf
282 spyderous 1.1 fi
283     fi
284    
285 spyderous 1.54 # Joshua Baergen - October 23, 2005
286     # Fix shared lib issues on MIPS, FBSD, etc etc
287     elibtoolize
288 spyderous 1.1 }
289    
290 dberkholz 1.91 # @FUNCTION: x-modular_src_unpack
291     # @USAGE:
292     # @DESCRIPTION:
293     # Unpack a package, performing all X-related tasks.
294 spyderous 1.1 x-modular_src_unpack() {
295 spyderous 1.54 x-modular_specs_check
296 joshuabaergen 1.61 x-modular_server_supports_drivers_check
297 spyderous 1.55 x-modular_dri_check
298 spyderous 1.1 x-modular_unpack_source
299     x-modular_patch_source
300     x-modular_reconf_source
301     }
302    
303 dberkholz 1.91 # @FUNCTION: x-modular_font_configure
304     # @USAGE:
305     # @DESCRIPTION:
306     # If a font package, perform any necessary configuration steps
307 spyderous 1.25 x-modular_font_configure() {
308     if [[ -n "${FONT}" ]]; then
309     # Might be worth adding an option to configure your desired font
310     # and exclude all others. Also, should this USE be nls or minimal?
311     if ! use nls; then
312     FONT_OPTIONS="${FONT_OPTIONS}
313     --disable-iso8859-2
314     --disable-iso8859-3
315     --disable-iso8859-4
316     --disable-iso8859-5
317     --disable-iso8859-6
318     --disable-iso8859-7
319     --disable-iso8859-8
320     --disable-iso8859-9
321     --disable-iso8859-10
322     --disable-iso8859-11
323     --disable-iso8859-12
324     --disable-iso8859-13
325     --disable-iso8859-14
326     --disable-iso8859-15
327     --disable-iso8859-16
328     --disable-jisx0201
329     --disable-koi8-r"
330     fi
331     fi
332     }
333    
334 dberkholz 1.91 # @FUNCTION: x-modular_debug_setup
335     # @USAGE:
336     # @DESCRIPTION:
337     # Set up CFLAGS for a debug build
338 spyderous 1.41 x-modular_debug_setup() {
339     if [[ -n "${DEBUGGABLE}" ]]; then
340     if use debug; then
341     strip-flags
342 spyderous 1.42 append-flags -g
343 spyderous 1.41 fi
344     fi
345     }
346    
347 dberkholz 1.91 # @FUNCTION: x-modular_src_configure
348     # @USAGE:
349     # @DESCRIPTION:
350     # Perform any necessary pre-configuration steps, then run configure
351 spyderous 1.6 x-modular_src_configure() {
352 spyderous 1.25 x-modular_font_configure
353 spyderous 1.41 x-modular_debug_setup
354 spyderous 1.25
355 dberkholz 1.91 # @VARIABLE: CONFIGURE_OPTIONS
356     # @DESCRIPTION:
357     # Any options to pass to configure
358 dberkholz 1.98 [[ -n ${CONFIGURE_OPTIONS} ]]
359 dberkholz 1.91
360 spyderous 1.1 # If prefix isn't set here, .pc files cause problems
361 dberkholz 1.85 if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
362 spyderous 1.1 econf --prefix=${XDIR} \
363     --datadir=${XDIR}/share \
364 spyderous 1.25 ${FONT_OPTIONS} \
365 spyderous 1.7 ${DRIVER_OPTIONS} \
366 spyderous 1.1 ${CONFIGURE_OPTIONS}
367     fi
368 spyderous 1.6 }
369    
370 dberkholz 1.91 # @FUNCTION: x-modular_src_make
371     # @USAGE:
372     # @DESCRIPTION:
373     # Run make.
374 spyderous 1.6 x-modular_src_make() {
375 spyderous 1.1 emake || die "emake failed"
376     }
377    
378 dberkholz 1.91 # @FUNCTION: x-modular_src_configure
379     # @USAGE:
380     # @DESCRIPTION:
381     # Compile a package, performing all X-related tasks.
382 spyderous 1.6 x-modular_src_compile() {
383     x-modular_src_configure
384     x-modular_src_make
385     }
386    
387 dberkholz 1.91 # @FUNCTION: x-modular_src_install
388     # @USAGE:
389     # @DESCRIPTION:
390     # Install a built package to ${D}, performing any necessary steps.
391     # Creates a ChangeLog from git if using live ebuilds.
392 spyderous 1.1 x-modular_src_install() {
393     # Install everything to ${XDIR}
394     make \
395     DESTDIR="${D}" \
396     install
397     # Shouldn't be necessary in XDIR=/usr
398     # einstall forces datadir, so we need to re-force it
399     # datadir=${XDIR}/share \
400     # mandir=${XDIR}/share/man \
401 spyderous 1.7
402 dberkholz 1.87 if [[ -n ${GIT_ECLASS} ]]; then
403     pushd "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}"
404     git log ${GIT_TREE} > "${S}"/ChangeLog
405     popd
406     fi
407    
408 spyderous 1.60 if [[ -e ${S}/ChangeLog ]]; then
409     dodoc ${S}/ChangeLog
410     fi
411 dberkholz 1.91 # @VARIABLE: DOCS
412     # @DESCRIPTION:
413     # Any documentation to install
414 dberkholz 1.92 [[ -n ${DOCS} ]] && dodoc ${DOCS}
415 spyderous 1.60
416 spyderous 1.52 # Make sure docs get compressed
417     prepalldocs
418    
419 spyderous 1.7 # Don't install libtool archives for server modules
420 spyderous 1.70 if [[ -e ${D}/usr/$(get_libdir)/xorg/modules ]]; then
421     find ${D}/usr/$(get_libdir)/xorg/modules -name '*.la' \
422 spyderous 1.7 | xargs rm -f
423     fi
424 spyderous 1.48
425     if [[ -n "${FONT}" ]]; then
426     remove_font_metadata
427     fi
428 dberkholz 1.75
429     if [[ -n "${DRIVER}" ]]; then
430     install_driver_hwdata
431     fi
432 spyderous 1.1 }
433 spyderous 1.2
434 dberkholz 1.91 # @FUNCTION: x-modular_pkg_preinst
435     # @USAGE:
436     # @DESCRIPTION:
437     # This function doesn't do anything right now, but it may in the future.
438 spyderous 1.4 x-modular_pkg_preinst() {
439 dberkholz 1.77 # We no longer do anything here, but we can't remove it from the API
440     :
441 spyderous 1.4 }
442    
443 dberkholz 1.91 # @FUNCTION: x-modular_pkg_postinst
444     # @USAGE:
445     # @DESCRIPTION:
446     # Run X-specific post-installation tasks on the live filesystem. The
447     # only task right now is some setup for font packages.
448 spyderous 1.2 x-modular_pkg_postinst() {
449     if [[ -n "${FONT}" ]]; then
450     setup_fonts
451     fi
452     }
453    
454 dberkholz 1.91 # @FUNCTION: x-modular_pkg_postrm
455     # @USAGE:
456     # @DESCRIPTION:
457     # Run X-specific post-removal tasks on the live filesystem. The only
458     # task right now is some cleanup for font packages.
459 spyderous 1.25 x-modular_pkg_postrm() {
460     if [[ -n "${FONT}" ]]; then
461     cleanup_fonts
462 dberkholz 1.78 font_pkg_postrm
463 spyderous 1.25 fi
464     }
465    
466 dberkholz 1.91 # @FUNCTION: cleanup_fonts
467     # @USAGE:
468     # @DESCRIPTION:
469     # Get rid of font directories that only contain generated files
470 spyderous 1.25 cleanup_fonts() {
471     local ALLOWED_FILES="encodings.dir fonts.cache-1 fonts.dir fonts.scale"
472     for DIR in ${FONT_DIR}; do
473     unset KEEP_FONTDIR
474     REAL_DIR=${ROOT}usr/share/fonts/${DIR}
475    
476     ebegin "Checking ${REAL_DIR} for useless files"
477     pushd ${REAL_DIR} &> /dev/null
478     for FILE in *; do
479     unset MATCH
480     for ALLOWED_FILE in ${ALLOWED_FILES}; do
481     if [[ ${FILE} = ${ALLOWED_FILE} ]]; then
482     # If it's allowed, then move on to the next file
483     MATCH="yes"
484     break
485     fi
486     done
487     # If we found a match in allowed files, move on to the next file
488     if [[ -n ${MATCH} ]]; then
489     continue
490     fi
491     # If we get this far, there wasn't a match in the allowed files
492     KEEP_FONTDIR="yes"
493     # We don't need to check more files if we're already keeping it
494     break
495     done
496     popd &> /dev/null
497     # If there are no files worth keeping, then get rid of the dir
498     if [[ -z "${KEEP_FONTDIR}" ]]; then
499     rm -rf ${REAL_DIR}
500     fi
501     eend 0
502     done
503     }
504    
505 dberkholz 1.91 # @FUNCTION: setup_fonts
506     # @USAGE:
507     # @DESCRIPTION:
508     # Generates needed files for fonts and fixes font permissions
509 spyderous 1.2 setup_fonts() {
510 dberkholz 1.77 if [[ ! -n "${FONT_DIR}" ]]; then
511     msg="FONT_DIR is empty. The ebuild should set it to at least one subdir of /usr/share/fonts."
512 spyderous 1.25 eerror "${msg}"
513     die "${msg}"
514 spyderous 1.2 fi
515    
516     create_fonts_scale
517     create_fonts_dir
518     fix_font_permissions
519     create_font_cache
520     }
521    
522 dberkholz 1.91 # @FUNCTION: remove_font_metadata
523     # @USAGE:
524     # @DESCRIPTION:
525     # Don't let the package install generated font files that may overlap
526     # with other packages. Instead, they're generated in pkg_postinst().
527 spyderous 1.48 remove_font_metadata() {
528     local DIR
529     for DIR in ${FONT_DIR}; do
530     if [[ "${DIR}" != "Speedo" ]] && \
531     [[ "${DIR}" != "CID" ]] ; then
532     # Delete font metadata files
533     # fonts.scale, fonts.dir, fonts.cache-1
534     rm -f ${D}/usr/share/fonts/${DIR}/fonts.{scale,dir,cache-1}
535     fi
536     done
537     }
538    
539 dberkholz 1.91 # @FUNCTION: install_driver_hwdata
540     # @USAGE:
541     # @DESCRIPTION:
542     # Installs device-to-driver mappings for system-config-display and
543     # anything else that uses hwdata.
544 dberkholz 1.75 install_driver_hwdata() {
545     insinto /usr/share/hwdata/videoaliases
546     for i in "${FILESDIR}"/*.xinf; do
547     # We need this for the case when none exist,
548     # so *.xinf doesn't expand
549     if [[ -e $i ]]; then
550     doins $i
551     fi
552     done
553     }
554    
555 dberkholz 1.91 # @FUNCTION: discover_font_dirs
556     # @USAGE:
557     # @DESCRIPTION:
558     # Deprecated. Sets up the now-unused FONT_DIRS variable.
559 spyderous 1.4 discover_font_dirs() {
560 dberkholz 1.77 FONT_DIRS="${FONT_DIR}"
561 spyderous 1.4 }
562    
563 dberkholz 1.91 # @FUNCTION: create_fonts_scale
564     # @USAGE:
565     # @DESCRIPTION:
566     # Create fonts.scale file, used by the old server-side fonts subsystem.
567 spyderous 1.2 create_fonts_scale() {
568     ebegin "Creating fonts.scale files"
569     local x
570 dberkholz 1.77 for DIR in ${FONT_DIR}; do
571     x=${ROOT}/usr/share/fonts/${DIR}
572 spyderous 1.28 [[ -z "$(ls ${x}/)" ]] && continue
573     [[ "$(ls ${x}/)" = "fonts.cache-1" ]] && continue
574 spyderous 1.2
575     # Only generate .scale files if truetype, opentype or type1
576     # fonts are present ...
577    
578 dberkholz 1.79 # NOTE: There is no way to regenerate Speedo/CID fonts.scale
579 dberkholz 1.83 # <dberkholz@gentoo.org> 2 August 2004
580 spyderous 1.28 if [[ "${x/encodings}" = "${x}" ]] \
581 dberkholz 1.79 && [[ -n "$(find ${x} -iname '*.[pot][ft][abcf]' -print)" ]]; then
582     mkfontscale \
583 spyderous 1.2 -a ${ROOT}/usr/share/fonts/encodings/encodings.dir \
584     -- ${x}
585     fi
586     done
587     eend 0
588     }
589    
590 dberkholz 1.91 # @FUNCTION: create_fonts_dir
591     # @USAGE:
592     # @DESCRIPTION:
593     # Create fonts.dir file, used by the old server-side fonts subsystem.
594 spyderous 1.2 create_fonts_dir() {
595     ebegin "Generating fonts.dir files"
596 dberkholz 1.77 for DIR in ${FONT_DIR}; do
597     x=${ROOT}/usr/share/fonts/${DIR}
598 spyderous 1.28 [[ -z "$(ls ${x}/)" ]] && continue
599     [[ "$(ls ${x}/)" = "fonts.cache-1" ]] && continue
600 spyderous 1.2
601 spyderous 1.28 if [[ "${x/encodings}" = "${x}" ]]; then
602 dberkholz 1.79 mkfontdir \
603 spyderous 1.2 -e ${ROOT}/usr/share/fonts/encodings \
604     -e ${ROOT}/usr/share/fonts/encodings/large \
605     -- ${x}
606     fi
607     done
608     eend 0
609     }
610    
611 dberkholz 1.91 # @FUNCTION: fix_font_permissions
612     # @USAGE:
613     # @DESCRIPTION:
614     # Font files should have 644 permissions. Ensure this is the case.
615 spyderous 1.2 fix_font_permissions() {
616     ebegin "Fixing permissions"
617 dberkholz 1.77 for DIR in ${FONT_DIR}; do
618     find ${ROOT}/usr/share/fonts/${DIR} -type f -name 'font.*' \
619 spyderous 1.2 -exec chmod 0644 {} \;
620     done
621     eend 0
622     }
623    
624 dberkholz 1.91 # @FUNCTION: create_font_cache
625     # @USAGE:
626     # @DESCRIPTION:
627     # Create fonts.cache-1 files, used by the new client-side fonts
628     # subsystem.
629 spyderous 1.2 create_font_cache() {
630 dberkholz 1.78 font_pkg_postinst
631 spyderous 1.2 }
632 dberkholz 1.78
633     EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_preinst pkg_postinst pkg_postrm

  ViewVC Help
Powered by ViewVC 1.1.20