home | help
xfs(1)			     General Commands Manual			  xfs(1)

NAME
     xfs - X font server

SYNOPSIS
     xfs  [  -config configuration_file ] [ -daemon ] [ -droppriv ] [ -inetd ] [
     -ls listen_socket ] [ -nodaemon ] [ -port tcp_port ] [ -user username  ]  [
     -version ]

DESCRIPTION
     xfs is the X Window System font server.  It supplies fonts to X Window Sys-
     tem  display servers.  The server is usually run by a system administrator,
     and started via init(8) or inetd(8).  Users may also wish to start  private
     font servers for specific 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, /usr/local/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 create 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  rea-
	    sons,  as  xfs may have undiscovered buffer overflows or other paths
	    for possible exploit, both local and remote.  When	using  this  op-
	    tion,  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 in-
	    voked it.

     -inetd
	    informs xfs that it is being started by inetd, and that a  listening
	    socket  on	the  appropriate port is being passed as standard input.
	    Assumes that inetd is configured to "wait" mode, and will thus allow
	    xfs to handle listening for and  accepting	further  connections  on
	    this  port.   This allows xfs to be started on demand when the first
	    font client connects.  When using this option, the -daemon and -port
	    flags are ignored.

     -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  it-
	    self to handle additional connections.

     -nodaemon
	    instructs xfs not to daemonize (fork and detach from its controlling
	    terminal).	This option only has an effect if xfs is built to daemo-
	    nize 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 number is 7100.  This option  is  ig-
	    nored  if  xfs  is configured 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.

     -version
	    instructs xfs to print the program version and exit.

INPUT FILES
     xfs reads and serves any font file format recognized by the  X  server  it-
     self.   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 configuration 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 cata-
	    logue:<dir> entry. See the CATALOGUE DIR section below for details.

     client-limit (cardinal)
	    determines the number of clients this font server will  support  be-
	    fore  refusing  service.  This is useful for tuning the load on each
	    individual font server.

     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  in-
	    formation  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 horizontal and vertical res-
	    olutions 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 example, TCP/IP  connec-
	    tions can be disabled with `no-listen = tcp'.

     port (cardinal)
	    indicates  the  TCP port on which the server will listen for connec-
	    tions.

     use-syslog (boolean)
	    determines whether errors and diagnostics  should  be  reported  via
	    syslog(3) (on supported systems) instead of being written to the er-
	    ror-file (see above).

CATALOGUE DIR
     You  can  specify	a special kind of font path in the form catalogue:<dir>.
     The directory specified after the catalogue: prefix  will	be  scanned  for
     symlinks  and  each  symlink  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 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/share/X11/fonts/TTF,
		  /usr/share/X11/fonts/misc,
		  /usr/share/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

      # Direct diagnostics to our own log file instead of using syslog.
      use-syslog = off

OUTPUT FILES
     When  operating  in  daemon mode, xfs sends diagnostic messages (errors and
     warnings) to the log file specified by the error-file  configuration  vari-
     able by default.  However, these messages can be sent to an alternate loca-
     tion  via	the error-file and use-syslog configuration variables; see "Con-
     figuration 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 implementations to this day, has been mitigated on
     two fronts: machines have gotten much faster, and client-side font  render-
     ing  (particularly  via  the Xft library) is the norm in contemporary soft-
     ware.

AUTHORS
     Dave Lemke, Network Computing Devices, Inc
     Keith Packard, Massachusetts Institute of Technology

SEE ALSO
     X(7), xfsinfo(1), fslsfonts(1), init(8), inetd(8), syslog(3),  The  X  Font
     Service Protocol, Font Server Implementation Overview

X Version 11			    xfs 1.2.0				  xfs(1)

home | help