<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">

<article>

<title>Release Notes for XFree86&tm; 3.3.3
<author>The XFree86 Project, Inc
<date>19 November 1998

<abstract>

This document describes the bugs fixed and the features added in XFree86 3.3.3 
compared with the 3.3.2 release,
It also includes installation instructions for the binary distributions.
It is strongly recommended that anyone using XFree86 update to version 3.3.3.

</abstract>

<toc>

<sect> XFree86 and X11R6.3
<p>
XFree86 releases starting with the 3.2A beta are based on the
X Consortium's X11R6.3 (the final release from the X Consortium).

R6.3 is an update to R6.1, and is intended to be compatible with R6.1
and R6 at the source and protocol levels.  Binaries should be
upward-compatible.  X11R6.3 includes some new Xserver extensions:
SECURITY, XC-APPGROUP, XpExtension (print extension), and an updated,
and standardised version of LBX.  X11R6.3 also has new standards,
including RX (X Remote Execution MIME type), and a proxy management
protocol.  X11R6.3 includes support for gzipped fonts.

R6.1 is an update to R6,
and is intended to be compatible with R6 at the source and protocol
levels.  Binaries should be upward-compatible.  X11R6.1 includes some
new Xserver extensions: DOUBLE-BUFFER, XKEYBOARD and RECORD.

What about R6.2?  X11R6.2 is the name given to a subset of X11R6.3,
which has only the print extension and the Xlib implementation of
vertical writing and user-defined character support in addition to
those features included in R6.1.
<p>
<sect> X11R6.4
<p>
In September 1998 The Open Group changed the copyright of X11R6.4
from the non-free copyright used for the initial release of
X11R6.4 back to the old free X Consortium style copyright.
Given the fact that our main development focus is on XFree86-4.0 and that 
the 3.3.3 release was intended mostly to fix some bugs and get out new
drivers to the public, we opted not to include X11R6.4 in XFree86-3.3.3.
<p>
XFree86-4.0 will be X11R6.4 based.
<p>
<sect> OS issues
<p>
Always check the OS specific README files for special requirements or caveats. 
<p>
Users running Linux should note that Elf is now the only binary type 
supported for Linux OSs.  This means
that binaries for ix86/a.out and AXP/ECOFF are not available with this
release.
<p>
Users running FreeBSD 3.0 should note that only ELF binaries are provided
with this release.  a.out shared libraries are also included for compatibility
purposes.

<p> 
<sect> What's new in 3.3.3?
<p>
<sect1> Security fixes
<p>
<itemize>
  <item>Several buffer overrun problem discovered since the release of
	XFree86-3.3.2 have been fixed
  <item>Sanity checks on DISPLAY variable 
  <item>Attempt to stop X connection hijacking (sticky bit for /tmp/.X11-unix)
	Note that this is only a short-term partial solution, and it is
	doesn't help at all for some SYSV based OSs (like Solaris 2.x).
</itemize>
<sect1> Bug fixes
<p>
<itemize>
  <item>Fix a serious LBX bug using uninitialized variables.
  <item>Fix some Xlib bugs that cause problems when using XKB in some
        locales (like latin2), add support for iso8859-15, and include
	a couple of basic fonts for iso8859-15
  <item>Fix xf86config to handle more than 10 modes and to be prepared for
        XFCom / XBF servers.
  <item>Lots of xterm changes, see xterm.log.html in the sources.
  <item>Fix problems with high dot clocks in high color depths on Riva128.
  <item>Fix problem in the S3 drivers with disabled onboard S3 chips when
        using S3 cards.
  <item>Fix problems with Cirrus 5480 at high resolutions and jitter that 
        appeared with the 546x's using the BitBLT engine.
  <item>Fix clock limits in some cases in Tseng driver.
  <item>Fix some lockups with ViRGE chips.
  <item>Improved timing calculations for video FIFO in the Mach64 X server.
  <item>Fixed bug in font rendering code in the Mach64 X server.
  <item>Fixed VGA font restoration bug when exiting the Mach64 X server.
  <item>Several XF68_FBDev fixes.
  <item>Fix wrong clock limits for S3 Trio64V+.
  <item>Fix some generic rendering errors in cfb and vga code.
  <item>Fix text restore problems and improve high res 32bpp modes in MGA
        driver; fix 24bpp and 32bpp display problems; disable probing for 
	memory on some MGA chipsets; fix maximum blit size; fix sync on green
	for Mystique.
  <item>Fix problems with Xnest crashing with too many visuals.
  <item>Fixes for 64bit architectures.
  <item>Fix cursor bug in S3V server.
  <item>Fixes for memory probing, max dotclock probing and DPMS display off
        on C&amp;T chipsets.
  <item>Fix LCD detection for CLGD755x and the double mouse bug and the
        blanking bug in the cirrus driver.
  <item>Fix some problems with -quiet flag (where some variables stayed
        uninitialized)
  <item>SuperProbe can detect C&amp;T HiQV chips now, with an exception in the
  case of No-PCI bus connected. The "-no_bios" option of SuperProbe solve this
  situation. 
  <item>The C&amp;T chipsets now use software cursors by default to avoid
  a number of minor problems in certain circumstances. Hardware cursors can
  still be used by adding the "hw_cursor" option to XF86Config.
  <item>EGC server now works on Linux/98. XF98Setup also works with it.
  <item>Fix VT switch problem with MGA server on Linux/98.
