<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
<!ENTITY % defs SYSTEM "defs.ent"> %defs;
]>

<article>

<title>Release Notes for XFree86&reg; &relvers;
<author>The XFree86 Project, Inc
<date>April 2006

<ident>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.142 2006/04/29 03:35:46 dawes Exp $
</ident>

<abstract>

This document contains information about the various features and their current 
status in the XFree86 &relvers; release.

</abstract>

<toc>

<p>

<sect>Introduction to the 4.x Release Series
<p>
XFree86 4.0 was the first official release of the XFree86 4 series.
<![ %updaterel [
XFree86 &relvers; is the &whichupdaterel; update to &fullrelvers;, which is the 
latest full release in that series.
]]>
<![ %fullrel [
The current release (&relvers;) is the latest in that series.
]]>
The XFree86 4.x series  represents a significant redesign of the XFree86 X server,
with a strong focus on modularity
and configurability.

<![ %relcandidate [
<sect1>&fullrelvers; RC&rcnum;
<p>
This is release candidate &rcnum; for the &fullrelvers; release, and is 
feature-complete.  Known problems with this release candidate include:

<itemize>

<item>The documentation is not <em>fully</em> up to date.

</itemize>
]]>

<sect>Configuration: a Quick Synopsis
<p>
Automatic configuration was introduced with XFree86 4.4.0 
which makes it possible to start XFree86 without first creating a 
configuration file.  This has been further improved in XFree86
4.5.0 and 4.6.0.  If you experienced any problems with automatic configuration
in a previous release, it is worth trying it again with this release.

While the initial automatic configuration support was originally targeted
ust for Linux and the FreeBSD variants, as of 4.5.0 it also includes
Solaris, NetBSD and OpenBSD support. Full support for automatic
configuration is planned for other platforms in future releases.

If you are running Linux, FreeBSD, NetBSD, OpenBSD, or Solaris, try Auto
Configuration by running:

<tscreen><verb>
XFree86 -autoconfig
</verb></tscreen>

If you want to customise some things afterwards, you can cut and paste the
automatically generated configuration from the
<tt>/var/log/XFree86.0.log</tt> file into an <tt>XF86Config</tt> file
and make your customisations there.  If you need to customise some parts
of the configuration while leaving others to be automatically detected,
you can combine a partial static configuration with the automatically
detected one by running:

<tscreen><verb>
XFree86 -appendauto
</verb></tscreen>

If you using a platform that is not currently supported, then you must try one 
of the older methods for getting started like <tt>xf86cfg</tt>", 
which is our graphical configuration tool.  It also has a text mode 
interface that an be used to create an initial configuration file and 
customise existing configurations.

After that, you can use XFree86 server's ability to create a 
starting configuration file.  To do so you must login as root, and run:

<tscreen><verb>
XFree86 -configure
</verb></tscreen>

and then follow the instructions.

Finally, if all else fails, the trusty old standby text-based tool
"<tt>xf86config</tt>" can also be used for generating X server config
files.

Hopefully, at least one, and perhaps all of these various configuration options 
will give you a reasonable starting point for a suitable configuration
file but we think that with the automatic mechanism you will probably not 
need any. 

If you would like to customise the configuration file, see the <htmlurl
name="XF86Config manual page" url="XF86Config.5.html">.  You should also
check the driver-specific manual pages and the related documentation, which
is found at <ref id="drivertables" name="tables below">.

Before downloading any of the binary distributions for this release, 
read through the <htmlurl name="Installation Document"
url="Install.html"> as it can point out which particular binary you should 
download. 

<![ %updaterel [
The following sections describe what has changed in the update release(s)
as well as what is <bf>new</bf> in the latest full release (&fullrelvers;).
]]>
<![ %fullrel [
The next section describes what is <bf>new</bf> in the latest version (&relvers;)
compared with the previous full release (&prevfullrelvers).
]]>
There are many new features in this release and we unfortunately do not have 
enough space
to cover
them all here.

</sect>

<![ %updaterel [
<sect>Summary of updates in &relvers;.
<p>

</sect>
]]>

<sect>Summary of new features in &fullrelvers;.
<p>

This is a sampling of the new features in XFree86 &fullrelvers;.  A more
complete list of changes can be found in the CHANGELOG that is part of
the XFree86 source tree.  It can also be viewed online at our <url
name="CVSweb server"
url="http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/CHANGELOG?rev=HEAD">.

<sect1>Security Updates
<p>
The following security issue has been fixed in this release:

<itemize>

