This is release 950302 of Wine the MS Windows emulator.  This is still a
developer's only release.  There are many bugs and many unimplemented API
features.  Most applications still do not work.

Patches should be submitted to "wine-new@amscons.com".  Please don't forget
to include a ChangeLog entry.  I'll make a new release every other Sunday.

WHAT'S NEW with Wine-950302: (see ChangeLog for details)
	- You now need libXpm to be able to compile.
	- OLE stubs and run-time option to disable them.
	- Support for special selectors like __0040H.
	- 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:

	sunsite.unc.edu:/pub/Linux/ALPHA/wine/Wine-950302.tar.gz
	aris.com:/pub/linux/ALPHA/Wine/development/Wine-950302.tar.gz
	tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-950302.tar.gz
	ftp.funet.fi:/pub/OS/Linux/ALPHA/Wine/Wine-950302.tar.gz
	ftp.wonderland.org:/Wine/Wine-950302.tar.gz

If you submitted a patch, please check to make sure it has been
included in the new release.

New developers should read the info files available from the ftp sites.
The files NEWBIE-PROJECTS, DEVELOPERS-HINTS and Wine.FAQ are required
reading for new developers.

Wine is available thanks to the work of Bob Amstadt, Dag Asheim,
Martin Ayotte, Erik Bos, John Brezak, Andrew Bulhak, John Burton,
Paul Falstad, Peter Galbavy, Jeffrey Hsu, Miguel de Icaza,
Alexandre Julliard, Jon Konrath, Scott A. Laird, Martin von Loewis,
Kenneth MacDonald, Peter MacDonald, David Metcalfe, Michael Patra,
John Richardson, Johannes Ruscheinski, Yngvi Sigurjonsson,
Rick Sladkey, William Smith, Jon Tombs, Linus Torvalds, Carl Williams,
Karl Guenter Wuensch, and Eric Youngdale.

--
Alexandre Julliard
julliard@sunsite.unc.edu