</itemize>
<sect1> New Features
<p>
<itemize>
  <item>New driver for Cyrix MediaGX based motherboards.
  <item>New driver for Rendition V1000 and V2x00 chipsets (not accelerated).
  <item>New driver for Weitek P9100 based cards.
  <item>New driver for SiS 5597/98 and SiS 6326; treat SiS 6215 and 6225 as
        6205.
  <item>New server for 3Dlabs based cards using GLINT 500TX and MX (with IBM 
        RAMDAC), Permedia (with IBM RAMDAC), Permedia 2 and Permedia 2v.
  <item>Support for the Matrox G100 and G200 based cards to the MGA
        driver.
  <item>Support for C&amp;T 69000 and 32bpp on 65550 and later.
  <item>Support for NeoMagic notebook chipsets.
  <item>Support for EPSON SPC8110.
  <item>Support for NVidia Riva TNT.
  <item>Acceleration for Trident Image975, Image985, Cyber9397, Cyber9388.
  <item>Support for the new ATI Rage Pro, VT4 and Rage IIC based cards has
        been added.
  <item>24-plane TGA support.
  <item>Config support to build XFree86 on Linux with DECnet transport.
  <item>Support to build XFree86 for FreeBSD/ELF.
  <item>Support for vesafb on Linux/x86.
  <item>LynxOS 3.0 support.
  <item>Updates to SuperProbe.
  <item>New XInput drivers for AceCad ADVANCEDigitizer, MicroTouch TouchPen,
        SGI dial box.
  <item>Add local font directory.
</itemize>
<sect1>Known Problems
<p>
<itemize>
  <item>There are problems with some Cirrus laptop chipsets (75xx).  The
	driver seems to work for some people, but not others.  Until
	someone with the appropriate hardware can look into
	this, these problems are unlikely to be fixed.  If you wish to
	work on this, please contact us.  We don't need testers, we need
	people willing and able to fix the problems.
  <item>There are problems with some of the Trident laptop chipsets.  The
	driver seems to work in a limited way for some people, but not
	others.  Until someone with the appropriate hardware can look into
	this, these problems are unlikely to be fixed.  If you wish to
	work on this, please contact us.  We don't need testers, we need
	people willing and able to fix the problems.
  <item>SuperProbe command fails to detect some newly supported chips.
        Currently, the probing result with Xserver itself with appropriate
        setting in XF86Config (and maybe option "-probeonly") can be more
        relied on than the result from SuperProbe for newer chips.
        If you are interested in improving the design of SuperProbe's code,
        let's come and join as the member of the XFree86 ``developer team''.
</itemize>

