| | man : xfs(1)
xfs(1) xfs(1)
NAME
xfs - X font server
SYNOPSIS
xfs [ -config configuration_file ] [ -daemon ] [ -droppriv
] [ -ls listen_socket ] [ -nodaemon ] [ -port tcp_port ] [
-user username ]
DESCRIPTION
xfs is the X Window System font server. It supplies fonts
to X Window System display servers. The server is usually
run by a system administrator, and started via init(8).
Users may also wish to start private font servers for spe-
cific sets of fonts.
To connect to a font server, see the documentation for
your X server; it likely supports the syntax documented in
the "FONT SERVER NAMES" section of X(7).
OPTIONS
-config configuration_file
specifies the configuration file xfs will use. If
this parameter is not specified, xfs will read its
configuration from the default file,
/etc/X11/fs/config.
-daemon
instructs xfs to fork and go into the background
automatically at startup. If this option is not
specified, xfs will run as a regular process
(unless it was built to daemonize by default).
When running as a daemon, xfs will attempt to cre-
ate a file in which it stores its process ID, and
will delete that file upon exit;
-droppriv
instructs xfs to attempt to run as user and group
xfs (unless the -user option is used). This has
been implemented for security reasons, as xfs may
have undiscovered buffer overflows or other paths
for possible exploit, both local and remote. When
using this option, you may also wish to specify
`no-listen = tcp in the config file, which ensures
that xfs will not to use a TCP port at all. By
default, xfs runs with the user and group IDs of
the user who invoked it.
-ls listen_socket
specifies a file descriptor which is already set up
to be used as the listen socket. This option is
only intended to be used by the font server itself
when automatically spawning another copy of itself
to handle additional connections.
X Version 11 xfs 1.0.8 1
xfs(1) xfs(1)
-nodaemon
instructs xfs not to daemonize (fork and detach
from its controlling terminal). This option only
has an effect if xfs is built to daemonize by
default, which is not the stock configuration.
-port tcp_port
specifies the TCP port number on which the server
will listen for connections. The default port num-
ber is 7100. This option is ignored if xfs is con-
figured to not listen to TCP transports at all (see
"Configuration File Format" below).
-user username
instructs xfs to run as the user username. See
-droppriv for why this may be desired. By default,
xfs runs with the user and group IDs of the user
who invoked it.
INPUT FILES
xfs reads and serves any font file format recognized by
the X server itself. It locates font files through the
specification of a catalogue, which is declared in xfs's
configuration file.
Configuration File Format
xfs reads its configuration from a text file (see the
-config option in the "OPTIONS" section above). The con-
figuration language is a list of keyword and value pairs.
Each keyword is followed by an equals sign (`=) and then
the desired value.
Recognized keywords include:
alternate-servers (list of strings)
lists alternate servers for this font server. See
the "FONT SERVER NAMES" section of X(7) for the
syntax of the string.
catalogue (list of strings)
declares as ordered list of font path element names
from which fonts will be served. The current
implementation only supports a single catalogue
("all") containing all of the specified fonts. A
special directory with symlinks to font paths can
be specified using a catalogue:<dir> entry. See the
CATALOGUE DIR section below for details.
client-limit (cardinal)
determines the number of clients this font server
will support before refusing service. This is use-
ful for tuning the load on each individual font
server.
X Version 11 xfs 1.0.8 2
xfs(1) xfs(1)
clone-self (boolean)
indicates whether this font server should attempt
to clone itself when the number of connected
clients reaches the client-limit.
default-point-size (cardinal)
The default pointsize (in decipoints) for font
requests that don't specify a point size. The
default is 120.
default-resolutions (list of resolutions)
indicates the resolutions the server supports by
default. This information may be used as a hint
for pre-rendering, and substituted into requests
for scaled fonts which do not specify a resolution.
A resolution is a comma-separated pair of horizon-
tal and vertical resolutions in pixels per inch.
Multiple resolutions are separated by commas.
deferglyphs (string)
sets the mode for delayed fetching and caching of
glyphs. string should be one of `none, meaning
glyphs deferment is disabled, `all, meaning it is
enabled for all fonts, and `16, meaning it is
enabled only for 16-bit fonts.
error-file (string)
indicates the filename of the error file. All
warnings and errors will be logged here, unless
use-syslog is set to a true value (see below).
no-listen (trans-type)
disables the specified transport type. For exam-
ple, TCP/IP connections can be disabled with
`no-listen = tcp.
port (cardinal)
indicates the TCP port on which the server will
listen for connections.
use-syslog (boolean)
determines whether errors and diagnostics should be
reported via syslog(3) (on supported systems)
instead of being written to the error-file (see
above).
CATALOGUE DIR
You can specify a special kind of font path in the form
catalogue:<dir>. The directory specified after the cata-
logue: prefix will be scanned for symlinks and each sym-
link destination will be added as a local fontfile FPE.
The symlink can be suffixed by attributes such as
'unscaled', which will be passed through to the underlying
X Version 11 xfs 1.0.8 3
xfs(1) xfs(1)
fontfile FPE. The only exception is the newly introduced
'pri' attribute, which will be used for ordering the font
paths specified by the symlinks.
An example configuration:
75dpi:unscaled:pri=20 -> /usr/share/X11/fonts/75dpi
ghostscript:pri=60 -> /usr/share/fonts/default/ghostscript
misc:unscaled:pri=10 -> /usr/share/X11/fonts/misc
type1:pri=40 -> /usr/share/X11/fonts/Type1
type1:pri=50 -> /usr/share/fonts/default/Type1
This will add /usr/share/X11/fonts/misc as the first FPE
with the attribute the attribute unscaled etc. This is
functionally equivalent to setting the following font
path:
/usr/share/X11/fonts/misc:unscaled,
/usr/share/X11/fonts/75dpi:unscaled,
/usr/share/X11/fonts/Type1,
/usr/share/fonts/default/Type1,
/usr/share/fonts/default/ghostscript
Example Configuration File
#
# sample font server configuration file
#
# allow a max of 10 clients to connect to this font server.
client-limit = 10
# When a font server reaches the above limit, start up a new one.
clone-self = on
# Identify alternate font servers for clients to use.
alternate-servers = hansen:7101,hansen:7102
# Look for fonts in the following directories. The first is a set of
# TrueType outlines, the second is a set of misc bitmaps (such as terminal
# and cursor fonts), and the last is a set of 100dpi bitmaps.
#
catalogue = /usr/X11R6/lib/X11/fonts/TTF,
/usr/X11R6/lib/X11/fonts/misc,
/usr/X11R6/lib/X11/fonts/100dpi/
# in 12 points, decipoints
default-point-size = 120
# 100 x 100 and 75 x 75
default-resolutions = 100,100,75,75
# Specify our log filename.
error-file = /var/log/xfs.log
X Version 11 xfs 1.0.8 4
xfs(1) xfs(1)
# Direct diagnostics to our own log file instead of using syslog.
use-syslog = off
OUTPUT FILES
When operating in daemon mode, xfs sends diagnostic mes-
sages (errors and warnings) to the system log via the sys-
log C library function by default. However, these mes-
sages can be sent to an alternate location via the
error-file and use-syslog configuration variables; see
"Configuration File Format", above.
ASYNCHRONOUS EVENTS
xfs handles the following signals specially:
SIGTERM
causes the font server to exit cleanly.
SIGUSR1
causes xfs to re-read its configuration file.
SIGUSR2
causes xfs to flush any cached data it may have.
SIGHUP causes xfs to reset, closing all active connections
and re-reading the configuration file.
BUGS
Multiple catalogues should be supported.
FUTURE DIRECTIONS
Significant further development of xfs is unlikely. One
of the original motivations behind it was the single-
threaded nature of the X server -- a user's X session
could seem to `freeze up while the X server took a moment
to rasterize a font. This problem with the X server,
which remains single-threaded in all popular implementa-
tions to this day, has been mitigated on two fronts:
machines have gotten much faster, and client-side font
rendering (particularly via the Xft library) is the norm
in contemporary software.
AUTHORS
Dave Lemke, Network Computing Devices, Inc
Keith Packard, Massachusetts Institute of Technology
SEE ALSO
X(7), xfsinfo(1), fslsfonts(1), init(8), syslog(3), The X
Font Service Protocol, Font Server Implementation Overview
X Version 11 xfs 1.0.8 5
|