Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 7236 Details for
Bug 13808
font eclass
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
font.eclass
font.eclass (text/plain), 5.85 KB, created by
MATSUU Takuto (RETIRED)
on 2003-01-12 18:48:42 UTC
(
hide
)
Description:
font.eclass
Filename:
MIME Type:
Creator:
MATSUU Takuto (RETIRED)
Created:
2003-01-12 18:48:42 UTC
Size:
5.85 KB
patch
obsolete
># Copyright 1999-2002 Gentoo Technologies, Inc. ># Distributed under the terms of the GNU General Public License v2 ># $Header: $ > >ECLASS=font >EXPORT_FUNCTIONS pkg_postinst pkg_postrm >INHERITED="$INHERITED $ECLASS" >DESCRIPTION="Based on the ${ECLASS} eclass" > >if [ "`use truetype`" ] ; then > DEPEND="x11-misc/ttmkfdir ${DEPEND}" >fi > >if [ "`use X`" ] ; then > DEPEND="virtual/x11 ${DEPEND}" >fi > >FONTDIR="/usr/X11R6/lib/X11/fonts/local" > >font_pkg_postinst() { > setup_font_dirs ${FONTDIR} >} > >font_pkg_postrm() { > setup_font_dirs ${FONTDIR} >} > ># Return 0 on change, or 1 on no change, or if dir do not exist >check_changed() { > local x="" > local fontlist="" > > # If the dir do not exist, e > if [ ! -d $1 ] > then > return 1 > fi > > # Create a list of all non known config files in the font dir > fontlist="$(find $1/ -type f -maxdepth 1 | \ > gawk '$0 !~ /fonts\..*$|^.*\.dir$|XftCache/ {print}')" > > if [ ! -f $1/fonts.list ] > then > if [ -n "${fontlist}" ] > then > # No list file exist, so create it and return 0 to add > # this font dir as a candidate for updating... > echo "${fontlist}" > $1/fonts.list > > return 0 > fi > else > local retval=1 > > # All the fonts was removed, so cleanup > if [ -z "${fontlist}" ] > then > for x in $1/fonts.* $1/encodings.dir $1/XftCache > do > if [ -f ${x} ] > then > rm -f ${x} > fi > done > > return 1 > fi > > # Check that no files was added or removed.... > if [ "$(cat $1/fonts.list | md5sum)" != "$(echo "${fontlist}" | md5sum)" ] > then > retval=0 > fi > > # Check that no files was updated.... > if [ "${retval}" -ne 0 ] > then > local changed_list="" > ># It should be more consistant if we consider a change to fonts.scale, or ># encodings.dir files as a need for an update as well ... ># changed_list="$(find $1/ -type f -cnewer $1/fonts.dir | \ ># gawk '$0 !~ /fonts\..*$|^.*\.dir$|XftCache/ {print}')" > changed_list="$(find $1/ -type f -cnewer $1/fonts.dir | \ > gawk '$0 !~ /fonts\.(list|cache-1)$|XftCache/ {print}')" > > if [ -n "${changed_list}" ] > then > retval=0 > fi > fi > > # OK, something changed, so recreate fonts.list and add as candidate > # for updating... > if [ "${retval}" -eq 0 ] > then > echo "${fontlist}" > $1/fonts.list > > return 0 > fi > fi > > return 1 >} > ># This is a function to extract font dirs from ># the xfs config file (/etc/X11/fs/config). >get_fontdir_list() { > [ ! -r /etc/X11/fs/config ] && return 0 > > gawk ' > BEGIN { > > while((getline xfsconf_data < ("/etc/X11/fs/config")) > 0) { > > # Strip any comments > if (xfsconf_data !~ /^[[:space:]]*#/) { > > # Dont bother if its a blank line > if (xfsconf_data == "") continue > > # If we have a line that contain 'catalogue=', we > # should be where the list of font dirs are > if (xfsconf_data ~ /catalogue[[:space:]]*=/) > DO_WRITE = 1 > > # Ok, we got our que, so start > if (DO_WRITE) { > > # Strip any leading spaces and tabs > sub(/^[[:space:]]*/, "", xfsconf_data) > # Strip the 'catalogue=' part > sub(/catalogue[[:space:]]*=[[:space:]]*/, "", xfsconf_data) > > # The last font dir will not have a ',', so this will > # be the last line we read ... > if (xfsconf_data !~ /,$/) { > > DO_WRITE = 0 > DONE = 1 > } > > # Strip the ending ',' ... > sub(/,$/, "", xfsconf_data) > > # If we have a valid font path, print it > if (xfsconf_data != "") { > > have_dup = 0 > > # Check for duplicates ... > for (x in DIRLIST) > if (DIRLIST[x] == xfsconf_data) { > > have_dup = 1 > break > } > > if (!have_dup) { > print xfsconf_data > DIRLIST[++i] = xfsconf_data > } > } > } > > # No need to continue reading the file ... > if (DONE) break > } > } > > close("/etc/X11/fs/config") > }' > > return 0 >} > ># This is the main beast for setting up the font dirs >setup_font_dirs() { > local x="" > local pending_fontdirs="" > local changed="no" > > umask 022 > > if [ ! -x /usr/X11R6/bin/mkfontdir -o ! -x /usr/X11R6/bin/ttmkfdir ] > then > ewarn "Could not find the mkfontdir or ttmkfdir binaries!" > return 0 > fi > > if [ ! -d /usr/X11R6/lib/X11/fonts/encodings ] > then > ewarn "Encodings directory are missing!" > ewarn "Please restore /usr/X11R6/lib/X11/fonts/encodings ..." > return 0 > fi > > # Generate the encodings.dir ... > /usr/X11R6/bin/mkfontdir -n \ > -e /usr/X11R6/lib/X11/fonts/encodings \ > -e /usr/X11R6/lib/X11/fonts/encodings/large \ > -- /usr/X11R6/lib/X11/fonts/encodings > > ebegin "Scanning font directories" > for x in "$@" > do > if test -d ${x} && check_changed ${x} > then > if [ -z "${pending_fontdirs}" ] > then > pending_fontdirs="${x}" > else > pending_fontdirs="${pending_fontdirs} ${x}" > fi > fi > done > eend 0 > > if [ -n "${pending_fontdirs}" ] > then > ebegin "Indexing font directories" > for x in ${pending_fontdirs} > do > ebegin " ${x}" > > # Only generate .scale files if there are truetype fonts present ... > if [ "${x/encodings}" = "${x}" -a \ > -n "$(find ${x} -iname '*.[otps][pft][cfad]' -print)" ] > then > /usr/X11R6/bin/ttmkfdir -x 2 \ > -e /usr/X11R6/lib/X11/fonts/encodings/encodings.dir \ > -o ${x}/fonts.scale -d ${x} > /dev/null > fi > > # Now generate fonts.dir files ... > if [ "${x/encodings}" = "${x}" ] > then > /usr/X11R6/bin/mkfontdir \ > -e /usr/X11R6/lib/X11/fonts/encodings \ > -e /usr/X11R6/lib/X11/fonts/encodings/large \ > -- ${x} > /dev/null > fi > > if [ "${x/encodings}" = "${x}" -a -x /usr/X11R6/bin/xftcache ] && \ > [ -n "$(find ${x} -iname '*.[otps][pft][cfad]' -print)" ] > then > # xftcache is broken, but run it anyhow ... > /usr/X11R6/bin/xftcache ${x} &> /dev/null > fi > eend 0 > > changed="yes" > done > fi > > # While we at it, update fontconfig's cache as well > if [ -x /usr/bin/fc-cache -a "${changed}" = "yes" ] > then > ebegin "Updating FC cache" > HOME="/root" /usr/bin/fc-cache -f > eend 0 > fi >} > ># vim:ts=4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 13808
:
7236
|
12570
|
16858
|
16859
|
20837
|
23490