<sect>XFree86 and Open Source Software
<p>
XFree86 public releases in general follow the Open Source Software definition
as set forth at <htmlurl name="http://www.opensource.org/osd.html"
url="http://www.opensource.org/osd.html">. 
This definition is actually a subset of our requirements.
<p>
After we had finalized XFree86 3.3.3, and within hours of our planned
release, NVIDIA insisted that we withdraw two source files from the
driver that they had supplied to us and replace some other source files
with versions that were partly run through the C preprocessor.  NVIDIA's
stated reason for this was to remove some of the names that they thought might
reveal intellectual property from NVIDIA. This resulted in somewhat
unreadable and unmaintainable code.
<p> 
The XFree86 Project is strongly opposed to such obfuscated code.  Among other
things, such code does not satisfy the Open Source definition of "Source Code",
which states that
<quote>
The source code must be the preferred form in which a programmer would
modify the program. Deliberately obfuscated source code is not allowed.
Intermediate forms such as the output of a preprocessor or translator
are not allowed.
</quote>
Due to the extremely late date of this decision by NVIDIA, we decided
to include the code as offered by NVIDIA.  All other options would have
significantly delayed the release of XFree86-3.3.3.  Unless another
solution can be found with NVIDIA, we will remove this code from future
releases.
<p>
The code affected by this is located in the directory:
<quote>
<tt>xc/programs/Xserver/hw/xfree86/vga256/drivers/nv</tt>
</quote>
Specifically,
the files: <tt>nv3arb.c</tt>, <tt>nv3cursor.c</tt>, <tt>nv3driver.c</tt>,
<tt>nv3setup.c</tt>, <tt>nv4arb.c</tt>, <tt>nv4cursor.c</tt>,
<tt>nv4driver.c</tt>, <tt>nv4setup.c</tt>.
All other code in XFree86 3.3.3 satisfies the Open Source Software definition.
<p>

<sect>Installing the XFree86 3.3.3 Release
<p>
The XFree86 3.3.3 binaries are distributed as a full release.

NOTE: the X servers are no longer installed setuid root.  If you are
starting your X servers with startx/xinit, or something similar, you
will need a copy of the setuid Xwrapper, and an updated xinit.  These
can be found in Xbin.tgz.

What follows is a list of the XFree86 3.3.3 components.  There may be
some variations in this for some OSs.

The following are required for all new installations, or when upgrading
from a version older than 3.3:
<quote>
<verb>
preinst.sh      Pre-installation script
postinst.sh     Post-installation script
extract         XFree86 extraction utility
Xbin.tgz        Clients, run-time libs, and app-defaults files
Xdoc.tgz        Documentation
Xfnts.tgz       75dpi, misc and PEX fonts
Xlib.tgz        Data files required at run-time
Xman.tgz        Manual pages
Xset.tgz        XF86Setup utility
Xjset.tgz       XF86Setup utility (if you prefer the Japanese version)
XVG16.tgz       16 colour VGA server (XF86Setup needs this server)
Xcfg.tgz        sample config files for xinit, xdm
</verb>
</quote>

The following are required when upgrading from version 3.3 or later:

<quote>
<verb>
preinst.sh      Pre-installation script
postinst.sh     Post-installation script
extract         XFree86 extraction utility
Xbin.tgz        Clients, run-time libs, and app-defaults files
Xdoc.tgz        Documentation
Xlib.tgz        Data files required at run-time
Xman.tgz        Manual pages
Xset.tgz        XF86Setup utility
Xjset.tgz       XF86Setup utility (if you prefer the Japanese version)
XVG16.tgz       16 colour VGA server (XF86Setup needs this server)
</verb>
</quote>

While it isn't essential to update the standard fonts, this version does
include some minor fixes to some of them, as well as the addition of
two basic ISO 8859-15 fonts.  If you want to upgrade the standard fonts you
will also need:

<quote>
<verb>
Xfnts.tgz       75dpi, misc and PEX fonts
</verb>
</quote>

NOTE: Be very careful about installing Xcfg.tgz over an existing
installation if you have customised your xinit and/or xdm config files.
Installing Xcfg.tgz will overwrite any existing files.  If you do have
customised files, there is no need to install Xcfg.tgz.

NOTE: The bitmap fonts distributed with this release are compressed using
gzip rather than compress.  This means that you will probably want to
remove the old versions (after backing them up).  The Xservers and font
server in releases prior to 3.2A cannot read gzipped fonts, so keep a copy
of the old fonts if you wish to run older servers.

