For Debian 3.0 ("woody") several large infrastructural changes have been
made in the wake of XFree86 4.x.
PACKAGE RESTRUCTURING:
The following packages have been eliminated:
rstartabsorbed by xutils
rstartdabsorbed by xutils
xbaseDebian doesn't officially support upgrades from
more than one release previous
xbooksrenamed to xspecs and undergoing an overhaul both
as a package and upstream
xf86setupthis program has been abandoned upstream and cannot
deal with the new XF86Config file format
xfonts-cjkabsorbed by xfonts-base (originally split from
xfonts-base long ago for reasons of size; this
strategy no longer makes sense with the
Unicode-ification of many of the BDF fonts)
xlib6gnow a pseudopackage
xlib6g-devnow a pseudopackage
xlib6g-staticabsorbed by xlibs-dev (but stripped)
xproxythis package was a bad idea and has been split up
xsmabsorbed by xbase-clients
xcontrib, a package previously using a separate upstream source archive,
has now been rendered obsolete as well; the programs in it are now part of
xbase-clients.
The following packages are new:
lbxproxysplit from xproxy
libdps1completely new
libdps1-dbgcompletely new
libdps-devcompletely new
libxaw6split from xlib6g
libxaw6-dbgcompletely new
libxaw7completely new
libxaw7-dbgcompletely new
libxaw6-devsplit from xlib6g-dev
libxaw7-devcompletely new
proxymngrsplit from xproxy
xfonts-100dpi-transcodedcompletely new
xfonts-75dpi-transcodedcompletely new
xfonts-base-transcodedcompletely new
xfwpsplit from xproxy
xlibmesa3completely new
xlibmesa3-dbgcompletely new
xlibmesa-devcompletely new
xlibosmesa3completely new
xlibosmesa3-dbgcompletely new
xlibosmesa-devcompletely new
xlibsreplaces xlib6g (does not include libXaw)
xlibs-dbgcompletely new
xlibs-devreplaces xlib6g-dev and xlib6g-static
(does include libXaw)
xserver-xfree86(almost) completely new
xspecsthe ongoing rebirth of xbooks
xutilssplit in part from xbase-clients,
xlib6g-dev, and xcontrib
x-window-systemsee below
x-window-system-coresee below
The following packages exist only in a separate, limited packaging of XFree86 3.x:
xext
xlib6
xlib6-altdev
xserver-3dlabs
xserver-8514
xserver-agx
xserver-common-v3
xserver-fbdev
xserver-i128
xserver-mach32
xserver-mach64
xserver-mach8
xserver-mono
xserver-p9000
xserver-s3
xserver-s3v
xserver-svga
xserver-tga
xserver-vga16
xserver-w32
xserver-xsun
xserver-xsun24
xserver-xsun-mono
NEW X WINDOW SYSTEM METAPACKAGES THAT MAKE LIFE EASY:
Confused by all the packages comprising XFree86? Don't know which ones you
need and which ones you don't?
Two metapackages make life easier. One is strictly for end users; the
other is mainly intended for use by the new "task" system, but may be used
by end users as well, of course.
They are:
x-window-system
This metapackage provides substantially all the components of the X Window
System as developed by the XFree86 Project, as well as a set of historically
popular accessory programs.
x-window-system-core
This metapackage provides the essential components for a standalone
workstation running the X Window System. It provides the X libraries, an
X server, a set of fonts, and a group of basic X clients and utilities.
If you want to play it safe and "just want X to work", run the following
command:
# apt-get install x-window-system
If you have limited disk space or specialized needs, there is a stripped
down version:
# apt-get install x-window-system-core
Note that with this metapackage you won't get a window manager or terminal
emulator. Debian provides several different programs for either function.
Tasks will generally depend on x-window-system-core, not x-window-system.
NEW FONT PACKAGES THAT USE CHARACTER ENCODINGS OTHER THAN ISO 8859-1:
XFree86 4.x features a much richer character repertoire in its fonts than
XFree86 3.x did. Previously, only ISO 8859-1 (the "Latin-1" alphabet) and
a few East Asian and miscellaneous encodings were supported by the stock
fonts. Now, many fonts are also available in several other forms from ISO
8859, and in ISO 10646 (Unicode-compatible) as well.
The X server does not yet support the transcoding of fonts on the fly; that
is, the server cannot have the ISO 10646-1 version of a font installed, and
resequence it transparently to behave like, say, ISO 8859-2 upon request
from an X client. Support for this feature is expected in a future release
of XFree86.
In the meantime, the basic bitmap font packages (xfonts-base, xfonts-75dpi,
and xfonts-100dpi) continue to include the font encodings they used to, but
the new ISO 10646-1 versions have been added. Three new font packages,
with the same names as the above but with the term "-transcoded" appended,
include versions of the same fonts, transcoded to several other character
encodings, such as ISO 8859-2 and ISO 8859-15. The ISO 8859-1 versions of
the fonts, despite being a strict subset of the ISO 10646-1 are preserved
in the non-"transcoded" packages for two reasons:
1) Because the X server (and font servers) do not yet support on-the-fly
recoding of available fonts to satisfy XLFD requests (see above); and
2) Many existing X applications underspecify their font requests, and do
not request any particular character set or encoding, but nevertheless
assume that they will get back an ISO 8859-1-encoded font, because
that was all that was available in the X Window System sample
implementation for many years.
If you need fonts that use character encodings other than ISO 10646-1 and
ISO 8859-1, install the xfonts-base-transcoded, xfonts-75dpi-transcoded,
and xfonts-100dpi-transcoded packages. These supplement, and do not
replace, their non-"transcoded" counterparts.
FONT AND DPI (DOTS-PER-INCH) SETTINGS SET TO 100DPI BY DEFAULT:
You should be aware that, by default, xdm and xinit (and thus startx) start the
X server using the "-dpi 100" argument, which forces the X server to treat the
display as having 100 dots per inch. Furthermore, xfs is configured to serve
fonts with a preference for 100dpi versions over 75dpi version if a font
request could be satisfied by either, and dexconf, the Debian X Configurator,
writes XFree86 server configuration files with a preference for the 100dpi font
directory over the 75dpi directory.
This particularly affects the visible font size. Another common default is 75
dpi; some font rasterizers do not deal well with dpi settings other than 75 or
100.
This default can be modified by editing the following conffiles:
xdm/etc/X11/xdm/Xservers(see xdm(1))
xfs/etc/X11/fs/config(see xfs(1))
xinit/etc/X11/xinit/xserverrc(see xinit(1))
The /etc/X11/XF86Config and /etc/X11/XF86Config-4 files (see the
XF86Config(7) manual page for the distinction) are not conffiles, but may
also be edited to change this default.
TCP AND UDP PORT LISTENING DISABLED BY DEFAULT:
To help ensure a more secure default configuration of your Debian system,
several packages ship with network port listening disabled by default.
This includes xdm, which does not listen on a UDP port for XDMCP requests;
xfs, which does not listen on a TCP port for font requests; and the X
server itself, which, when started by xdm, xinit, or startx, does not
listen on a TCP port for client connections.
This default can be modified by editing the following conffiles:
xdm/etc/X11/xdm/xdm-config(see xdm(1))
xfs/etc/X11/fs/config(see xfs(1))
X server started by startx/xinit/etc/X11/xinit/xserverrc
(see xinit(1))
X server started by xdm/etc/X11/xdm/Xservers
(see xdm(1))
AUTOMATIC XMODMAP USAGE DISABLED BY DEFAULT:
Automatic usage of xmodmap on X session startup is now deprecated, and
disabled in default configurations. The main reason for this is that
unpredictable things can happen if both the system and the user are using
Xmodmap files, and sometimes the user doesn't even have to have one for the
keyboard to get screwed up by unintended side effects; if you want to use
Xmodmap to prep the keyboard for use with the xdm greeter (login widget)
for instance, you may execute it in a file like /etc/X11/xdm/Xsetup, but it
will get run again when the session starts, followed by a user's Xmodmap,
for a total of three possible executions of Xmodmap for a single X session.
Unless the files are carefully written, this can cause the keyboard to
behave strangely.
Therefore, on upgrading to 4.1.0-7 or later, the files
/etc/X11/Xsession.d/40xfree86-common_xmodmap and /etc/X11/Xmodmap are no
longer marked as conffiles.
/etc/X11/Xsession.d/40xfree86-common_xmodmap is deleted if it is unchanged
from the version last distributed as a conffile with the package.
Otherwise, it is moved to
/etc/X11/Xsession.d/40xfree86-common_xmodmap.xfree86-common-old. See
Xsession(5) for an example of how to write your own xmodmap script for
Xsession.
/etc/X11/Xmodmap is deleted if it is unchanged from the version last
distributed as a conffile with the package. Otherwise, it is is moved to
/etc/X11/Xmodmap.xbase-clients-old. See
/usr/share/doc/xbase-clients/examples/Xmodmap for an example of how to
write your own Xmodmap file.
DRI (DIRECT RENDERING INFRASTRUCTURE) ISSUES:
DRI is the XFree86 X server's mechanism for supported hardware-acclerated
3D operations. DRI drivers are loaded by the Mesa 3D library, and
contained in the "xlibmesa3" package. A few points are noteworthy:
1) DRI is not supported on all graphics hardware. Some graphics hardware
has no 3D hardware acceleration; for some no DRI support has been written
yet, and for some (such as NVidia cards), the manufacturer refuses to
disclose vital programming specifications to software developers that would
make DRI support possible.
2) DRI requires kernel support, and the interface between the X server's
DRI and the kernel's support for it changes over time. You may want to
consult the debian-user mailing list and/or the Debian X Strike Force page
for the up-to-date information regarding your hardware.
3) Users of 3Dfx Voodoo3, Voodoo4, and Voodoo5 cards will need to install
the "libglide3" package to take advantage of the 3Dfx DRI driver in
xlibmesa3. Users of other hardware do not need to install libglide3.
OLD X SERVER SELECTION FILE NO LONGER USED:
The /etc/X11/Xserver file is no longer used, and is completely ignored by
the new X server wrapper.
/etc/X11/Xwrapper.config is the new X server wrapper configuration file;
it is configured via the debconf interface, as is the selection of the
default X server, which is no longer stored in the X server wrapper
configuration file at all.
XTERM ISSUES:
1) The customizations that the Debian xterm package used to provide in
/etc/X11/Xresources/xterm have now been placed in /etc/X11/app-defaults/XTerm
and /etc/X11/app-defaults/XTerm-color instead. The old X resource file
contains settings that may no longer be appropriate, and may cause problems
with certain key bindings (such as home and end) in xterm.
2) xterm requires Unix98 pty (pseudo-terminal) device support in the kernel
(a.k.a "devpts"), and this interface may not be available on your system
(though it will be if you use the kernels supplied in the Debian 3.0
release).
If you are unable to start the xterm program, install a kernel with Unix98
pty interface. The Linux kernel uses the CONFIG_DEVPTS_FS configuration
option for this purpose. You can confirm that devpts support is active by
running the "mount" command.
********************************************************************************
For Debian 2.2 ("potato"), the xlib6-static package has been eliminated;
it was very large and it is likely that very few people do static debugging
on libc5 X binaries anymore.
********************************************************************************
Between Debian 2.0 ("hamm") and 2.1 ("slink") the XFree86 packages were
extensively reorganized; the xbase package exists solely to smooth the
transition for people upgrading from Debian 2.0 or earlier. Once it has
been installed it may be removed at any time; it contains no programs,
libraries, or documentation.
Example commands are provided below for easy cut-and-pasting.
Important things to note:
1) Now that it has been upgraded, the xbase package should be removed as
soon as is convenient. Leaving it in place will make it necessary to use
the "--force-depends" option to dpkg to remove any package that xbase
depends on (like xdm and xfs, see below.) You should not dpkg --purge
xbase; in some situations this causes dpkg to remove conffiles that
formerly belonged to xbase but now belong to other packages.
dpkg --remove xbase
2) xdm and xfs (among other programs) are now in their own packages. They
will start automatically on boot if they are installed. If you do not
desire this, remove the packages before your next reboot.
dpkg --remove xdm
dpkg --remove xfs
3) The /etc/X11/config file is no longer used and may be removed. The
flags in it have been relocated to other files.
man Xsession.options
man xdm.options
man xfs.options
4) The X font and static library packages have been renamed.
xfntbase -> xfonts-base
xfnt75 -> xfonts-75dpi
xfnt100 -> xfonts-100dpi
xfntscl -> xfonts-scalable
xfntbig -> xfonts-cjk
xfntcyr -> xfonts-cyrillic
xfntpex -> xfonts-pex
xslib -> xlib6-static [not present in Debian 2.2]
xslibg -> xlib6g-static
There are no serious consequences of leaving the old X fonts and static
libraries around. The contents of these packages have not changed. The X
font server (xfs), for instance, formerly in xbase but now in its own
package, works just as well with xfntbase as with xfonts-base. Still, it
is advisable to install the renamed versions of these packages as soon as
is convenient, in the event that their contents do change in the future.
Note that most people will only need the first four listed packages; if you
require any of the others, you'll probably know it.
apt-get install xfonts-base
apt-get install xfonts-75dpi
apt-get install xfonts-100dpi
apt-get install xfonts-scalable
apt-get install xfonts-cjk
apt-get install xfonts-cyrillic
apt-get install xfonts-pex
apt-get install xlib6-static [not present in Debian 2.2]
apt-get install xlib6g-static
Those looking for documentation about XFree86 and the X Window System should
start in /usr/share/doc/xfree86-common.
Further notes on the X reorganization above follow.
Furthermore, the nature of /etc/X11/Xresources has changed; it is now a
directory containing package-specific resource files instead of a single
file.
xbase used to be a catch-all package, containing all kinds of
miscellaneous data, programs, and documentation. That is no longer the
case. Its contents have been redistributed among other packages, and
several completely new packages have been created.
New packages were created for a variety of reasons:
1) In some cases, there were undeclared dependencies on other programs.
For instance, the rstart and rstartd programs depend on rsh.
2) There are several programs which are daemons and should be split out
for easier management. This includes xdm and xfs. I believe the
programs provided in xproxy (new package) would also work well this
way, but they are not yet handled like other daemons in Debian.
3) Some of the X clients provided in the former xbase package, like twm,
xmh, and xterm, have very popular replacements, and may just be a
waste of disk space for some people. (It's worth keeping in mind that
all of the X source code, even the libraries, was originally intended
to be only a "sample implementation" of various standards.)
4) It is desirable to have a common foundation for both systems designed
to be X terminals (which run all their X clients from a remote
machine) and for application servers which may not need to run X
servers on their own display hardware. That is the purpose of the new
xfree86-common package. It also simplifies the task of dealing with
any large changes in the X directory namespace that may arise in the
future (e.g., X11R7, or simply putting all of X in /usr).
The new packages in the Debian XFree86 distribution are rstart, rstartd, twm,
xbase-clients, xdm, xfree86-common, xfs, xmh, xproxy, xserver-common, xsm,
and xterm. Some files from the old xbase package were also placed in
xlib6g (XKB and locale data) and xlib6g-dev (development tools).
xbase is now an effectively empty package that exists only to have the
package management system automatically "pull in" the new packages (and the
latest versions of the X libraries). Once it has been upgraded, it may be
safely removed.
Furthermore, the X font and static library packages have been renamed. The
following list summarizes these changes:
xfntbase -> xfonts-base
xfnt75 -> xfonts-75dpi
xfnt100 -> xfonts-100dpi
xfntscl -> xfonts-scalable
xfntbig -> xfonts-cjk
xfntcyr -> xfonts-cyrillic
xfntpex -> xfonts-pex
xslib -> xlib6-static [not present in Debian 2.2]
xslibg -> xlib6g-static
I believe the new names are less cryptic. Note, however, that the old
packages may not necessarily be automatically upgraded to the new versions.
This is because their names have changed, and as yet there is no easy way
to tell the packaging system that a package has changed its name. However,
there are no serious consequences of leaving the old X fonts and static
libraries around. The contents of these packages have not changed. The X
font server, for instance, formerly in xbase but now in its own package,
works just as well with xfntbase as with xfonts-base.
Still, it is advisable to install the renamed versions of these packages as
soon as is convenient, in the event that their contents do change in the
future.
Upgraders from 3.3.2.3a-1 or earlier are advised to use the new version
of the configuration file /etc/X11/Xsession, or at least incorporate
the new code that merges in X resources from the /etc/X11/Xresources
directory. Older versions do not do so because /etc/X11/Xresources has
not historically been a directory.
Prior to version 3.3.2.3a-2 of the xbase package, /etc/X11/Xresources was a
file, not a directory, and was automatically checked by dpkg for local
customizations, which would be preserved across upgrades if the packaged
version of the file had not changed (it was a "conffile"). Since the
nature of /etc/X11/Xresources has changed, it is not possible to
automatically handle old versions of the file in any manner that is both
automatic and intelligent. Those who customized that file should find more
appropriate files within the /etc/X11/Xresources directory to modify. The
old file will be found in /etc/X11/Xresources.xfree86-common-old.
Branden Robinson, 14 November 2001