This is release 950319 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-950319: (see ChangeLog for details)
	- New memory management scheme. This will probably cause many
	  new problems, please report them. I'm particularly interested
	  to hear how it works for the *BSD people.
	- Many fixes in file and directory handling.
	- Handling of additive fixup records.
	- 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-950319.tar.gz
    tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-950319.tar.gz
    ftp.infomagic.com:/pub/mirrors/linux/wine/development/Wine-950319.tar.gz
    ftp.funet.fi:/pub/OS/Linux/ALPHA/Wine/Wine-950319.tar.gz

It should also be available from any site that mirrors tsx-11 or sunsite.

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
