<!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>August 2007

<ident>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.143 2007/08/04 02:16:08 tsi 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 subsequent releases.
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 just
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 are 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>
A number of reported security issues have been addressed in this release.
They include:

<itemize>

<item><htmlurl name="CVE-2006-0747"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0747">.
<item><htmlurl name="CVE-2006-1861"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1861">.
<item><htmlurl name="CVE-2006-2661"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-2661">.
<item><htmlurl name="CVE-2006-6101"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6101">.
<item><htmlurl name="CVE-2006-6102"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6102">.
<item><htmlurl name="CVE-2006-6103"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6103">.
<item><htmlurl name="CVE-2007-1003"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1003">.
<item><htmlurl name="CVE-2007-1351"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1351">.
<item><htmlurl name="CVE-2007-1352"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1352">.
<item><htmlurl name="CVE-2007-1667"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1667">.
<item><htmlurl name="CVE-2007-2754"
url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2754">.

</itemize>
<p>
In addition, a number of potential integer overflow problems in the Type 1
font rendering code have been corrected.

<sect1>Video Driver Enhancements
<p>

<sect2>ati, atimisc, r128 and radeon
<p>

<itemize>
<item>Fix bug that caused the version check between the ati and atimisc modules
to fail.

<item>The atimisc module's saving and restoring of the mode on server entry has
been made more reliable on 64-bit systems.

<item>Fix bug that prevented detection of non-PCI adapters on systems that do
not provide accurate PCI resource sizes.

<item>Fix the radeon driver's saving and restoring of the mode on server entry.

</itemize>

<sect2>chips
<p>

<itemize>
<item>Fix some of this driver's endianness problems.

</itemize>

<sect2>i128
<p>

<itemize>
<item>Resurrect support for Ti3026 RAMDACs found on the original I128 adapters.
Note that there are still issues with depth 8 visuals and hardware cursors.

</itemize>

<sect2>mga
<p>

<itemize>
<item>Add support for Matrox MGA G200e SE adapters.

<item>Fix determination of the mode on server entry.
Also, save and restore it on VC switches.

</itemize>

<sect2>newport
<p>

<itemize>
<item>Add support for the DPMS extension.

</itemize>

<sect2>nv
<p>

<itemize>
<item>Add support for new hardware.

</itemize>

<sect2>pnozz
<p>

<itemize>
<item>This accelerated driver supports the Weitek POWER 9100 SBUS adapters
found in some SPARC laptops.

</itemize>

<sect2>sunbw2, suncg14, suncg3, sunleo, suntcx
<p>

<itemize>
<item>These drivers, intended for various SPARC SBUS and UPA adapters, can now
blank and unblank the screen correctly.

</itemize>

<sect2>sunffb
<p>

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

<item>Fix bug that prevented use of this driver on SunOS and Solaris.

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

</itemize>

<sect2>trident
<p>

<itemize>
<item>Resave the mode on server entry when switching back to the server's
virtual console.

</itemize>

<sect1>Input Driver Enhancements

<p>
<sect2>mouse
<p>

<itemize>
<item>Do not disable 3-button mouse emulation even when the mouse is found to
actually have a third button.
This helps laptops, and the like, running systems that combine a touchpad and
an external mouse into one device.

</itemize>

<sect1>XKB updates
<p>

<itemize>
<item>Add an XKB geometry for Dell Inspiron 8000 notebook keyboard.

<item>Add an XKB geometry for Enermax Aurora keyboards.

<item>Add XKB keycodes for MacIntosh USB keyboards.

<item>Add XKB definitions for X860x0 keyboards.

<item>Update Macintosh french keymap.

<item>Allow signed coordinates in XKB shape definitions.

</itemize>

<sect1>X Server and Extension Updates

<p>

<sect2>Loader
<p>

<itemize>
<item>Fixed support for <tt>R_ALPHA_GPRELHIGH</tt> relocations.

<item>Added support for <tt>R_ALPHA_BRSGP</tt> relocations.

<item>Fixed handling of archives on non-Linux SPARC.

<item>Fixed support for <tt>R_SPARC_LO10</tt> and <tt>R_SPARC_OLO10</tt>
relocations.

<item>Added support for most ELF SPARC relocation types.

<item>Added an emulation of rand(3) calls.

</itemize>

<sect2>XFree86 core server and modules
<p>

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

<item>Added preliminary support for PCI domains on OpenBSD/sparc64.  This
currently requires a kernel change.

<item>On the *BSD's, added support for absolute mouse position events and
horizontal scroll wheels.

<item>Fixed a bug that caused an entire batch of mouse events to be rejected
when one of an unknown type was encountered.

<item>Don't error out on unknown wskbd types on the *BSD's.

