 
 NAME
      xfs - X font server
 
 SYNOPSIS
-     xfs [ -config configuration_file ]	[ -ls listen-socket  ]	[
-     -port tcp_port ]
+     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
+     xfs is the	X Window System	font server.  It  supplies  fonts
      to	X Window System	display	servers.
 
-STARTING THE SERVER
      The server	is usually run by  inetd,  as  described  in  the
      NOTES  section below.   Automatic starting	can be enabled or
      disabled  through	the fsadmin(1)	or  inetadm(1)	commands.
      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(5).
+
 OPTIONS
      -config configuration_file
-	     Specifies the configuration  file	the  font  server
-	     will   use.    The	 default  configuration	 file  is
-	     /usr/openwin/lib/X11/fontserver.cfg
+	  specifies the	configuration file xfs will use.  If this
+	  parameter is not specified, the first	file found in the
+	  list				 /etc/X11/fontserver.cfg,
+	  /usr/X11/lib/X11/fs/config,
+	  /etc/openwin/fs/fontserver.cfg,
+	  /usr/openwin/lib/X11/fontserver.cfg, will be used.
+
+     -daemon
+	  instructs xfs	 to  fork  and	go  into  the  background
+	  automatically	at startup.  If	this option is not speci-
+	  fied,	xfs will run as	a regular process (unless it  was
+	  built	to daemonize by	default).  When	running	as a dae-
+	  mon, 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 possi-
+	  ble 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.
+	  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.
+	  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  -drop-
+	  priv for why this may	be desired.  By	default, xfs runs
+	  with the user	and group IDs of the user who invoked it.
+

-SIGNALS
-     SIGTERM This causes the font server to exit cleanly.
-
-     SIGUSR1 This signal is used to cause the server  to  re-read
-	     its configuration file.
-
-     SIGUSR2 This signal is used to cause the server to	flush any
-	     cached data it may	have.
-
-     SIGHUP  This signal is used to cause the  server  to  reset,
-	     closing  all  active  connections and re-reading the
-	     configuration file.
 
 
+INPUT FILES
+     xfs reads and serves any font file	format recognized by  the
+     X server itself.  It locates font files through the specifi-
+     cation of a catalogue, which is declared in xfs's configura-
+     tion file.

-CONFIGURATION
-     The configuration language	is a list of  keyword  and  value
-     pairs.   Each  keyword  is	 followed  by an '=' and then the
-     desired value.
+  Configuration	File Format
+     xfs reads its configuration from  /usr/X11/lib/X11/fs/config
+     by	 default  (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	string)
-	  List of alternate servers for	this font server.
+     alternate-servers (list of	strings)
+	  lists	alternate servers for this font	server.	 See  the
+	  FONT SERVER NAMES section of X(5) for	the syntax of the
+	  string.
 
-     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.
+     catalogue (list of	strings)
+	  declares as ordered list of  font  path  element  names
+	  from which fonts will	be served.  The	current	implemen-
+	  tation only supports a single	 catalogue  ("all")  con-
+	  taining all of the specified fonts.
 
      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.
+	  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)
-	  Whether this font server should attempt to clone itself
-	  when it reachs the client-limit.
+	  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  fonts  that
-	  don't	specify.  The default is 120.
+	  The default pointsize	(in decipoints)	for font requests
+	  that don't specify a point size.  The	default	is 120.
 
      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.  Multiple reso-
-	  lutions are separated	by commas.
+	  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)
-	  Filename of the error	file.  All  warnings  and  errors
-	  will be logged here.
+	  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)
-	  TCP port on which the	server will  listen  for  connec-
-	  tions.
+	  indicates the	TCP port on which the server will  listen
+	  for connections.
 
      use-syslog	(boolean)
-	  Whether syslog(3) (on	supported systems) is to be  used
-	  for errors.
+	  determines whether errors  and  diagnostics  should  be
+	  reported  via	 syslog(3) (on supported systems) instead
+	  of being written to the error-file (see above).
 
-     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.
 
-EXAMPLE
-     #
-     # sample font server configuration	file
-     #
+  Example Configuration	File
+     #
+     # sample font server configuration	file
+     #
 
