Provided by: xfs_1.0.8-7_amd64 bug

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 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, /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  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.

       -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  number  is 7100.  This option is ignored 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.

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  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 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 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 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
              horizontal  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 example, 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 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/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

       # 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
       system  log  via the syslog C library function by default.  However, these messages 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 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.

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