<item>Fixed memory leaks in option processing.

<item>Fixed area granularity handling in the framebuffer manager.

<item>Reworked the sizing of PCI resources.  More specifically, reduced the X
server's reliance on the OS to provide such information.

<item>Added support for SBUS and UPA adapters on NetBSD and OpenBSD.

<item>Added support for Solaris/amd64.

<item>Added support for UltraSPARC IV systems, including support for PCI
Express.

<item>Added support for DrangonFly, a variant of FreeBSD.

<item>Added support for x86_64 architectures on the *BSD's.

<item>Fixed page size determination in various server-related utilities.

<item>Made the mmapr and mmapw utilities understand wscons mapping modes on
the *BSD's.

</itemize>

<sect2>TinyX
<p>

<itemize>
<item>Added an option to the TinyX servers to prevent them from probing
serial ports on Linux.

</itemize>

<sect2>Xsun
<p>

<itemize>
<item>Changes to port the various Xsun servers to NetBSD/sparc have been merged
in.

</itemize>

<sect2>XDarwin
<p>

<itemize>
<item>This X server has been heavily upgraded by integrating a wide selection
of changes from its now defunct X.Org implementation.

</itemize>

<sect2>Xvfb
<p>

<itemize>
<item>Fixed segfaults in Xvfb's command line parsing.

</itemize>

<sect2>cfb
<p>

<itemize>
<item>Fix a number of bugs in cfb24, even though it is no longer used by any
driver provided in the distribution.

<item>Fix stipple handling on sparc64.

</itemize>

<sect2>fb
<p>

<itemize>
<item>A problem that prevented the use of the GLX extension in some cases has
been corrected.

<item>Fix fbCompose() for ABGR framebuffers.

</itemize>

<sect2>Render
<p>

<itemize>
<item>Endianness fix for RenderSetPictureClipRectangles request.

</itemize>

<sect1>Library, Client and Utility Updates
<p>

<sect2>restest
<p>
<itemize>
<item>This XRes extension client, originally written by Mark Vojkovich, has
been integrated, after rewriting it to prevent deadlocks that could occur when
displaying its results in an X session.

</itemize>

<sect2>xclock
<p>

<itemize>
<item>Make an analog xclock, when using Render, update the minute hand at most
every minute instead of every update interval.
This makes it consistent with non-Render mode.

</itemize>

<sect2>xdm
<p>

<itemize>
<item>Fixed a number of memory leaks.

<item>Fixed bug that prevented an IPv6-aware xdm from accepting chooser
connections.

</itemize>

<sect2>xwd
<p>

<itemize>
<item>This utility has been extended to allow selection of a rectangular region
to dump.

</itemize>

<sect2>xterm
<p>

<itemize>
<item>Xterm patches upto and including #215 have been integrated.

<item>Change xterm, on various platforms, to not require that the OS define a
utmp group.

</itemize>

<sect1>I18n and Fonts
<p>
<itemize>
<item>Eliminated a number of issues related to the use of external fontconfig
and freetype2 libraries.

<item>Updated 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>Added support for PAM on Solaris and Darwin.

<item>Added support for OpenPAM on FreeBSD and 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>pnozz</tt> (+)<colsep>Weitek P9100<colsep><htmlurl
		name="pnozz(4)" url="pnozz.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 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 use DDC information to
set the screen size and pitch.  This can be overridden by explicitly
resetting it to the 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> Josh Bressens, Chris Evans, Matthieu Herrb,
  Marc La France, Sean Larsson, Victor Stinner, iDefense.

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

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

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

  <tag>DragonFly support:</tag>David H. Dawes.
  </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>
Andrew Aitchison,
Marc Balmer,
Etienne Bersac,
Martin Bochnig,
Peter Breitenlohner,
Josh Bressers,
James Chacon,
Yves de Champlain,
Alan Coopersmith,
David Dawes,
Eike Dehling,
Thomas Dickey,
Matthias Drochner,
Jay Estabrook,
Chris Evans,
Will L G,
Andriy Gapon,
Charles M. Hannum,
Frank J. R. Hanstick,
Ben Harris,
Matthieu Herrb,
Iain Hibbert,
Martin Husemann,
iDefense,
Milos Komarcevic,
Marc La France,
Sean Larrson,
Michael Lorenz,
Jie Luo,
Loic Mahe,
Minoura Makoto,
Martin Mares,
Luke Mewburn,
NetBSD,
Dmitry Pervushin,
Alexander Pohoyda,
Ty Sarna,
SciFi,
Christopher Sekiya,
Jamey Sharp,
Victor Stinner,
Frank van der Linden,
Shin Takemura,
Mark Vojkovich,
Nathan J. Williams,
X.Org,
Christos Zoulos.

<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>