-     # allow a max of 128 clients to connect to	this font server
-     client-limit = 128
+     # allow a max of 10 clients to connect to this font server.
+     client-limit = 10
 
-     # when a font server reaches its limit, start up a	new one
+     # When a font server reaches the above limit, start up a new one.
      clone-self	= on
 
-     # alternate font servers for clients to use
+     # Identify	alternate font servers for clients to use.
      alternate-servers = hansen:7101,hansen:7102
 
-     # where to	look for fonts
-     catalogue = /usr/openwin/lib/X11/fonts/F3bitmaps,
-		 /usr/openwin/lib/X11/fonts/Type1,
-		 /usr/openwin/lib/X11/fonts/Speedo,
-		 /usr/openwin/lib/X11/fonts/misc,
-		 /usr/openwin/lib/X11/fonts/75dpi,
-		 /usr/openwin/lib/X11/fonts/100dpi
+     # 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/X11/lib/X11/fonts/TTF,
+		 /usr/X11/lib/X11/fonts/misc,
+		 /usr/X11/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
-     use-syslog	= off
+     # Specify our log filename.
+     error-file	= /var/log/xfs.log
 
+     # Direct diagnostics to our own log file instead of using syslog.
+     use-syslog	= off

-
-FONT SERVER NAMES
-     One of the	following forms	can be used to name a font server
-     that accepts TCP connections:
-
-	 tcp/hostname:port
-	 tcp/hostname:port/cataloguelist
-
-     The hostname specifies the	name (or decimal numeric address)
-     of	 the  machine  on  which the font server is running.  The
-     port is the decimal TCP port on which  the	 font  server  is
-     listening	for  connections.   The	cataloguelist specifies	a
-     list of catalogue names, with '+' as a separator.
-
-     Examples: tcp/fs.x.org:7100, tcp/18.30.0.212:7101/all.
-
-     One of the	following forms	can be used to name a font server
-     that accepts DECnet connections:
-
-	 decnet/nodename::font$objname
-	 decnet/nodename::font$objname/cataloguelist
-
-     The nodename specifies the	name (or decimal numeric address)
-     of	 the  machine  on  which the font server is running.  The
-     objname is	a normal, case-insensitive  DECnet  object  name.
-     The  cataloguelist	specifies a list of catalogue names, with
-     '+' as a separator.
 
-     Examples:			     DECnet/SRVNOD::FONT$DEFAULT,
-     decnet/44.70::font$special/symbols.
 
 
+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.
 
 
 NOTES
      The xfs service is	managed	by the service management  facil-
      ity, smf(5), under	the service identifier:
 
      svc:/application/x11/xfs:default
 
      Administrative actions on this service,  such  as	enabling,
      disabling,	 or  requesting	 restart,  can be performed using
      svcadm(1M). Responsibility	 for  initiating  and  restarting
      this  service is delegated	to inetd(1M).  Use inetadm(1M) to
      make configuration	changes	and to view configuration  infor-
      mation for	this service. The service's status can be queried
      using the svcs(1) command.
 
 ATTRIBUTES
      See attributes(5) for descriptions	of the	following  attri-
      butes:
 
      ____________________________________________________________
     |	    ATTRIBUTE TYPE	  |	  ATTRIBUTE VALUE	|
     |_____________________________|_____________________________|
     | Availability		  | SUNWxwfs			|
     |_____________________________|_____________________________|
 
 
 SEE ALSO
      fsadmin(1),     fsinfo(1),	    fslsfonts(1),     fstobdf(1),
-     showfont(1),  inetadm(1M),	 inetd(1M),  smf(5), X11(5), Font
-     server implementation overview
+     showfont(1),  inetadm(1M),	 inetd(1M),  smf(5),  X(5),  sys-
+     log(3), The X Font	Service	Protocol, Font Server Implementa-
+     tion Overview
 
 BUGS
      Multiple catalogues should	be supported.
 
 AUTHORS
      Dave Lemke, Network Computing Devices, Inc
      Keith Packard, Massachusetts Institute of Technology
 
+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.
 
 
 
 
 
 
 
 
 
 