<item>X server pixmap allocation flaw (<url name="CERT Vulnerability
Note VU#102441" url="http://www.kb.cert.org/vuls/id/102441">, <url
name="CAN-2005-2495"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2495">).

</itemize>

<sect1>Video Driver Enhancements
<p>

<itemize>
<item>Remove cfb support from the i740, nsc, s3virge, siliconmotion and via
drivers.

</itemize>

<sect2>aspeed
<p>

<itemize>
<item>A new driver for ASPEED Technologies' AST2000 graphics chips.

</itemize>

<sect2>ati
<p>

<itemize>
<item>Reinstate support for all ATI adapters on all architectures supported
by the XFree86 common layer.

<item>Restore accuracy of atimisc's clock probe despite certain I/O errors.

<item>Change the atimisc driver on big-endian systems to allow depth 24
even if the big-endian aperture is not available, by swapping RGB masks.

<item>Fix an ATI driver probe crash.

<item>Workaround for screen-to-screen copy corruption in second-generation
integrated controllers.

<item>Improve accuracy of atmisc's calculations that are based on a
29.5&nbsp;MHz reference clock.

<item>Chrontel 8398 related changes to the Mach64 support.

<item>Fix one cause of video memory corruption when using XAA with second
generation integrated Mach64 controllers.

</itemize>

<sect2>glint
<p>

<itemize>
<item>Fix the size of the DAC registers storage for pm2v and pm3 chipsets.

</itemize>

<sect2>i740
<p>

<itemize>
<item>Save and restore more of the mode on server entry.

</itemize>

<sect2>i810
<p>

<itemize>
<item>Make sure the DDC-probed parameters are applied before modes are
selected.

<item>Fix some bad alignment problems when allocating memory from the end of
AGP space.

<item>Adjust the display width according to the VESA BIOS scanline
requirements.

<item>Add support for the Intel E7221 server chipset.

<item>Improve display switching support for mobile chipsets using the
Fn+F? combination keys.

<item>Add DirectColor support for the i830 and later.

<item>Add gamma correction support for the i830 and later.

<item>Add rotation support for the i830 and later.

<item>Improve refresh rate selection for custom modelines.

<item>Add support for the 945G and 945GM.

<item>Support custom video modes in the video BIOS, when available.

<item>Fix some offset, pitch, and overlay scaler size problems with the
video overlay.  This solves various spontaneous lockups.

<item>Fix text restoration when display switching has been activated.

<item>Add support to check the built-in VESA mode list.

<item>Fix XVideo when operating in one line mode and video is pushed off the
top of the screen, and fix some XVideo skew problems at certain resolutions.

<item>Sync the accelerator before calling AdjustFrame to avoid lockups.

<item>Fix a lockup when spend and resume when playing video (shutdown the
overlay on LeaveVT).

<item>Support 1920x1088 for HDTV movies using a new option (LinearAlloc) to add
more memory for the video overlay.

<item>Add ACPI hotkey switching support.

</itemize>

<sect2>mga
<p>

<itemize>
<item>Reduce the Mystique's SYSCLK from 197&nbsp;MHz to 166&nbsp;MHz,
allowing the higher clock to still be used when the "OverclockMem" option
is activated.  This fixes the instability seen on some Mystique cards,
and removes the need for the workaround in previous releases.

<item>Revert the HALlib MGASetDisplayStart interface back to
HALSetDisplayStart.

<item>Make 8+24 mode honour the default visual.

</itemize>

<sect2>nv
<p>

<itemize>
<item>Some of the panel DPMS support in 4.5.0 only works for TMDS, and
caused some panel blooming on some LVDS panels, so skip the DPMS panel code
when the panel is LVDS.

<item>Add DPMS support for GeForce4 and newer laptops.

<item>Fix some console restore code for the NV11.

<item>Workaround for 512MB video cards (can only map 256MB of it).

<item>Fix a graphics acceleration hang that occurred on some NVIDIA GeForce
6xxx cards.

<item>Fix a potential problem with pixmap cache corruption on GeForce 6xxx
and 7xxx parts.

<item>Add support for new hardware.

</itemize>

<sect2>siliconmotion
<p>

<itemize>
<item>Merge in support for SiliconMotion's SM501 controller.

</itemize>

<sect2>suncg6
<p>

<itemize>
<item>Add screen-to-screen copy, solid fill, and CPU-to-screen colour
expansion acceleration.

<item>Map more of a Sun CG6's video memory for use by the pixmap cache.

</itemize>

<sect2>sunffb
<p>

<itemize>
<item>Prevent turning off the FPU on NetBSD.

<item>Fix build problems on NetBSD (global register usage declaration,
and increase stack usage).

<item>Workaround for VRAM corruption when unblanking FFB1 adapters.


</itemize>

<sect2>tdfx
<p>

<itemize>
<item>Add DDC2 support.

</itemize>

<sect2>trident
<p>

<itemize>
<item>Do not wait for vertical retrace on PC98 systems.

<item>Fix an offset problem in Xv for the Cyber9397 and later chipsets.

<item>Add XGI (Trident) Volari XP5 support to the trident driver.

</itemize>

<sect2>via
<p>

<itemize>
<item>Add a "ConnectedDevice" option to the via driver to force selection
of output devices.

</itemize>

<sect2>vmware
<p>

<itemize>
<item>Implement a workaround in the generic int10 module to allow unaligned
I/O access specific to VMWare's second generation emulated adapter.

</itemize>

<sect2>xgi
<p>

<itemize>
<item>A new driver for the Volari V3XT, V5, V8, Z7 chipsets.

</itemize>

<sect1>Input Driver Enhancements

<p>
<sect2>keyboard
<p>

<itemize>
<item>Ignore <tt>KEY_UNUSED</tt> scancodes.

</itemize>

<sect2>mouse
<p>

<itemize>
<item>Fix auto-detection of Sun mice on Linux/SPARC.

</itemize>

<sect2>magictouch
<p>

<itemize>
<item>Port of the magictouch driver to XFree86 4.x.

</itemize>

<sect1>XKB updates
<p>

<itemize>
<item>Replace the macintosh/fr map with the "fr_new" map, release 4.

<item>Fix a bug in XKB group adjustment.

<item>Fix off-by-one errors in XKBMalloc.c.

<item>Shrink tables instead of only growing them.

<item>Fix various vmodmap vs modmap cut and paste bugs.

<item>Improve synthesized core X events for reporting XKB changes to
XKB-unaware clients.

<item>Fix a setxkbmap segfault.

<item>Add Eszett (ssharp) to the us_intl map.

<item>Add dvorak_intl map.

<item>Add a Khmer layout.

<item>Add multimedia keysyms for the Inspiron 6000 laptop to the "inspiron"
set.

</itemize>


<sect1>X Server and Extension Updates

<p>

<itemize>
<item>Updates to the handling of the X server RGB database:

  <itemize>
  <item>Ignore white space, dash, and underscore characters, as well as
  case when matching colour names, and remove the unnecessary duplicates
  in rgb.txt.

  <item>Allow a copy of the RGB database to be included into the X servers
  as a fallback for when the rgb.txt file cannot be found.

  <item>Remove the (unused) support for DBM-compiled RGB database files.

  </itemize>

<item>Make the AMD64/x86_64 platform tests consistent throughout.

<item>Rework the way that extension support is built into the servers to
allow for servers with different sets of extensions in the same build.  This
includes minimising the number of pervasive extensions, and adding DIX helpers
for extensions such as Xinerama and XCSECURITY.

<item>Modify the X server handling of SIGINT to provide a faster exit path
than SIGTERM, while ensuring that all hardware state gets restored.  This
change is used by xinit as a cleaner alternative to using SIGKILL for a
slowly exiting server.

</itemize>

<sect2>Loader
<p>

<itemize>
<item>Add support for relocation type 10 for Alpha to the ELF loader.

<item>Fix issues with Linux/SPARC 2.6 kernels.

<item>Add loader infrastructure to implement inter-module version checks.

<item>Use mprotect on NetBSD.

<item>Fix support for NetBSD/arm.

<item>Add support for <tt>R_SPARC_OLO10</tt> relocations.

<item>Make error messages for unsupported relocations more useful.

<item>Improve the loader server's emulation of shmctl() calls.

<item>Fix some problems with the a.out header macros used by the loader,
which was causing incorrect header interpretation for some a.out object
types.

<item>Major loader enhancements, including:

  <itemize>
  <item>Per-module export symbol lists.

  <item>Improved symbol hash.

  <item>A mechanism for specifying the scope of symbols.

  <item>Keep track of relocations, and undo them when they become unresolved
  on module unload, and recalculate them when they change on module load.

  <item>Check relocations on each module load/unload, ensuring that function
  references that are unresolved at any time are always mapped to the
  catch-all function, preventing calls into nowhere.

  <item>Efficient handling of invariant relocations.

  <item>Cleanup/update the memleak stack trace code, and print a stack trace
  when an unresolved function is called or when XFree86 aborts.

  <item>Update the catch-all function to identify the unresolved function that
  was called.

  <item>Read the XFree86 executable's symbol table in order to get the most
  useful stack traces, and use dladdr() where available for identifying shared
  library references.

  <item>Cleanup and unify debug messages for the loader components.

  <item>Use module-instance-specific referenced and required symbol lists.

  <item>Update drivers to make use of some of the new loader functionality,
  including the instance-specific ref/req lists, and some unloading of
  modules when they are no longer needed.

  <item>Don't build the coff loader on platforms that it doesn't support.

  <item>Use stronger typing of the module-visible instance-specific module
  descriptor.

  <item>No longer disable xf86UnloadSubModule() since the loader now handles
  unloads and reloads cleanly.

  <item>Do not defer unloading drivers when using autoconfig, since that is
  not necessary with the loader updates.

  </itemize>

</itemize>

<sect2>XFree86 core server and modules
<p>

<itemize>
<item>Modify the handling of preferred EDID modes to allow user-specified
modes that are larger than the preferred mode.

<item>Refine VGA routing emulation through Sun's Simba P2P bridges.

<item>Allow a static server's -configure to generate an XF86Config for the
loader server.

<item>Fix a bug relating to the forwarding of 64-bit memory addresses by
PCI-to-PCI bridges on 32-bit systems.

<item>Fix a bug in the decoding of I/O forwarding by Cardbus bridges.

<item>Update -configure to detect when wscons support should be used for the
keyboard on NetBSD.

<item>Fix an endianness bug in the xf4bpp module.

<item>Fix some of the endianness bugs in the vbe module.

<item>Remove obsolete VBE functions that have not been compiled-in for some
time.

<item>Fix VBE's reporting of video memory size.

<item>Re-implement Alpha kludge in x86emu's ops.c to be more portable.

<item>Intercept "raw" requests for PCI configuration space from video
BIOSes on all architectures.

<item>Handle unaligned I/O requests more gracefully and be more tolerant
of spurious I/O errors in the int10 module.

<item>Make sparse I/O masks more portable throughout the server.

<item>Fix a long-standing off-by-one bug in the setting of RGB offsets
when the driver supplies RGB masks.

<item>Make I/O error handling more reliable on SPARC.

<item>Change the OS-specific module subdirectory name for all SunOS variants
from "solaris" to "sunos".

<item>Port of SBUS drivers to SunOS variants.  This also allows for multihead
using a mix of SBUS and PCI devices.

<item>Fix text mode restore on x86/Solaris 8 and later.

<item>Change autoconfiguration to include PCI and SBUS BusIDs in generated
device sections.  This fixes some problems when fbdev is active.

<item>Prevent the sharing of a PCI entity by more than one driver.

<item>Insulate various common layer functions against out-of-bounds entity
indices.

<item>Fix XAA's support for <tt>TRIPLE_BITS_24BPP</tt> on big-endian systems.

<item>Fix unaligned access in XAA's handling of 24bpp.

<item>The xf24_32bpp module is no longer used by any of our drivers, so don't
include it in static builds.

<item>The xf8_32wid module is only used by the sunffb driver, so don't include
it in non-SPARC static builds.

<item>Fix generic int10 memory accesses on little-endian systems.

<item>Fix a SEGV that can occur under certain builds of glibc 2.3.4 and
up, when linux/int10 attempts to determine kernel support for the vm86()
system call.

<item>Add an xf86DeallocateGARTMemory() function.

<item>Make autoconfig stop at the first successful probe on each retry,
minimising unnecessary probes.

</itemize>

<sect2>TinyX
<p>

<itemize>
<item>Allow build-time selection of which font renderers get built in to
the TinyX servers.

<item>Fix a problem where VT switching back to TinyX servers was failing
due to blocking on keyboard read.

<item>Fix a TinyX build issue under <tt>!XserverStaticFontLib</tt>.

<item>Move Xserver/*/tiny directories under Xserver/hw/tinyx.

<item>TinyX build fixes.

</itemize>

<sect2>Xnest
<p>

<itemize>
<item>Add a "-noinput" option that allows Xnest to be run in a view-only mode.

</itemize>

<sect2>Xsun
<p>

<itemize>
<item>Fix incorrect bitsPerPixel for depth 12 in pixmap formats advertised by
the Xsun24 server.

</itemize>

<sect2>cfb
<p>

<itemize>
<item>Fix a bug that occurs when using cfb to tile 32-bit rectangles on SPARC.

<item>cfb24 is no longer needed.  Keep the loadable module, but no longer
statically link it into servers.

</itemize>

<sect2>shadow
<p>

<itemize>
<item>Rewrite shadowUpdateRotatePacked() to reduce cache misses.

</itemize>

<sect2>Xinerama
<p>

<itemize>
<item>Cause the server to FatalError() when Xinerama attempts to create
a screen whose root depth has no visuals, causing Xlib to segfault.

<item>Allow Xinerama to initialise even when there is only one screen
to combine.

<item>Make loadable modules and MI independent of Xinerama:

  <itemize>
  <item>Add a DIX helper to determine whether Xinerama is active and use it
  instead of #ifdef's code in all loadable modules.

  <item>Re-implement, as a screen wrapper, Xinerama's PaintWindow*() hacks.

  <item>Move down to DIX Xinerama's only MI hook.

  </itemize>

</itemize>

<sect2>XFree86-DGA
<p>

<itemize>
<item>Do not call a screen's PointerMoved entry if a DGA mode is active on that
screen.

<item>Fix client-side framebuffer mapping on NetBSD.

<item>Make sure that DGAShutdown() is always called before HW state is restored
on exit and reset, and make sure that it is not called after the HW state has
been restored.

</itemize>

<sect2>Render
<p>

<itemize>
<item>Fix unaligned access in RenderCompositeGlyphs request.

</itemize>

<sect2>RandR
<p>

<itemize>
<item>Use xf86SetViewport as well as SetCursorPosition during RandR
rotation, as xf86SetViewport will call AdjustFrame to reposition the
window if necessary and avoid the cursor ending up off screen.

<item>Add a new function xf86GetRotation() to allow third party modules
to obtain the current rotation.

<item>Fix up error case when rotation fails and the framebuffer needs to
be re-enabled.

</itemize>

<sect1>Library, Client and Utility Updates

<p>

<sect2>Xlib
<p>
<itemize>
<item>Fix typos in XErrorDB that were preventing descriptive messages
for some extension errors.

</itemize>

<sect2>Xt
<p>

<itemize>
<item>Fix an uninitialised pointer dereference in Xt/Initialize.c on WIN32
platforms that happens if <tt>$HOME</tt> is set in the environment.

<item>Add support to Xt's string to float converter to read resources in
fractional notation.

<item>Add some XChar2b string manipulation functions to Xt.

<item>Bump the minor revision of the Xt shared library to reflect
the fact that some new interfaces have been added.

</itemize>

<sect2>Xaw
<p>

<itemize>

<item>Extend the tool tip resource for Xaw's simpleWidgetClass to allow
a function to be called

<item>Fix problems with Xaw's label widget when using XChar2b strings.

<item>Add a new connectionType property to Xaw's tree widget.

<item>Make Xaw Form widgets inherit dimensions from their parent at widget
initialisation time.

<item>Add mouse wheel support for Scrollbars in Xaw's Viewport widget.

<item>Fix a performance issue with Xaw's Tree widget caused by useless
relayouts.

<item>Fix i18n for Xaw's tooltip widget.

<item>Add two new functions that can be used to scroll the content of an
Xaw viewport from outside the viewportWidgetClass.

<item>Fix the cursor in Xaw textWidget when the input field has focus.

<item>Bump the minor revision of the Xaw shared library to reflect
the fact that some new interfaces have been added.

<item>Add user_data field to Xaw's simpleWidgetClass.

<item>Fix Xaw viewport scrollbar flickering problem.

</itemize>

<sect2>pswrap
<p>

<itemize>
<item>Fix a problem where pswrap generates a bogus .c file when the -h option
is not used.

<item>Document pswrap's -f option.

</itemize>

<sect2>mmapr, mmapw
<p>

<itemize>
<item>Extend mmapr and mmapw on Linux to allow specification of which
PCI address space (I/O or memory) to mmap.

<item>Add options to mmapr and mmapw to allow unaligned accesses for testing
purposes

</itemize>

<sect2>cpconfig
<p>

<itemize>
<item>Use the same default XF86Config search path as the XFree86 server.

</itemize>

<sect2>xterm
<p>
These changes correspond to xterm patches #200 through #212.

<itemize>
<item>Improved behavior

  <itemize>
  <item>add a new selection feature:  regular expressions, and new resources
       which specify what happens on multiple mouse clicks:  on2Clicks,
       on3Clicks, on4Clicks and on5Clicks.

  <item>improve initialization of toolbar so that individual pulldown menus
       are initialized on demand, as they are in the scenario where they
       are invoked as popup menus.

  <item>improve error-reporting when chown/chmod of the pseudo-terminal
       fails, e.g., if a copy of xterm which was designed to work with
       old-style pseudo-terminals is not installed setuid or setgid.

  <item>add support for interpreting the underline attribute as an italic
       font in Xft mode.

  <item>modify configure script --disable-imake to use the script's
       definitions anyway if it cannot detect imake.

  <item>improve resource files to show how the menubar and popup menus can
       be colored.

  <item>modify initialization of allowSendEvents and allowWindowOps to
       prevent modification with the editres protocol.

  <item>improved some of the built-in line-drawing glyphs.

  <item>set the _NET_WM_PID property.

  <item>update table for mk_width() from UnicodeData 4.1.0.

  <item>implement the remaining pieces to make xterm allocate cells for
       wide-characters when the "UTF-8" menu entry is selected.  Also, load
       the UTF-8 font when that menu entry is selected, or the escape
       sequence for UTF-8 mode is received :

  <item>improve behavior when switching to UTF-8 mode after startup so
       xterm will check if the current fonts are already wide
       (ISO-10646-1).  If they are not, xterm will use the utf8Fonts
       subresource to load appropriate fonts.

  <item>modify initialization for wide-bold fontname, to search for one if
       none is given.

  <item>modify interaction between +u8 and locale resource to allow the
       command-line option to override the resource.

  <item>modify initialization to decide whether to default to built-in
       wcwidth() versus system's version based on the starting locale and
       whether the system's version is poor quality.

  <item>make paste of UTF-8 faster for Western character sets by checking
       range of incoming data.

  <item>improve initialization due to utf8 resource by loading the
       utf8Fonts resource in the case where locale resource is false.  Also
       in this case, do not disable switching UTF-8 mode on/off.

  </itemize>

<item>Modified behavior

  <itemize>
  <item>modify parsing of OSC (and SOS, etc), strings so their contents are
       not interpreted as UTF-8.  This allows non-ASCII title strings to be
       set, provided that the window manager complies.

  <item>modify parsing of control sequence CSI T to allow scroll-down to be
       sent while mouse tracking is enabled.

  <item>modify command-processing to accept an optional parameter that
       tells xterm which shell program to use.

  <item>change xterm manpage to show the actual color resource names
       XtDefaultForeground and XtDefaultBackground rather than black and
       white.

  <item>modify xterm-new terminfo entry to use capabilities for shifted
       scroll forward/reverse as shifted cursor up/down.

  <item>remove menu entry for "Enable Curses Emulation" (to make room for
       "Select To Clipboard").

  <item>modify resource files to make the font-resources a little more
       specific, e.g., changing "*VT100*" to "*VT100.", to make the
       distinction between VT100.font and VT100.utf8Fonts.font sharper, in
       case a packager modifies one of those.

  <item>allow cursor to have the same color as foreground (text), since it
       is rendered as reverse.

  <item>modify Imakefile to use setgid mode for installing with Linux,
       OpenBSD and FreeBSD.

  </itemize>

<item>New resource settings

  <itemize>

  <item>add utf8Title resource and menu entry, allowing the user to control
       whether title strings are interpreted as ISO-8859-1 or UTF-8
       encoding.

  <item>add scrollBarBorder resource.

  <item>add resource selectToClipboard, action set-select and a menu entry
       to allow users to switch between PRIMARY and CLIPBOARD for
       select/paste.

  <item>add resource mkWidth and command-line option -mk_width to control
       whether xterm uses the built-in version of wcwidth().

  <item>add resource settings for minimum/maximum input buffer size, and
       call to sched_yield to improve performance with newer Linux kernels

  <item>add simpler resource keyboardType which, when set, overrides the
       individual keyboard-type resources and eliminates the possibility
       of conflict between them.

  </itemize>

<item>New configure script options

  <itemize>

  <item>the --with-utmp-setgid allows the packager to configure xterm to
       use setgid permissions for utmp.

  <item>add configure option --enable-readline-mouse, which turns on the
       experimental OPT_READLINE code.

  <item>add --enable-narrowproto configure option to accommodate X.org
       "modular" build.

  <item>add configure --with-app-defaults option to allow app-defaults
       directory for install-rules to be customized.

  <item>add configure option --with-tty-group to help work around
       deficiencies in packager's build environment.

  <item>add configure --with-setuid and --with-reference options to allow
       packagers more flexibility in customizing install permissions.

  <item>add configure --with-symlink option to make it simpler to install
       successive versions of xterm renamed using the --program-prefix,
       etc., options with a symbolic link pointing to the most recent.

  <item>add a configure check for the actual path of luit, to work around
       broken imake configurations.

  <item>add a configure check for pkg-config.

  <item>modify install rule for uxterm to account for the --program-prefix,
       etc., options by invoking the transformed name of xterm rather than
       simply "xterm".

  <item>modify configure --with-app-defaults option to allow
       --without-app-defaults.

  <item>add configure option --disable-leaks.

  <item>add experimental option to allow applications to get or set the
       selection data as a BASE64 string.

  </itemize>

<item>Other new features

  <itemize>

  <item>add select-cursor-extend() action.

  <item>add environment variables $XTERM_SHELL and $XTERM_VERSION.

  <item>add menu entry (alt-esc) and corresponding action (alt-sends-esc)
       to toggle the eightBitInput resource setting.

  <item>add command-line options (-tb, +tb) and resource toolBar to allow
       menu/toolbar to disabled or enabled at startup.

  <item>add extended shift- and control-modifier cursor keys to
       "xterm+pcfkeys" terminfo entry to correspond to ncurses 20050430
       patch.

  <item>enable lastlogx support for NetBSD (was added, but not enabled in
       patch #186).

  </itemize>

<item>Bug-fixes (see http://invisible-island.net/xterm/xterm.log.html for a
more complete list):

  <itemize>

  <item>correct typo in configure script's --enable-dec-locator option

  <item>correct a typo in CF_FUNC_TGETENT introduced in patch #198 fix

  <item>fix an off-by-one error parsing -S/nn option.

  <item>add a check in Bell to ensure that the VT100 widget is realized,
       since it may be called by xtermLoadFont given an incorrect font
       resource.

  <item>correct treatment of iconBorderWidth for resizing an active-icon,
       and its description in manpage.

  <item>add a limit check for scrolling margins in a one-line screen,
       overlooked in fixes for patch #198.

  <item>correct computation of width for wide characters with the invisible
       attribute.

  <item>improve fix from patch #198 for Cleanup() by ensuring it is
       not called from the SIGCHLD handler.

  <item>fixes to make -geom option work properly with the toolbar
       configuration.

  <item>fix logic in find_utmp, which did not reset result in getutid(),
       causing an infinite loop in some conditions.

  <item>fix a rare case where text would be written with the wrong colors
       because output of scrolled text would reset the colors and the new
       text would be written with the same colors.

  <item>implement logic in termcap query to process multiple parameters as
       documented in ctlseqs.ms

  <item>fix buffer size used for termcap query, which was not long enough
       for the terminfo "colors" name.

  <item>initialize the saved-cursor data so a restore-cursor operation
       without a preceding save-cursor operation will not modify the
       foreground color.

  <item>modify Imakefile to work around old problems in imake configuration
       to allow test-builds using xmkmf on Linux.  (This was not noticed
       since several releases had broken definitions relating to Xft which
       were harder to work around).

  <item>remove default translations for dabbrev-expand() due to conflicts
       with existing keyboard arrangements.

  <item>set icon border width explicitly to work around fvwm problem with
       active icon resizing.

  <item>eliminate a retry for a better-matching bold font, to work around
       recent font server changes.

  <item>modify prefix/suffix transformation in makefile to make uxterm
       install properly on Cygwin.

  <item>correct termcap "me" (mode-end) string so it does not modify the
       alternate character set.

  <item>modify computation of rows/columns on resize to avoid extending
       beyond the given limits, e.g., if resizing in response to a
       "maximize" in Gnome or KDE which do not use the window manager
       hints for this case.

  <item>make a special case of resizing work like vt100:  a hard reset also
       resets the 132/80 mode.  The code to support this was present since
       X11R5, but not used because the corresponding initial state of the
       -132 option was not saved.

  </itemize>

</itemize>

<sect2>GLX/DRI
<p>

<itemize>
<item>Mesa build fixes for NetBSD/sparc64.

<item>Solaris/SPARC 64-bit libGL fixes.

</itemize>

<sect2>dbedizzy
<p>
<itemize>
<item>Resurrect this DBE extension test utility.

</itemize>

<sect2>xclock
<p>

<itemize>
<item>Use the Xaw tooltip to display the date in xclock.

</itemize>

<sect2>twm
<p>

<itemize>
<item>Add a new function to allow the window text title to be changed
interactively.

<item>Allow environment variables to be used in menu names.

<item>Add a new "f.totalzoom" function that zooms windows to cover the whole
area of a screen with no window decoration visible.

<item>Don't highlight "f.nop" menu items in menus.

</itemize>

<sect2>xbiff
<p>

<itemize>
<item>Add a tooltip to xbiff that shows the number of messages in a mail
folder.

</itemize>

<sect2>xdm
<p>

<itemize>
<item>Fix a potential infinite loop when the "willing" command fails to produce
any output.

</itemize>

<sect2>xfd
<p>

<itemize>
<item>Fix a bug that prevents properly paging through xft fonts beyond
0xFFFF.

</itemize>

<sect2>xfs
<p>

<itemize>
<item>Modify the font server transport messages to go through xfs's
logging mechanism.

<item>Fix a bug introduced when syslog support was added that prevents
exit on fatal errors.

</itemize>

<sect2>xinit
<p>

<itemize>
<item>Send SIGINT to slowing exiting X servers instead of SIGKILL.  This
works together with the new SIGINT handling in the X servers, and results
in a clean exit.  Sending SIGKILL only results in the hardware state not
being restored, often requiring a reboot to recover from.

</itemize>

<sect2>xmessage
<p>

<itemize>
<item>Fix a bug in the handling of escapes in button labels.

</itemize>

<sect2>xvidtune
<p>

<itemize>
<item>Fix the -timeout &lt;n&gt; option.

</itemize>


<sect1>I18n and Fonts
<p>
<itemize>
<item>Update mkfontscale's handling of font weights.

<item>Replace lib/font/fontfile/decompress.c with a version derived from
BSD's src/usr.bin/compress/zopen.c.

<item>Modify the fontconfig library to use getpwnam/getpwuid to find the
home directory when <tt>$HOME</tt> is not set.

<item>Fix a bug in fontconfig's pattern matching that can cause FcFontMatch()
to fail when it shouldn't.

<item>Fix a double-free problem in fontconfig.

<item>Rework printf format specifiers used in XLFD code to make them more
portable and avoid infinite loops in some glibc versions.

<item>Update the Serbian locale naming to reflect the country's name change
from "Yugoslavia" to "Serbia and Montenegro".

</itemize>

<sect1>OS Support Updates
<p>

<itemize>
<item>Fix some cases in the Darwin build where a  variable is declared
static and later as extern.

<item>Avoid /tmp files in NetBSD.cf's man page creation.

<item>Install man page source as well as formatted man pages on NetBSD.

<item>Fix a problem where builds would continue past errors on NetBSD.

</itemize>

<sect>Drivers<label id="drivertables">
<p>

<sect1>Video Drivers
<p>

XFree86 &relvers; includes the following video drivers:

<table border=1 align="center">
<tabular ca="|l|l|l|">
   <tabrow>Driver Name<colsep>Description<colsep>Further Information</tabrow>
   <hline>
   <tabrow><tt>apm</tt><colsep>Alliance Pro Motion<colsep><htmlurl
		name="README.apm" url="apm.html"></tabrow>
   <tabrow><tt>ark</tt><colsep>Ark Logic<colsep>&nbsp;</tabrow>
   <tabrow><tt>aspeed</tt><colsep>ASPEED Technology<colsep>&nbsp;</tabrow>
   <tabrow><tt>ati</tt><colsep>ATI<colsep><htmlurl
		name="README.ati" url="ati.html">, <htmlurl
		name="README.r128" url="r128.html">,</tabrow>
   <tabrow><tt>&nbsp;</tt><colsep>&nbsp;<colsep><htmlurl
		name="r128(4)" url="r128.4.html">, <htmlurl
		name="radeon(4)" url="radeon.4.html"></tabrow>
   <tabrow><tt>chips</tt><colsep>Chips &amp; Technologies<colsep><htmlurl
		name="README.chips" url="chips.html">, <htmlurl
		name="chips(4)" url="chips.4.html"></tabrow>
   <tabrow><tt>cirrus</tt><colsep>Cirrus Logic<colsep>&nbsp;</tabrow>
   <tabrow><tt>cyrix</tt> (*)<colsep>Cyrix MediaGX<colsep><htmlurl
		name="README.cyrix" url="cyrix.html"></tabrow>
   <tabrow><tt>fbdev</tt><colsep>Linux framebuffer device<colsep><htmlurl
		name="fbdev(4)" url="fbdev.4.html"></tabrow>
   <tabrow><tt>glide</tt><colsep>Glide2x (3Dfx)<colsep><htmlurl
		name="glide(4)" url="glide.4.html"></tabrow>
   <tabrow><tt>glint</tt><colsep>3Dlabs, TI<colsep><htmlurl
		name="glint(4)" url="glint.4.html"></tabrow>
   <tabrow><tt>i128</tt><colsep>Number Nine<colsep><htmlurl
		name="README.I128" url="I128.html">, <htmlurl
		name="i128(4)" url="i128.4.html"></tabrow>
   <tabrow><tt>i740</tt><colsep>Intel i740<colsep><htmlurl
		name="README.i740" url="i740.html"></tabrow>
   <tabrow><tt>i810</tt><colsep>Intel i8xx<colsep><htmlurl
		name="README.i810" url="i810.html">, <htmlurl
		name="i810(4)" url="i810.4.html"></tabrow>
   <tabrow><tt>imstt</tt><colsep>Integrated Micro Solns<colsep>&nbsp;</tabrow>
   <tabrow><tt>mga</tt><colsep>Matrox<colsep><htmlurl
		name="mga(4)" url="mga.4.html"></tabrow>
   <tabrow><tt>neomagic</tt><colsep>NeoMagic<colsep><htmlurl
		name="neomagic(4)" url="neomagic.4.html"></tabrow>
   <tabrow><tt>newport</tt> (-)<colsep>SGI Newport<colsep><htmlurl
		name="README.newport" url="newport.html">, <htmlurl
		name="newport(4)" url="newport.4.html"></tabrow>
   <tabrow><tt>nsc</tt><colsep>National Semiconductor<colsep><htmlurl
		name="nsc(4)" url="nsc.4.html"></tabrow>
   <tabrow><tt>nv</tt><colsep>NVIDIA<colsep><htmlurl
		name="nv(4)" url="nv.4.html"></tabrow>
   <tabrow><tt>rendition</tt><colsep>Rendition<colsep><htmlurl
		name="README.rendition" url="rendition.html">, <htmlurl
		name="rendition(4)" url="rendition.4.html"></tabrow>
   <tabrow><tt>s3</tt><colsep>S3 (not ViRGE or Savage)<colsep>&nbsp;</tabrow>
   <tabrow><tt>s3virge</tt><colsep>S3 ViRGE<colsep><htmlurl
		name="README.s3virge" url="s3virge.html">, <htmlurl
		name="s3virge(4)" url="s3virge.4.html"></tabrow>
   <tabrow><tt>savage</tt><colsep>S3 Savage<colsep><htmlurl
		name="savage(4)" url="savage.4.html"></tabrow>
   <tabrow><tt>siliconmotion</tt><colsep>Silicon Motion<colsep><htmlurl
		name="siliconmotion(4)" url="siliconmotion.4.html"></tabrow>
   <tabrow><tt>sis</tt><colsep>SiS<colsep><htmlurl
		name="README.SiS" url="SiS.html">, <htmlurl
		name="sis(4)" url="sis.4.html"></tabrow>
   <tabrow><tt>sunbw2</tt> (+)<colsep>Sun bw2<colsep>&nbsp;</tabrow>
   <tabrow><tt>suncg14</tt> (+)<colsep>Sun cg14<colsep>&nbsp;</tabrow>
   <tabrow><tt>suncg3</tt> (+)<colsep>Sun cg3<colsep>&nbsp;</tabrow>
   <tabrow><tt>suncg6</tt> (+)<colsep>Sun GX and Turbo GX<colsep>&nbsp;</tabrow>
   <tabrow><tt>sunffb</tt> (+)<colsep>Sun Creator/3D, Elite 3D<colsep>&nbsp;</tabrow>
   <tabrow><tt>sunleo</tt> (+)<colsep>Sun Leo (ZX)<colsep>&nbsp;</tabrow>
   <tabrow><tt>suntcx</tt> (+)<colsep>Sun TCX<colsep>&nbsp;</tabrow>
   <tabrow><tt>tdfx</tt><colsep>3Dfx<colsep><htmlurl
		name="tdfx(4)" url="tdfx.4.html"></tabrow>
   <tabrow><tt>tga</tt><colsep>DEC TGA<colsep><htmlurl
		name="README.DECtga" url="DECtga.html"></tabrow>
   <tabrow><tt>trident</tt><colsep>Trident<colsep><htmlurl
		name="trident(4)" url="trident.4.html"></tabrow>
   <tabrow><tt>tseng</tt><colsep>Tseng Labs<colsep>&nbsp;</tabrow>
   <tabrow><tt>vesa</tt><colsep>VESA<colsep><htmlurl
		name="vesa(4)" url="vesa.4.html"></tabrow>
   <tabrow><tt>vga</tt><colsep>Generic VGA<colsep><htmlurl
		name="vga(4)" url="vga.4.html"></tabrow>
   <tabrow><tt>via</tt><colsep>VIA<colsep><htmlurl
		name="via(4)" url="via.4.html"></tabrow>
   <tabrow><tt>vmware</tt><colsep>VMWare guest OS<colsep><htmlurl
		name="vmware(4)" url="vmware.4.html"></tabrow>
   <tabrow><tt>xgi</tt><colsep>Xabre Graphics Inc<colsep><htmlurl
		name="xgi(4)" url="xgi.4.html"></tabrow>
</tabular>
</table>

Drivers marked with (*) are present in a preliminary form in this release,
but are not complete and/or stable yet.
<p>

Drivers marked with (+) are for Linux/SPARC only.
<p>

Drivers marked with (-) are for Linux/mips only.
<p>

Darwin/Mac OS X uses IOKit drivers and does not use the module loader drivers
listed above. Further information can be found in
<htmlurl name="README.Darwin" url="Darwin.html">.
</sect1>

<sect1>Input Drivers
<p>

XFree86 &relvers; includes the following input drivers:

<table border=1 align="center">
<tabular ca="|l|l|l|">
   <tabrow>Driver Name<colsep>Description<colsep>Further Information</tabrow>
   <hline>
<!--
   <tabrow><tt>acecad</tt><colsep>AceCad<colsep>&nbsp;</tabrow>
-->
   <tabrow><tt>aiptek(*)</tt><colsep>Aiptek USB tablet<colsep><htmlurl
		name="aiptek(4)" url="aiptek.4.html"></tabrow>
   <tabrow><tt>calcomp</tt><colsep>Calcomp<colsep>&nbsp;</tabrow>
   <tabrow><tt>citron</tt><colsep>Citron<colsep><htmlurl
		name="citron(4)" url="citron.4.html"></tabrow>
   <tabrow><tt>digitaledge</tt><colsep>DigitalEdge<colsep>&nbsp;</tabrow>
   <tabrow><tt>dmc</tt><colsep>DMC<colsep><htmlurl
		name="dmc(4)" url="dmc.4.html"></tabrow>
   <tabrow><tt>dynapro</tt><colsep>Dynapro<colsep>&nbsp;</tabrow>
   <tabrow><tt>elographics</tt><colsep>EloGraphics<colsep>&nbsp;</tabrow>
   <tabrow><tt>eloinput</tt><colsep>Elo 2500U USB<colsep><htmlurl
		name="eloinput(4)" url="eloinput.4.html"></tabrow>
   <tabrow><tt>fpit</tt><colsep>Fujitsu Stylistic Tablet PCs<colsep><htmlurl
		name="fpit(4)" url="fpit.4.html"></tabrow>
   <tabrow><tt>hyperpen</tt><colsep>Aiptek HyperPen 6000<colsep>&nbsp;</tabrow>
   <tabrow><tt>js_x</tt><colsep>JamStudio pentablet<colsep><htmlurl
		name="js_x(4)" url="js_x.4.html"></tabrow>
   <tabrow><tt>kbd</tt><colsep>generic keyboards (alternate)<colsep><htmlurl
		name="kbd(4)" url="kbd.4.html"></tabrow>
   <tabrow><tt>keyboard</tt><colsep>generic keyboards<colsep><htmlurl
		name="keyboard(4)" url="keyboard.4.html"></tabrow>
   <tabrow><tt>magictouch</tt><colsep>MagicTouch ProE-X<colsep><htmlurl
		name="magictouch(4)" url="magictouch.4.html"></tabrow>
   <tabrow><tt>microtouch</tt><colsep>MicroTouch<colsep>&nbsp;</tabrow>
   <tabrow><tt>mouse</tt><colsep>most mouse devices<colsep><htmlurl
		name="mouse(4)" url="mouse.4.html"></tabrow>
   <tabrow><tt>mutouch</tt><colsep>MicroTouch<colsep>&nbsp;</tabrow>
   <tabrow><tt>palmax</tt><colsep>Palmax PD1000/PD1100<colsep><htmlurl
		name="palmax(4)" url="palmax.4.html"></tabrow>
   <tabrow><tt>penmount</tt><colsep>PenMount<colsep>&nbsp;</tabrow>
   <tabrow><tt>spaceorb</tt><colsep>SpaceOrb<colsep>&nbsp;</tabrow>
   <tabrow><tt>summa</tt><colsep>SummaGraphics<colsep>&nbsp;</tabrow>
   <tabrow><tt>tek4957</tt><colsep>Tektronix 4957 tablet<colsep><htmlurl
		name="tek4957(4)" url="tek4957.4.html"></tabrow>
   <tabrow><tt>ur98(*)</tt><colsep>Union Reality UR-F98 headtracker<colsep><htmlurl
		name="ur98(4)" url="ur98.4.html"></tabrow>
   <tabrow><tt>void</tt><colsep>dummy device<colsep><htmlurl
		name="void(4)" url="void.4.html"></tabrow>
   <tabrow><tt>wacom</tt><colsep>Wacom tablets<colsep><htmlurl
		name="wacom(4)" url="wacom.4.html"></tabrow>
</tabular>
</table>

Drivers marked with (*) are available for Linux only.

<sect>Known Problems
<p>

Currently no known problems are documented.

<sect>Overview of XFree86 4.x.
<p>
XFree86 4.x has a single X server binary called <tt>XFree86</tt>.  This
binary can either have one or more video and input drivers linked in
statically, or more usually, dynamically, and in that manner load the
video drivers, input drivers, and other modules that are needed.

XFree86 &relvers; has X server support for most UNIX&reg; and UNIX-like
operating systems on Intel/x86 platforms, plus support for Linux and
some BSD OSs on Alpha, PowerPC, IA-64, AMD64, SPARC, and Mips platforms,
and for Darwin on PowerPC.  Support for additional architectures and
operating systems is in progress and is planned for future releases.

<sect1>Loader and Modules
<p>
The XFree86 X server has a built-in run-time loader, which can load
normal object files and libraries in most of the commonly used formats.
The loader does not rely on an operating system's native dynamic loader
support and it works on platforms that do not provide this feature.  This
allows for the modules to be operating system independent (although
not, of course, CPU architecture independent) which means that a module
compiled on Linux/x86 can be loaded by an X server running on Solaris/x86,
or FreeBSD, or even OS/2.

The X server makes use of modules for video drivers, X server extensions,
font rasterisers, input device drivers, framebuffer layers (like mfb,
cfb, etc), and internal components used by some drivers (like XAA),

The module interfaces (both API and ABI) used in this release are subject
to change without notice.  While we will attempt to provide backward
compatibility for the module interfaces as of the 4.0 release (meaning
that 4.0 modules will work with future core X server binaries), we cannot
guarantee this.  Compatibility in the other direction is explicitly not
guaranteed because new modules may rely on interfaces added in new
releases.

<bf>Note about module security</bf>
<quote><p>
	The XFree86 X server runs with root privileges, i.e. 
	the X server loadable modules also run with these privileges.
	For this reason we recommend that all users be careful to only
	use loadable modules from reliable sources,  otherwise the
	introduction of viruses and contaminated code can occur and
	wreak havoc on your system.  We hope to have a mechanism for
	signing/verifying the modules that we provide available in a
	future release.

</quote>

<sect1>Configuration <label id="config">
<p>

The XFree86 server uses a configuration file as the primary mechanism
for providing configuration and run-time parameters.  The configuration
file format is described in detail in the <htmlurl name="XF86Config(5)"
url="XF86Config.5.html"> manual page.

The XFree86 server has support for automatically determining an initial
configuration on most platforms, as well as support or generating a basic
initial configuration file.

<sect1>Command Line Options
<p>

Command line options can be used to override some default parameters and
parameters provided in the configuration file.  These command line options
are described in the <htmlurl name="XFree86(1)"
url="XFree86.1.html"> manual page.
  
<sect1>XAA
<p>

The XFree86 Acceleration Architecture (XAA) was completely rewritten
from scratch for XFree86 4.x.  Most drivers implement acceleration by
making use of the XAA module.

<sect1>Multi-head
<p>
Some multi-head configurations are supported in XFree86 4.x, primarily
with multiple PCI/AGP cards.

One of the main problems is with drivers not sufficiently initialising
cards that were not initialised at boot time.  This has been improved
somewhat with the INT10 support that is used by most drivers (which
allows secondary card to be "soft-booted", but in some cases there are
other issues that still need to be resolved.  Some combinations can be
made to work better by changing which card is the primary card (either
by using a different PCI slot, or by changing the system BIOS's preference
for the primary card).

<sect1>Xinerama
<p>
Xinerama is an X server extension that allows multiple physical screens
to behave as a single screen.  With traditional multi-head in X11,
windows cannot span or cross physical screens.  Xinerama removes this
limitation.  Xinerama does, however, require that the physical screens
all have the same root depth, so it isn't possible, for example, to use
an 8-bit screen together with a 16-bit screen in Xinerama mode.

Xinerama is not enabled by default, and can be enabled with the
<tt>+xinerama</tt> command line option for the X server.

Xinerama was included with X11R6.4.  The version included in XFree86 4.x
was completely rewritten for improved performance and correctness.

Known problems:
<itemize>
  <item>Not all window managers are Xinerama-aware, and so some
	operations like window placement and resizing might not behave
	in an ideal way.  This is an issue that needs to be dealt with
	in the individual window managers, and isn't specifically an
	XFree86 problem.

</itemize>

<sect1>DGA version 2
<p>

DGA 2.0 is included in &relvers;.
Documentation for the client libraries can be found in the <htmlurl
name="XDGA(3)" url="XDGA.3.man"> man page.  A good degree of backwards
compatibility with version 1.0 is provided.


<sect1>DDC
<p>
The VESA&reg; Display Data Channel (DDC&trade;) standard allows the monitor
to tell the video card (or on some cases the computer directly) about
itself; particularly the supported screen resolutions and refresh rates.

Partial or complete DDC support is available in most of the video drivers.
DDC is enabled by default, but can be disabled with a "Device" section
entry:  <tt>Option "NoDDC"</tt>.  We have support for DDC versions 1
and 2; these can be disabled independently with <tt>Option "NoDDC1"</tt>
and <tt>Option "NoDDC2"</tt>.

At startup the server prints out DDC information from the display, and
will use this information to set the default monitor parameters and video
mode when none are provided explicitly in the configuration file.

<sect2>Changed behavior caused by DDC.
<p>
Several drivers uses DDC information to
set the screen size and pitch.  This can be overridden by explicitly
resetting it to the and non-DDC default value 75 with the <tt>-dpi
75</tt> command line option for the X server, or by specifying appropriate
screen dimensions with the "DisplaySize" keyword in the "Monitor" section
of the config file.


<sect1>GLX and the Direct Rendering Infrastructure (DRI)
<p>

Direct rendered OpenGL&reg; support is provided for several hardware
platforms by the Direct Rendering Infrastructure (DRI), which is part
of Mesa.  Mesa also provides the 3D core rendering component of GLX.
Further information can be found at the <url name="DRI Project's web
site" url="http://dri.sf.net/"> and the <url name="Mesa web site"
url="http://www.mesa3d.org">.

<sect1>XVideo Extension (Xv)
<p>

The XVideo extension is supported in XFree86 4.x.
An XvQueryPortAttributes function has been added as well as
support for XvImages.  XvImages are XImages in alternate color spaces 
such as YUV and can be passed to the server through shared memory
segments.  This allows clients to display YUV data with high quality
hardware scaling and filtering.

<sect1>X Rendering Extension (Render) <label id="render">
<p>

The X Rendering extension provides a 2D rendering model that more
closely matches application demands and hardware capabilities.  It provides
a rendering model derived from Plan 9 based on Porter/Duff image
composition rather than binary raster operations.

<p>
Using simple compositing operators provided by most hardware, Render
can draw anti-aliased text and geometric objects as well as perform 
translucent image overlays and other image operations not possible with 
the core X rendering system.

<p>
XFree86 &relvers; provides a partial implementation of Render sufficient 
for drawing anti-aliased text and image composition.  Still to be 
implemented are geometric primitives and affine transformation of images.

<p>
Unlike the core protocol, Render provides no font support for applications,
rather it allows applications to upload glyphs for display on the screen.
This allows the client greater control over text rendering and complete
access to the available font information while still providing hardware
acceleration.  The Xft library provides font access for
Render applications.

<sect2>The Xft Library
<p>

On the client side, the Xft library provides access to fonts for
applications using the FreeType library, version 2.  FreeType currently
supports Type1 and TrueType font files, a future release is expected to 
support BDF and PCF files as well, so Render applications will have access 
to the complete range of fonts available to core applications.  One 
important thing to note is that Xft uses the vertical size of the monitor 
to compute accurate pixel sizes for provided point sizes; if your monitor 
doesn't provide accurate information via DDC, you may want to add that 
information to <tt>XF86Config</tt>.

<p>

To allow a graceful transition for applications moving from core text
rendering to the Render extension, Xft can use either core fonts or FreeType
and the Render extension for text.  By default, Xft is configured to support
both core fonts and FreeType fonts using the supplied version of FreeType
2.  See the section on FreeType support in Xft for instructions on
configuring XFree86 to use an existing FreeType installation.

<p>
The Xft library uses a configuration file, <tt>XftConfig</tt>, which
contains information about which directories contain font files and also
provides a sophisticated font aliasing mechanism.  Documentation for that
file is included in the <htmlurl name="Xft(3)" url="Xft.3.man"> man page.

</sect2>
<sect2>FreeType support in Xft
<p>

XFree86 &relvers; includes sources for FreeType version &freetypevers;,
and, by default, it is built and installed automatically.

</sect2>

<sect2>Application Support For Anti-Aliased Text
<p>

Only three applications have been modified in this release to work 
with the Render extension and the Xft and FreeType libraries to provide 
anti-aliased text.  Xterm, xditview and x11perf.  Migration of other 
applications may occur in future releases.

<p>
By default, xterm uses core fonts through the standard core API.  It has
a command line option and associated resource to direct it to use
Xft instead:
<itemize>
  <item><tt>-fa</tt> family / <tt>.VT100.faceName:</tt> family.  Selects the 
	font family to use.
</itemize>

<p>
Xditview will use Xft instead of the core API by default.  X11perf 
includes tests to measure the performance of text rendered in three ways, 
anti-aliased, anti-aliased with sub-pixel sampling and regular chunky 
text, but through the Render extension, a path which is currently somewhat
slower than core text.
</sect2>

<sect1>Other extensions
<p>

The XFree86-Misc extension has not been fully ported to the new server
architecture yet.  This might be completed in a future release.

The XFree86-VidModeExtension extension has been updated, and mostly ported
to the new server architecture.  The area of mode validation needs further
work, and the extension should be used with care.  This extension has
support for changing the gamma setting at run-time, for modes where this
is possible.  The <tt>xgamma</tt> utility makes use of this feature.
Compatibility with the 3.3.x version of the extension is provided.
The missing parts of this extension and some new features should be
completed in a future release.


<sect1>xedit
<p>

Xedit has several new features, including:
<itemize>
  <item>An embedded lisp interpreter that allows easier extension of the editor.
  <item>Several new syntax highlight modes, and indentation rules for C and Lisp.
  <item>Flexible search/replace interface that allows regex matches.
  <item>Please refer to <tt><htmlurl name="xedit(1)" url="xedit.1.html"></tt>
	for more details.
</itemize>

<sect1>Font support
<p>

Details about the font support in XFree86 4.x can be found
in the <htmlurl name="README.fonts" url="fonts.html"> document.

<sect1>TrueType support
<p>

The XFree86 4.x server comes with a TrueType backend, known as the
"FreeType" backend, based on the FreeType library.  The functionality
of the former X-TrueType was merged into the FreeType backend by the
After X-TT Project for the XFree86 4.4.0 release, and the old X-TrueType
backend has been dropped as of XFree86 4.5.0.

<sect1>CID font support
<p>

Support for CID-keyed fonts is included in XFree86 4.x.
The CID-keyed font format was designed by <url name="Adobe Systems"
url="http://www.adobe.com"> for fonts with large character sets.  The
CID-keyed font support in XFree86 was donated by <url name="SGI"
url="http://www.sgi.com">.  See the <htmlurl name="LICENSE"
url="LICENSE.html"> document for a copy of the CID Font Code Public
License.

<sect1>Internationalisation of the scalable font backends
<p>

XFree86 4.x has a ``fontenc'' layer to allow the scalable font backends
to use a common method of font re-encoding.  This re-encoding makes it
possible to use fonts in encodings other than their their native
encoding.  This layer is used by the FreeType, Type1 and Speedo backends.

<sect1>Large font optimisation
<p>

The glyph metrics array, which all the X clients using a particular font
have access to, is placed in shared memory, so as to reduce redundant
memory consumption.  For non-local clients, the glyph metrics array is
transmitted in a compressed format.

<sect1>Unicode/ISO 10646 support
<p>
What is included in 4.x:

<itemize>
  <item>All ``-misc-fixed-*'' BDF fonts are now available in the
        ISO10646-1 encoding and cover at least the 614 characters
        found in ISO 8859-{1-5,7-10,14,15}, CP1252, and MES-1. The
        non-bold fonts also cover all Windows Glyph List 4 (WGL4)
        characters, including those found in all 8-bit MS-DOS/Windows
        code pages. The 8-bit variants of the ``-misc-fixed-*'' BDF
        fonts (ISO8859-1, ISO8859-2, KOI8-R, etc.) have all been
        automatically generated from the new ISO10646-1 master fonts.

  <item>Some ``-misc-fixed-*'' BDF ISO10646-1 fonts now cover a
        comprehensive Unicode repertoire of over 3000 characters
        including all Latin, Greek, Cyrillic, Armenian, Gregorian,
        Hebrew, IPA, and APL characters, plus numerous scientific,
	typographic, technical, and backwards-compatibility
        symbols. Some of these fonts also cover Arabic, Ethiopian,
        Thai, Han/Kanji, Hangul, full ISO 8859, and more. For the 6x13
        font there is now a 12x13ja Kanji extension and for the 9x18
        font there is a 18x18ja Kanji/Han/Hangul extension, which
        covers all ISO-2022-JP-2 (RFC 1554) characters. The 9x18 font
        can also be used to implement simple combining characters by
        accent overstriking. For more information, read Markus Kuhn's
        <url name="UTF-8 and Unicode FAQ"
        url="http://www.cl.cam.ac.uk/~mgk25/unicode.html">.

  <item>Mark Leisher's ClearlyU proportional font (similar to Computer
	Modern).

  <item>ISO 10646/Unicode UTF-8 Level 1 support added to xterm
	(enabled with the <tt>-u8</tt> option).

  <item>The FreeType font backend supports Unicode-encoded fonts.

</itemize>

<sect1>Xlib Compose file support and extensions <label id="compose">
<p>

A more flexible Compose file processing system was added to Xlib in
XFree86 4.4.0.  The compose file is searched for in the following order:

<enum>
<item>If the environment variable <bf>$XCOMPOSEFILE</bf> is set, its value
is used as the name of the Compose file.

<item>If the user's home directory has a file named "<tt>.XCompose</tt>", it
is used as the Compose file.

<item>The old method is used, and the compose file is
"&lt;<it>xlocaledir</it>&gt;<tt>/</tt>&lt;<it>localename</it>&gt;<tt>/Compose</tt>".

</enum>

Compose files can now use an "include" instruction.  This allows local
modifications to be made to existing compose files without including all
of the content directly.  For example, the system's iso8859-1 compose file
can be included with a line like this:

<tscreen><verb>
include "/usr/X11R6/lib/X11/locale/iso8859-1/Compose"
</verb></tscreen>

There are two substitutions that can be made in the file name of the
include instruction.  <bf>%H</bf> expands to the user's home directory
(the <bf>$HOME</bf> environment variable), and <bf>%L</bf> expands to the
name of the locale specific Compose file (i.e., 
"&lt;<it>xlocaledir</it>&gt;<tt>/</tt>&lt;<it>localename</it>&gt;<tt>/Compose</tt>").

For example, you can include in your compose file the default Compose file
by using:

<tscreen><verb>
include "%L"
</verb></tscreen>

and then rewrite only the few rules that you need to change.  New compose
rules can be added, and previous ones replaced.

Finally, it is no longer necessary to specify in the right part of a rule
a locale encoded string in addition to the keysym name.  If the string is
omitted, Xlib figures it out from the keysym according to the current
locale.  I.e., if a rule looks like:

<tscreen><verb>
<dead_grave> <A> : "\300" Agrave
</verb></tscreen>

the result of the composition is always the letter with the "\300" code.
But if the rule is:

<tscreen><verb>
<dead_grave> <A> : Agrave
</verb></tscreen>

the result depends on how Agrave is mapped in the current locale.

<sect1>Luxi fonts from Bigelow and Holmes <label id="luxi">
<p>

XFree86 includes the ``Luxi'' family of Type&nbsp;1 fonts and TrueType
fonts.  This family consists of the fonts ``Luxi&nbsp;Serif'',
``Luxi&nbsp;Sans'' and ``Luxi&nbsp;Mono'' in Roman, oblique, bold and
bold oblique variants.  The TrueType version have glyphs covering the
basic ASCII Unicode range, the Latin&nbsp;1 range, as well as the
<it/Extended Latin/ range and some additional punctuation characters.
In particular, these fonts include all the glyphs needed for ISO&nbsp;8859
parts 1, 2, 3, 4, 9, 13 and 15, as well as all the glyphs in the Adobe
Standard encoding and the Windows 3.1  character set.

The glyph coverage of the Type&nbsp;1 versions is somewhat reduced,
and only covers ISO&nbsp;8859 parts 1, 2 and 15 as well as the Adobe
Standard encoding.

The Luxi fonts are original designs by Kris Holmes and Charles Bigelow
from Bigelow and Holmes Inc., who developed the Luxi typeface designs
in Ikarus digital format.  URW++ Design and Development GmbH converted
the Ikarus format fonts to TrueType and Type&nbsp;1 font programs and
implemented the grid-fitting "hints" and kerning tables in the Luxi
fonts.

The license terms for the Luxi fonts are included in the file
`<tt/COPYRIGHT.BH/', as well as in the <htmlurl
name="License document" url="LICENSE.html">.  For further information,
please contact
<email>design@bigelowandholmes.com</email> or
<email>info@urwpp.de</email>, or consult the
<url name="URW++ web site" url="http://www.urwpp.de">.


<sect>Credits
<p>

<![ %draft [
<bf>THIS IS A DRAFT OF THE XFree86 &fullrelvers; CREDITS SECTION.</bf>
If you find missing credits, incorrect attributions, or other errors, please
send details to <email>devel@XFree86.org</email>.
]]>

This section lists the credits for the XFree86 &fullrelvers; release.  For
a more detailed breakdown, refer to the CHANGELOG file in the XFree86
source tree, the <url name="cvs-commit archives"
url="http://www.mail-archive.com/cvs-commit@xfree86.org/maillist.html">,
or the 'cvs log' information for individual source files.

<descrip>
<tag>New Features, Enhancements and Updates:</tag>
  <descrip>
  <tag>Security Updates:</tag> Marc La France.

  <tag>ASPEED Technologies driver:</tag>Y. C. Chen, ASPEED Technologies.

  <tag>Xabre Graphics driver:</tag>Jong Lin, XGI.

  <tag>X server extension rework:</tag> Marc La France.

  <tag>Loader Enhancements:</tag>David H. Dawes, X-Oz Technologies.

  <tag>Intel i945G/i945GM support and other driver enhancements:</tag>Alan
  Hourihane, Tungsten Graphics.

  <tag>NVIDIA driver updates and new hardware support:</tag>Mark Vojkovich

  <tag>Improved SunOS/SPARC and SBUS support:</tag> Marc La France.

  <tag>Xterm enhancements and updates:</tag>Thomas Dickey.

  <tag>Xaw enhancements:</tag>Alexander Pohoyda.
  </descrip>

<tag>Integration:</tag>
  <descrip>
  <tag>General Integration of Submissions:</tag>Marc La France, David H. Dawes.
  </descrip>
<tag>Release Engineering:</tag>David H. Dawes.

<tag>Patches and other submissions (in alphabetical order):</tag>
ASPEED Technologies,
Andrew Aitchison,
James Ascroft-Leigh,
&Eacute;tienne Bersac,
Peter Breitenlohner,
Terry Chang,
Y. C. Chen,
Jeff Chua,
James Cloos,
Alan Coopersmith,
Miguel Gonz&aacute;lez Cuadrado,
David Dawes,
Thomas Dickey,
Stefan Dirsch,
Bernd Ernesti,
Jordan Frank,
Will L G,
Frank Giessler,
Thorsten Glaser,
Damian Janusz Gruszka,
Lukas Hejtmanek,
Evil Mr Henry,
Jens Herden,
Alan Hourihane,
Nicolas Joly,
Bang Jun-Young,
Alexander Kabaev,
Satoshi Kimura,
Milos Komarcevic,
Marc La France,
Dejan Lesjak,
Khong Jye Liew,
Jong Lin,
Michael Lorenz,
Michael Macallan,
Michal Maruska,
Luke Mewburn,
Timothy Musson,
Newsh,
Takaaki Nomura,
Ivan Pascal,
Bob Peterson,
Pierre,
Aaron Plattner,
Alexander Pohoyda,
Jeremy C. Reed,
Conrad Schuler,
Bruno Schwander,
Olaf Seibert,
Aaron Solochek,
Helmar Spangenberg,
Ken Stailey,
Tobias Stoeckmann,
Tungsten Graphics,
James Richard Tyrer,
Staffan Ulfberg,
Denis Vlasenko,
Mark Vojkovich,
Tom Williams,
Dave Williss,
X-Oz Technologies,
XGI,
Christos Zoulas.

<tag>Webmaster:</tag>Georgina O. Economou

<tag>Hosting:</tag><url name="Internet Systems Consortium, Inc"
url="http://www.isc.org/">.

</descrip>

<sect>Attributions/Acknowledgements
<p>

This product includes software developed by The XFree86 Project, Inc
(http://www.xfree86.org/) and its contributors.

This product includes software that is based in part of the work of the
FreeType Team (http://www.freetype.org).

This product includes software developed by the University of California,
Berkeley and its contributors.

This product includes software developed by Christopher G. Demetriou.

This product includes software developed by the NetBSD Foundation, Inc. and its
contributors

This product includes software developed by X-Oz Technologies
(http://www.x-oz.com/).


</article>
