summaryrefslogtreecommitdiff
path: root/app/xfs/xfs.man
diff options
context:
space:
mode:
Diffstat (limited to 'app/xfs/xfs.man')
-rw-r--r--app/xfs/xfs.man469
1 files changed, 300 insertions, 169 deletions
diff --git a/app/xfs/xfs.man b/app/xfs/xfs.man
index 1a5cd11bc..4f71ce2e4 100644
--- a/app/xfs/xfs.man
+++ b/app/xfs/xfs.man
@@ -37,206 +37,337 @@
.\" suitability of this software for any purpose. It is provided "as is"
.\" without express or implied warranty.
.\" $Xorg: xfs.man,v 1.4 2001/02/09 02:05:42 xorgcvs Exp $
-.TH XFS 1 __xorgversion__
+.TH xfs __appmansuffix__ __xorgversion__
.SH NAME
xfs \- X font server
.SH SYNOPSIS
-.B "xfs"
-[\-config \fIconfiguration_file\fP]
-[\-daemon]
-[\-droppriv]
-[\-ls \fIlisten_socket\fP]
-[\-nodaemon]
-[\-port \fItcp_port\fP]
-[\-user \fIusername\fP]
+.B xfs
+[
+.BI "\-config " configuration_file
+]
+[
+.B \-daemon
+]
+[
+.B \-droppriv
+]
+[
+.BI "\-ls " listen_socket
+]
+[
+.B \-nodaemon
+]
+[
+.BI "\-port " tcp_port
+]
+[
+.BI "\-user " username
+]
.SH DESCRIPTION
+.B 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
+.BR init (__adminmansuffix__).
+Users may also wish to start private font servers for specific sets of
+fonts.
.PP
-.I Xfs
-is the X Window System font server. It supplies fonts to X Window
-System display servers.
-.SH "STARTING THE SERVER"
-The server is usually run by a system administrator, and started via
-boot files like \fI/etc/rc.local\fR. Users may also wish to start
-private font servers for specific sets of fonts.
-.SH "OPTIONS"
-.TP 8
-.B \-config configuration_file
-Specifies the configuration file the font server will use. If this
-parameter is not specified, the default file, \fI__configdir__/config\fR
-will be used.
-.TP 8
-.B \-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.
-.TP 8
-.B \-port tcp_port
-Specifies the TCP port number on which the server will listen for connections.
-The default port number is 7100.
-.TP 8
+To connect to a font server, see the documentation for your X server; it
+likely supports the syntax documented in the \(lqFONT SERVER NAMES\(rq
+section of
+.BR X (__miscmansuffix__).
+.SH OPTIONS
+.TP
+.BI "\-config " configuration_file
+specifies the configuration file
+.B xfs
+will use.
+If this parameter is not specified, xfs will read its configuration from
+__configfiledesc__ \fI__configfilepath__\fR.
+.TP
.B \-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 xfs was built to daemonize by default).
-.TP 8
+instructs
+.B xfs
+to fork and go into the background automatically at startup.
+If this option is not specified,
+.B xfs
+will run as a regular process (unless it was built to daemonize by
+default).
+When running as a daemon,
+.B xfs
+will attempt to create a file in which it stores its process ID, and will
+delete that file upon exit;
+.TP
.B \-droppriv
-If specified, xfs will attempt to run as user and group \fIxfs\fR (unless
-the
+instructs
+.B xfs
+to attempt to run as user and group
+.I xfs
+(unless the
.B \-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. With 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.
-.TP 8
+option is used).
+This has been implemented for security reasons, as
+.B 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 \(oqno\-listen =
+tcp\(cq in the config file, which ensures that
+.B xfs
+will not to use a TCP port at all.
+By default,
+.B xfs
+runs with the user and group IDs of the user who invoked it.
+.TP
+.BI "\-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.
+.TP
.B \-nodaemon
-When xfs is built to daemonize (run in the background) by default,
-this prevents that and starts xfs up as a regular process.
-.TP 8
-.B \-user username
-This is equivalent to
+instructs
+.B xfs
+not to daemonize (fork and detach from its controlling terminal).
+This option only has an effect if
+.B xfs
+is built to daemonize by default, which is not the stock configuration.
+.TP
+.BI "\-port " tcp_port
+specifies the TCP port number on which the server will listen for
+connections.
+The default port number is 7100.
+This option is ignored if
+.B xfs
+is configured to not listen to TCP transports at all (see \(lqConfiguration
+File Format\(rq below).
+.TP
+.BI "\-user " username
+instructs
+.B xfs
+to run as the user
+.IR username.
+See
.B \-droppriv
-except that xfs will run as user \fIusername\fR.
-.SH "SIGNALS"
-.TP 8
-.I SIGTERM
-This causes the font server to exit cleanly.
-.TP 8
-.I SIGUSR1
-This signal is used to cause the server to re-read its configuration file.
-.TP 8
-.I SIGUSR2
-This signal is used to cause the server to flush any cached data it
-may have.
-.TP 8
-.I SIGHUP
-This signal is used to cause the server to reset, closing all active
-connections and re-reading the configuration file.
-.SH "CONFIGURATION"
+for why this may be desired.
+By default,
+.B xfs
+runs with the user and group IDs of the user who invoked it.
+.SH "INPUT FILES"
+.B xfs
+reads and serves any font file format recognized by the X server itself.
+It locates font files through the specification of a
+.IR catalogue ,
+which is declared in
+.BR xfs 's
+configuration file.
+.SS "Configuration File Format"
+.B xfs
+reads its configuration from a text file (see the
+.B \-config
+option in the \(lqOPTIONS\(rq section above).
The configuration language is a list of keyword and value pairs.
-Each keyword is followed by an '=' and then the desired value.
+Each keyword is followed by an equals sign (\(oq=\(cq) and then the desired
+value.
.PP
Recognized keywords include:
-.sp
-.\" .IP "cache-size (cardinal)"
-.\" Size in bytes of the font server cache.
-.IP "catalogue (list of string)"
-Ordered list of font path element names.
-Use of the keyword "catalogue" is very misleading at present,
-the current implementation only supports a single catalogue ("all"),
-containing all of the specified fonts.
-.IP "alternate-servers (list of string)"
-List of alternate servers for this font server.
-.IP "client-limit (cardinal)"
-Number of clients this font server will support
-before refusing service. This is useful for tuning
-the load on each individual font server.
-.IP "clone-self (boolean)"
-Whether this font server should attempt to clone itself
-when it reachs the client-limit.
-.IP "default-point-size (cardinal)"
-The default pointsize (in decipoints) for fonts that
-don't specify. The default is 120.
-.IP "default-resolutions (list of resolutions)"
-Resolutions the server supports by default.
-This information may be used as a hint for
-pre-rendering, and substituted for scaled fonts
-which do not specify a resolution.
-A resolution is a comma-separated pair of x and y resolutions in
-pixels per inch.
+.TP
+.BR alternate\-servers " (list of \fIstring\fPs)"
+lists alternate servers for this font server.
+See the \(lqFONT SERVER NAMES\(rq section of
+.BR X (__miscmansuffix__)
+for the syntax of the string.
+.\" .TP
+.\" .BR cache\-size " (\fIcardinal\fP)"
+.\" determines the size (in bytes) of the font server cache.
+.TP
+.BR catalogue " (list of \fIstring\fPs)"
+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.
+.TP
+.BR client\-limit " (\fIcardinal\fP)"
+determines the number of clients this font server will support before
+refusing service.
+This is useful for tuning the load on each individual font server.
+.TP
+.BR clone\-self " (\fIboolean\fP)"
+indicates whether this font server should attempt to clone itself when the
+number of connected clients reaches the
+.BR client\-limit .
+.TP
+.BR default\-point\-size " (\fIcardinal\fP)"
+The default pointsize (in decipoints) for font requests that don't specify
+a point size.
+The default is 120.
+.TP
+.BR default\-resolutions " (list of \fIresolution\fPs)"
+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
+.I resolution
+is a comma-separated pair of horizontal and vertical resolutions in pixels
+per inch.
Multiple resolutions are separated by commas.
-.IP "error-file (string)"
-Filename of the error file. All warnings and errors
-will be logged here.
-.IP "no-listen (trans-type)"
-Disable a transport type. For example, TCP/IP connections can
-be disabled with no-listen tcp
-.IP "port (cardinal)"
-TCP port on which the server will listen for connections.
-.IP "use-syslog (boolean)"
-Whether syslog(3) (on supported systems) is to be used
-for errors.
-.IP "deferglyphs (string)"
-Set the mode for delayed fetching and caching of glyphs. Value is
-"none", meaning deferred glyphs is disabled, "all", meaning it is
-enabled for all fonts, and "16", meaning it is enabled only for
-16-bits fonts.
-.\" .IP "trusted-clients (list of string)"
-.\" Those clients the fontserver will talk to. Others
-.\" will be refused for the initial connection. An empty
-.\" list means the server will talk to any client.
-.SH "EXAMPLE"
+.TP
+.BR deferglyphs " (\fIstring\fP)"
+sets the mode for delayed fetching and caching of glyphs.
+.I string
+should be one of \(oqnone\(cq, meaning glyphs deferment is disabled,
+\(oqall\(cq, meaning it is enabled for all fonts, and \(oq16\(cq, meaning
+it is enabled only for 16-bit fonts.
+.TP
+.BR error\-file " (\fIstring\fP)"
+indicates the filename of the error file.
+All warnings and errors will be logged here, unless
+.B use\-syslog
+is set to a true value (see below).
+.TP
+.BR no\-listen " (\fItrans-type\fP)"
+disables the specified transport type.
+For example, TCP/IP connections can be disabled with \(oqno\-listen =
+tcp\(cq.
+.TP
+.BR port " (\fIcardinal\fP)"
+indicates the TCP port on which the server will listen for connections.
+.\" .TP
+.\" .BR trusted-clients " (list of \fIstring\fPs)"
+.\" identifies the clients the font server will talk to.
+.\" Others will be refused for the initial connection.
+.\" An empty list means the server will talk to any client.
+.TP
+.BR use\-syslog " (\fIboolean\fP)"
+determines whether errors and diagnostics should be reported via
+.BR syslog (__libmansuffix__)
+(on supported systems) instead of being written to the
+.B error\-file
+(see above).
+.SH "CATALOGUE DIR"
+You can specify a special kind of font path in the form \fBcatalogue:<dir>\fR.
+The directory specified after the catalogue: prefix will be scanned for symlinks
+and each symlink destination will be added as a local fontfile FPE.
+.PP
+The symlink can be suffixed by attributes such as '\fBunscaled\fR', which
+will be passed through to the underlying fontfile FPE. The only exception is
+the newly introduced '\fBpri\fR' attribute, which will be used for ordering
+the font paths specified by the symlinks.
+
+An example configuration:
+
+.nf
+ 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
+.fi
+
+This will add /usr/share/X11/fonts/misc as the first FPE with the attribute
+'unscaled', second FPE will be /usr/share/X11/fonts/75dpi, also with
+the attribute unscaled etc. This is functionally equivalent to setting
+the following font path:
+
+.nf
+ /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
+.fi
+.SS "Example Configuration File"
.nf
XCOMM
XCOMM sample font server configuration file
XCOMM
-XCOMM allow a max of 10 clients to connect to this font server
-client-limit = 10
+XCOMM allow a max of 10 clients to connect to this font server.
+client\-limit = 10
-XCOMM when a font server reaches its limit, start up a new one
-clone-self = on
+XCOMM When a font server reaches the above limit, start up a new one.
+clone\-self = on
-XCOMM alternate font servers for clients to use
-alternate-servers = hansen:7101,hansen:7102
+XCOMM Identify alternate font servers for clients to use.
+alternate\-servers = hansen:7101,hansen:7102
-XCOMM where to look for fonts
-XCOMM the first is a set of Speedo outlines, the second is a set of
-XCOMM misc bitmaps and the last is a set of 100dpi bitmaps
+XCOMM Look for fonts in the following directories. The first is a set of
+XCOMM TrueType outlines, the second is a set of misc bitmaps (such as terminal
+XCOMM and cursor fonts), and the last is a set of 100dpi bitmaps.
XCOMM
-catalogue = /usr/X11R6/lib/X11/fonts/speedo,
- /usr/X11R6/lib/X11/fonts/misc,
- /usr/X11R6/lib/X11/fonts/100dpi/
+catalogue = /usr/X11R6/lib/X11/fonts/TTF,
+ /usr/X11R6/lib/X11/fonts/misc,
+ /usr/X11R6/lib/X11/fonts/100dpi/
XCOMM in 12 points, decipoints
-default-point-size = 120
+default\-point\-size = 120
XCOMM 100 x 100 and 75 x 75
-default-resolutions = 100,100,75,75
-use-syslog = off
-.fi
-.sp
-.SH "FONT SERVER NAMES"
-One of the following forms can be used to name a font server that
-accepts TCP connections:
-.sp
-.nf
- tcp/\fIhostname\fP:\fIport\fP
- tcp/\fIhostname\fP:\fIport\fP/\fIcataloguelist\fP
-.fi
-.PP
-The \fIhostname\fP specifies the name (or decimal numeric address)
-of the machine on which the font server is running. The \fIport\fP
-is the decimal TCP port on which the font server is listening for connections.
-The \fIcataloguelist\fP specifies a list of catalogue names,
-with '+' as a separator.
-.PP
-Examples: \fItcp/fs.x.org:7100\fP, \fItcp/18.30.0.212:7101/all\fP.
-.PP
-One of the following forms can be used to name a font server that
-accepts DECnet connections:
-.sp
-.nf
- decnet/\fInodename\fP::font$\fIobjname\fP
- decnet/\fInodename\fP::font$\fIobjname\fP/\fIcataloguelist\fP
+default\-resolutions = 100,100,75,75
+
+XCOMM Specify our log filename.
+error\-file = /var/log/xfs.log
+
+XCOMM Direct diagnostics to our own log file instead of using syslog.
+use\-syslog = off
.fi
-.PP
-The \fInodename\fP specifies the name (or decimal numeric address)
-of the machine on which the font server is running.
-The \fIobjname\fP is a normal, case-insensitive DECnet object name.
-The \fIcataloguelist\fP specifies a list of catalogue names,
-with '+' as a separator.
-.PP
-Examples: \fIDECnet/SRVNOD::FONT$DEFAULT\fP, \fIdecnet/44.70::font$special/symbols\fP.
-.SH "SEE ALSO"
-X(__miscmansuffix__), \fIThe X Font Service Protocol\fP,
-.br
-\fIFont server implementation overview\fP
+.SH "OUTPUT FILES"
+When operating in daemon mode,
+.B xfs
+sends diagnostic messages (errors and warnings) to the system log via the
+.B syslog
+C library function by default.
+However, these messages can be sent to an alternate location via the
+.B error\-file
+and
+.B use\-syslog
+configuration variables; see \(lqConfiguration File Format\(rq, above.
+.SH "ASYNCHRONOUS EVENTS"
+.B xfs
+handles the following signals specially:
+.TP
+.I SIGTERM
+causes the font server to exit cleanly.
+.TP
+.I SIGUSR1
+causes
+.B xfs
+to re-read its configuration file.
+.TP
+.I SIGUSR2
+causes
+.B xfs
+to flush any cached data it may have.
+.TP
+.I SIGHUP
+causes
+.B xfs
+to reset, closing all active connections and re-reading the configuration
+file.
.SH BUGS
Multiple catalogues should be supported.
+.SH "FUTURE DIRECTIONS"
+Significant further development of
+.B xfs
+is unlikely.
+One of the original motivations behind it was the single-threaded nature of
+the X server \(em a user's X session could seem to \(oqfreeze up\(cq while
+the X server took a moment to rasterize a font.
+This problem with the X server, which remains single-threaded in all
+popular implementations 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.
.SH AUTHORS
Dave Lemke, Network Computing Devices, Inc
.br
Keith Packard, Massachusetts Institute of Technology
+.SH "SEE ALSO"
+.BR X (__miscmansuffix__),
+.BR xfsinfo (__appmansuffix__),
+.BR fslsfonts (__appmansuffix__),
+.BR init (__adminmansuffix__),
+.BR syslog (__libmansuffix__),
+.IR "The X Font Service Protocol" ,
+.I Font Server Implementation Overview