3 # Requires: /bin/sh textutils fileutils
5 # mkfontdir, mkfontscale (XFree86) (or ttmkfdir - for TTF only)
6 # fc-cache (XFree86-fontconfig)
7 # gnome-font-install (gnome-print)
9 FBASEDIR="/usr/share/fonts"
11 MKFONTDIRBIN="/usr/X11R6/bin/mkfontdir"
12 MKFONTDIR="$MKFONTDIRBIN"
13 MKFONTSCALEBIN="/usr/X11R6/bin/mkfontscale"
14 MKFONTSCALE="$MKFONTSCALEBIN"
16 MKTTFFONTSCALEBIN="$MKFONTSCALEBIN"
17 MKTTFFONTSCALE="$MKTTFFONTSCALEBIN"
18 if [ ! -x "$MKFONTSCALEBIN" -a -f /usr/bin/ttmkfdir ]; then
19 # fallback for X <= 4.2.x
20 MKTTFFONTSCALEBIN="/usr/bin/ttmkfdir"
21 MKTTFFONTSCALE="$MKFONTSCALEBIN -e /usr/share/fonts/encodings/encodings.dir"
24 FCCACHEBIN="/usr/X11R6/bin/fc-cache"
25 if [ ! -x $FCCACHEBIN -a -x /usr/X11R6/bin/xftcache ]; then
26 # fallback for XFree86 4.[0-2]
27 FCCACHEBIN="/usr/X11R6/bin/xftcache"
29 FCCACHE="$FCCACHEBIN ."
31 GNOMEFONTINSTBIN="/usr/bin/gnome-font-install"
32 if [ ! -x $GNOMEFONTINSTBIN -a -x /usr/X11R6/bin/gnome-font-install ]; then
34 GNOMEFONTINSTBIN="/usr/X11R6/bin/gnome-font-install"
36 GNOMEFONTINST="$GNOMEFONTINSTBIN --target $FBASEDIR/fontmap"
39 echo "Usage: fontpostinst TYPE [DIR]"
40 echo " TYPE is one of OTF, TTF, Type1, misc, 100dpi, 75dpi, CID, Speedo, PEX"
41 echo " default DIR is $FBASEDIR/TYPE"
47 FDIR="$FBASEDIR/$FTYPE"
54 if [ "`echo fonts.alias.*`" != 'fonts.alias.*' ]; then
55 cat fonts.alias.* | LC_ALL=C sort -u > fonts.alias
56 elif [ -f fonts.alias ]; then
57 mv -f fonts.alias fonts.alias-save
61 if [ -x $MKTTFFONTSCALEBIN ]; then
64 if [ -x $MKFONTDIRBIN ]; then
67 if [ -x $FCCACHEBIN ]; then
69 elif [ -x $XFTCACHEBIN ]; then
74 rm -f fonts.scale.bak Fontmap.bak
75 if "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then
76 cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp
77 cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale
78 cat fonts.scale.tmp >> fonts.scale
80 else if [ "`echo *.pf[ab]`" != '*.pf[ab]' ]; then
81 # no hints - try to generate
82 if [ -x $MKFONTSCALEBIN ]; then
85 elif [ -f fonts.scale ]; then
86 mv -f fonts.scale fonts.scale-save
88 if [ -x $MKFONTDIRBIN ]; then
91 if [ -x $FCCACHEBIN ]; then
93 elif [ -x $XFTCACHEBIN ]; then
96 if "`echo Fontmap.*`" != 'Fontmap.*' ]; then
97 cat Fontmap.* > Fontmap
98 elif [ -f Fontmap ]; then
99 mv -f Fontmap Fontmap-save
101 if [ -x $GNOMEFONTINSTBIN ]; then
106 if "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then
107 cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp
108 cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale
109 cat fonts.scale.tmp >> fonts.scale
110 rm -f fonts.scale.tmp
111 elif [ -f fonts.scale ]; then
112 mv -f fonts.scale fonts.scale-save
114 if [ -x $MKFONTDIRBIN ]; then
118 # special case - fonts needed for X server to start
119 if [ -x $MKFONTDIRBIN ]; then
121 elif [ -f 6x13-ISO8859-1.pcf.gz -a -f cursor.pcf.gz ]; then
122 cat > fonts.dir <<EOF
124 6x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
129 100dpi|75dpi|cyrillic)
130 if [ -x $MKFONTDIRBIN ]; then
137 echo "Warning: \"$FTYPE\": unknown font type!" >&2
138 if [ -x $MKFONTDIRBIN ]; then