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: rstart absorbed by xutils rstartd absorbed by xutils xbase Debian doesn't officially support upgrades from more than one release previous xbooks renamed to xspecs and undergoing an overhaul both as a package and upstream xf86setup this program has been abandoned upstream and cannot deal with the new XF86Config file format xfonts-cjk absorbed 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) xlib6g now a pseudopackage xlib6g-dev now a pseudopackage xlib6g-static absorbed by xlibs-dev (but stripped) xproxy this package was a bad idea and has been split up xsm absorbed 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: lbxproxy split from xproxy libdps1 completely new libdps1-dbg completely new libdps-dev completely new libxaw6 split from xlib6g libxaw6-dbg completely new libxaw7 completely new libxaw7-dbg completely new libxaw6-dev split from xlib6g-dev libxaw7-dev completely new proxymngr split from xproxy xfonts-100dpi-transcoded completely new xfonts-75dpi-transcoded completely new xfonts-base-transcoded completely new xfwp split from xproxy xlibmesa3 completely new xlibmesa3-dbg completely new xlibmesa-dev completely new xlibosmesa3 completely new xlibosmesa3-dbg completely new xlibosmesa-dev completely new xlibs replaces xlib6g (does not include libXaw) xlibs-dbg completely new xlibs-dev replaces xlib6g-dev and xlib6g-static (does include libXaw) xserver-xfree86 (almost) completely new xspecs the ongoing rebirth of xbooks xutils split in part from xbase-clients, xlib6g-dev, and xcontrib x-window-system see below x-window-system-core see 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