The following X servers are for PC/AT based hardware (i.e., typical
Intel ix86 based PCs).  Choose at least one which
matches your hardware, as well as the VGA16 server.  The VGA16 server is
required by the new configuration utility (XF86Setup).
<quote>
<verb>
X3DL.tgz        3Dlabs server
X8514.tgz       8514/A server
XAGX.tgz        AGX server
XI128.tgz       I128 server
XMa32.tgz       Mach 32 server
XMa64.tgz       Mach 64 server
XMa8.tgz        Mach 8 server
XMono.tgz       Mono server
XP9K.tgz        P9000 server
XS3.tgz         S3 server
XS3V.tgz        old S3 ViRGE server (please use SVGA server)
XSVGA.tgz       SVGA server
XVG16.tgz       16 colour VGA server (XF86Setup needs this server)
XW32.tgz        ET4000/W32, ET6000 server
</verb>
</quote>
The following X servers are available for Alpha hardware:
<quote>
<verb>
XMa64.tgz       Mach 64 server
XMono.tgz       Mono server (generic driver only)
XP9K.tgz        P9000 server
XTGA.tgz        DEC 21030 (TGA) server
XS3.tgz         S3 server
XS3V.tgz        old S3 ViRGE server (please use SVGA server)
XSVGA.tgz       SVGA server (Matrox Millennium and S3 ViRGE drivers only)
</verb>
</quote>
The following X servers are for PC98 hardware. Note that PC98 is a 
Japanese computer standard and has nothing to do with Win98, or the 
Intel and Microsoft PC98 specification. If you have a PC98 machine,
choose one which suits your hardware.  If you don't know what a PC98 machine
is, you don't need any of these.  These servers <bf>will not run</bf>
on "normal" PCs, so don't even try them if you don't have a Japanese PC98
machine.
<quote>
<verb>
X9NS3.tgz       PC98 NEC(S3) server
X9SPW.tgz       PC98 PCSKB-PowerWindow(S3) server
X9LPW.tgz       PC98 PowerWindowLB(S3) server
X9EGC.tgz       PC98 EGC(generic) server
X9GA9.tgz       PC98 GA-968V4/PCI(S3 968) server
X9GAN.tgz       PC98 GANB-WAP(cirrus) server
X9480.tgz       PC98 PEGC-480(generic) server
X9NKV.tgz       PC98 NKV-NEC(cirrus) server
X9WS.tgz        PC98 WABS(cirrus) server
X9WEP.tgz       PC98 WAB-EP(cirrus) server
X9WSN.tgz       PC98 WSN-A2F(cirrus) server
X9TGU.tgz       PC98 TGUI server
X9MGA.tgz       PC98 MGA server
X9SVG.tgz       PC98 CLGD755x server
X9set.tgz       PC98 XF98Setup utility
</verb>
</quote>
The following are optional.
<quote>
<verb>
Xf100.tgz       100dpi fonts
Xfcyr.tgz       Cyrillic fonts
Xfnon.tgz       Other fonts (Chinese, Japanese, Korean, Hebrew)
Xfscl.tgz       Scalable fonts (Speedo and Type1)
Xfsrv.tgz       Font server and config files
Xprog.tgz       X header files, config files and compile-time libs
Xnest.tgz       Nested X server
Xvfb.tgz        Virtual framebuffer X server
Xprt.tgz        X Print server
Xps.tgz         PostScript version of the documentation
Xhtml.tgz       HTML version of the documentation
Xjdoc.tgz       Documentation in Japanese (for version 3.2)
Xjhtm.tgz       HTML version of the documentation in Japanese (3.2)
Xlkit.tgz       X server LinkKit
Xlk98.tgz       X server LinkKit for PC98 servers
</verb>
</quote>

If you already have a version of XFree86 installed, <bf>MAKE A BACKUP OF</bf>
<tt>/usr/X11R6</tt> <bf>BEFORE DOING ANYTHING ELSE</bf>.  The standard
installation procedure will overwrite your existing version of XFree86.

