This is release 20030911 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-20030911: (see ChangeLog for details)
        - Many improvements to the winecfg configuration tool.
        - Massive header files cleanup for better source compatibility.
        - Some more progress on the kernel/ntdll separation.
        - 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-20030911.tar.gz
  http://prdownloads.sourceforge.net/wine/Wine-20030911.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-html.tar.gz, wine-doc-txt.tar.gz,
wine-doc-pdf.tar.gz and wine-doc-ps.tar.gz.

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

Patches should be submitted to "wine-patches@winehq.com".  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.com/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.com
