Debian README for xfree86-common package

The xfree86-common package provides the infrastructure common to all Debian X
installations.

Newcomers to the X Window System should first read the file
/usr/share/doc/xfree86-common/FAQ.

Those who have upgraded their Debian X packages from version 3.3.2.3-2 or
earlier (Debian 2.0), will want to read the information in
/usr/share/doc/xfree86-common/README.Debian-upgrade.

Note that as of version 3.3.6-4, support for the /etc/X11/window-managers
file has been removed; the default window manager is now determined by
using the Debian alternatives mechanism.  See update-alternatives(8) for
more information.

Use "dpkg --print-avail <package>" to read the extended descriptions of
the XFree86 packages and get some idea of their contents.

There are three common types of X Window System installation:

1) standalone X workstation -- the X server and most X clients run on the
same physical hardware.  Thus both the xlib6g and xserver-common packages
will be present.

2) X terminal -- only an X server is present; all X clients are run on remote
hardware.  The xlib6g package need not be present, but the xserver-common
package will be.  For Debian policy reasons, xlib6g is of "standard" priority
and thus most likely will be installed, unless the administrator has taken
deliberate steps to remove it.  Nevertheless, if the machine in question is
configured strictly as an X terminal, the X libraries present on the machine
will not be used.

3) X client server -- here the different usages of "client" and "server" in
common computing parlance and the X sense can be somewhat confusing.
Essentially, this is the counterpart to 2) above.  This is a machine on
which X clients run, but they are displayed only to remote machines; this
machine's own video hardware (if any) is not used by the X Window System.
Therefore, the xlib6g package will be present (since by definition all X
clients require the X libraries), but the xserver-common package will not
be.

One can conclude from the above that any Debian machine which has anything to
do with the X Window System will have xlib6g and/or xserver-common installed.
The xfree86-common package is the foundation on which those two packages
themselves depend.

In addition to manual pages and documentation, the xfree86-common
package contains the following:

1) the basic X directory hierarchy and symbolic links into it -- /usr/X11R6
is the canonical location for the X Window System according to the FHS
(Filesystem Hierarchy Standard).  By providing both this hierarchy and the
symbolic links pointing into it (/usr/bin/X11, /usr/lib/X11, et al.), any
future changes in the filesystem location or structure of the X Window System
can be centrally managed.

2) the /etc/X11/Xresources directory, and the xfree86-common file within it
-- historically in Debian systems, /etc/X11/Xresources has been a plain file,
whose contents were processed by an X resource database merge (a.k.a. xrdb
-merge) when an X session was launched (whether by startx or xdm).  This
arrangement made it difficult for other packages to specify system-wide but
user-modifiable X resources.  Now, however, /etc/X11/Xresources is a directory.
/etc/X11/Xsession (see below) performs an xrdb -merge on each of the files
within this directory; it is thus easy for individual packages to allow for
system-wide user-customizable X resources.  It is strongly suggested that
packages wishing to take advantage of this place a file in /etc/X11/Xresources
with the same name as the package in question, to prevent name collisions.  The
xfree86-common file here should be used for very high-level, global resource
settings (such as setting the color customization, setting properties of Athena
widgets, etc.).  See the X(1) manual page for more information on X resources.

3) /etc/X11/Xsession -- this is a shell script executed each time an X session
is started, whether by startx or xdm.  Since it resides in /etc, the system
administrator is free to edit it, but for convenience some aspects of its
behavior are easily customizable via the /etc/X11/Xsession.options file.
See the Xsession(5) manual page for more information.

4) /etc/X11/Xsession.options -- a plain text file containing configuration
options for the /etc/X11/Xsession file.  See the Xsession.options(5)
manual page for more information.

Branden Robinson, 2 Mar 2000