If you are installing from scratch, create a directory called
<tt>/usr/X11R6</tt>, then extract the required <tt>.tgz</tt> files.
If you don't have enough space in <tt>/usr</tt> for this, create a
directory elsewhere and create a symbolic link to it.
E.g., if you create a directory in <tt>/home</tt>:
<tscreen><verb>
	mkdir /home/X11R6
	ln -s /home/X11R6 /usr
</verb></tscreen>

The next step is to run the pre-installation script.  This script makes
some preliminary checks of your system.  For some OSs, it may tell you
to install new versions of some system components before proceeding with
the installation.  This script may also remove some outdated files and
symbolic links from a previous installation that could cause problems.

For the purposes of these installation instructions, it is assumed that
you have downloaded all the files to the <tt>/var/tmp</tt> directory.
If you've put them in another directory, that's fine -- just replace
all occurrences of ``<tt>/var/tmp</tt>'' with the name of that directory.

To run the pre-installation script, go to <tt>/usr/X11R6</tt> and run it:
<tscreen><verb>
	cd /usr/X11R6
	sh /var/tmp/preinst.sh
</verb></tscreen>

The next step is to make the installation utility executable.  To do this,
make sure the `extract' file is in the same directory as all the X*.tgz
files, and run the following from that directory:

<tscreen><verb>
	chmod 755 extract
</verb></tscreen>

The installation utility ``extract'' is used to unpack the .tgz files
that make up the XFree86 distribution.  The .tgz files are gzipped
tar files.  However, ``tar'' in its standard form on most OSs is not
well-suited to the task of installing XFree86.  The extract utility is
a modified version of GNU tar 1.12 built with the options required to
make it suitable for installing XFree86.  The source for extract is
available from the same place you got the XFree86 distribution.

It is strongly recommended that you use the provided extract utility to
unpack the XFree86 distribution.  If you choose to ignore this and use
something else, we don't want to hear from you if you run into problems.
It is also important that you do not rename the extract utility.  If
renamed, it behaves just like the normal GNU tar.

To extract the XFree86 binaries, run the following as <bf>root</bf>:
<tscreen><verb>
	cd /usr/X11R6
	/var/tmp/extract /var/tmp/X*.tgz
</verb></tscreen>

Once the required <tt>.tgz</tt> files have been extracted, run the post
installation script:
<tscreen><verb>
	cd /usr/X11R6
	sh /var/tmp/postinst.sh
</verb></tscreen>

For OSs which use ldconfig, you may need to run ldconfig or reboot to
complete the installation.  The postinst.sh script should run ldconfig
correctly for you if you are using Linux, FreeBSD, NetBSD or OpenBSD.
For other OSs that use ldconfig, check how it normally gets run at boot time.

Once the installation is complete, you should run the one of the
configuration utilities (<tt>XF86Setup</tt> or <tt>xf86config</tt>) to
configure the X server.  This is essential for a new installation but
optional for an existing installation.  Refer to the
<htmlurl name="QuickStart document" url="QuickStart.html"> for configuration
information.

<!--
<sect>Updating XFree86 3.3.2 patch 3 to XFree86 3.3.3
<p>
The following is required to update an XFree86 3.3.2 patch 3 installation to
XFree86 3.3.3:
<quote>
<verb>
extract              XFree86 extraction utility
X333upd.tgz         XFree86 3.3.3 update
X333{SERVER}.tgz    3.3.3 Server update from Servers/PC98_Servers directory
                     You must select the appropriate SERVER file for the
		     server that you are currently running (i.e. X333S3.tgz).
</verb>
</quote>

First make the extract utility executable by running:
<tscreen><verb>
	chmod 755 extract
</verb></tscreen>
To update your installation to 3.3.3, run the following as
<bf>root</bf>:
<tscreen><verb>
	cd /usr/X11R6
	/var/tmp/extract /var/tmp/X333upd.tgz
	/var/tmp/extract /var/tmp/X333{SERVER}.tgz
</verb></tscreen>

<bf>NOTE: X333upd.tgz supersedes the previous update (X3323upd.tgz),
so there is no need to have installed X3323upd.tgz before installing
X333upd.tgz.</bf>
-->

<verb>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTE.sgml,v 3.59.2.61 1998/11/19 11:27:57 dawes Exp $
</verb>

</article>
