This is release 20050830 of Wine, a free implementation of Windows on
Unix.  This is still a developers only release.  There are many bugs
and unimplemented features.  Most applications still do not work
correctly.

WHAT'S NEW with Wine-20050830: (see ChangeLog for details)
        - A lot more theming support.
        - Many improvements to the various crypto dlls.
        - More LDAP support.
        - Beginnings of an MSXML implementation.
        - Better MSHTML support.
        - Emulated version now set to Windows 2000 by default.
        - Direct3D fixes and improvements.
        - Lots of bug fixes.

See the README file in the distribution for installation instructions.

Because of lags created by using mirror, this message may reach you before
the release is available at the ftp sites.  The sources will be available
from the following locations:

  http://www.ibiblio.org/pub/Linux/ALPHA/wine/development/Wine-20050830.tar.gz
  http://prdownloads.sourceforge.net/wine/Wine-20050830.tar.gz

It should also be available from any other site that mirrors ibiblio.org.
These locations also hold pre-built documentation packages in various
formats: wine-doc-en-html.tar.gz, wine-doc-en-txt.tar.gz,
wine-doc-en-pdf.tar.gz and wine-doc-en-ps.tar.gz.

You can also get the current source directly from the CVS tree. Check
http://www.winehq.org/cvs for details.

Patches should be submitted to "wine-patches@winehq.org".  Please
don't forget to include a ChangeLog entry. If you submitted a patch,
please check to make sure it has been included in the new release.

If you want to receive by mail a patch against the previous release
when a new one is released, you can subscribe to the mailing list at
http://www.winehq.org/mailman/listinfo/wine-releases .

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

--
Alexandre Julliard
julliard@winehq.org
