<?xml version="1.0" ?>
<kc>

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="303" date="22 Jan 2006 00:00:00 -0800" />
<intro> <p>This is the 303rd issue of the Wine Weekly News publication.
Its main goal is to paint. It also serves to inform you of what's going on around Wine. Wine is an open source implementation of the Windows API on top of X and Unix.  Think of it as a Windows compatibility layer.  Wine does not require Microsoft Windows, as it is a completely alternative implementation consisting of 100% Microsoft-free code, but it can optionally use native system DLLs if they are available.   You can find more info at <a href="http://www.winehq.org">www.winehq.org</a></p> </intro>
<stats posts="570" size="1332" contrib="148" multiples="87" lastweek="60">

<person posts="28" size="50" who="rob at codeweavers.com (Robert Shearman)" />
<person posts="28" size="32" who="dank at kegel.com (Dan Kegel)" />
<person posts="21" size="21" who="julliard at winehq.org (Alexandre Julliard)" />
<person posts="20" size="24" who="mike at codeweavers.com (Mike McCormack)" />
<person posts="18" size="30" who="wine-devel at kievinfo.com (Vitaliy Margolen)" />
<person posts="17" size="17" who="dmitry at baikal.ru (Dmitry Timoshkov)" />
<person posts="15" size="18" who="truiken at gmail.com (James Hawkins)" />
<person posts="14" size="29" who="a_villacis at palosanto.com (=?ISO-8859-1?Q?Alex_Villac=ED=ADs_Lasso?=)" />
<person posts="14" size="17" who="twickline at gmail.com (Tom Wickline)" />
<person posts="13" size="38" who="k04jg02 at kzoo.edu (Joseph Garvin)" />
<person posts="13" size="16" who="eric.pouech at wanadoo.fr (Eric Pouech)" />
<person posts="11" size="16" who="marcus at jet.franken.de (Marcus Meissner)" />
<person posts="10" size="17" who="Aric.Cyr at gmail.com (Aric Cyr)" />
<person posts="10" size="13" who="wine.dev at web.de (Detlef Riekenberg)" />
<person posts="9" size="13" who="saulius2 at ar.fi.lt (Saulius Krasuckas)" />
<person posts="9" size="10" who="the3dfxdude at gmail.com (Jesse Allen)" />
<person posts="8" size="16" who="reif at earthlink.net (Robert Reif)" />
<person posts="8" size="8" who="meissner at suse.de (Marcus Meissner)" />
<person posts="8" size="8" who="hverbeet at gmail.com (H. Verbeet)" />
<person posts="7" size="55" who="james.trotter at gmail.com (James Trotter)" />
<person posts="7" size="30" who="mjung at iss.tu-darmstadt.de (Michael Jung)" />
<person posts="7" size="17" who="speeddymon at gmail.com (Tom Spear (aka Dustin Navea))" />
<person posts="7" size="11" who="dj015 at yahoo.com (Damjan Jovanovic)" />
<person posts="7" size="10" who="wine at troy.rollo.name (Troy Rollo)" />
<person posts="6" size="18" who="stefandoesinger at gmx.at (Stefan D&#246;singer)" />
<person posts="6" size="18" who="bon at elektron.ikp.physik.tu-darmstadt.de (Uwe Bonnes)" />
<person posts="6" size="18" who="astrand at cendio.se (=?iso-8859-1?Q?Peter_=C5strand?=)" />
<person posts="6" size="8" who="chmorgan at gmail.com (Chris Morgan)" />
<person posts="5" size="24" who="tobert at gmail.com (Al Tobey)" />
<person posts="5" size="17" who="mekaananth at gmail.com (Ananth M)" />
<person posts="5" size="9" who="lionel.ulmer at free.fr (Lionel Ulmer)" />
<person posts="5" size="8" who="rolf.kalbermatter at citeng.com (Rolf Kalbermatter)" />
<person posts="5" size="6" who="wine-patches at reactsoft.com (Thomas Weidenmueller)" />
<person posts="5" size="4" who="phil at newstar.rinet.ru (Phil Krylov)" />
<person posts="4" size="24" who="patrol at sinus.cz (Pavel Troller)" />
<person posts="4" size="11" who="wino at piments.com" />
<person posts="4" size="11" who="cihan at uq.edu.au (Cihan Altinay)" />
<person posts="4" size="9" who="us at edmeades.me.uk (Ann &amp; Jason Edmeades)" />
<person posts="4" size="6" who="wine at eternaldusk.com (Evil)" />
<person posts="4" size="5" who="tom at dbservice.com (Tomas Carnecky)" />
<person posts="4" size="4" who="dimi at lattica.com (Dimi Paun)" />
<person posts="4" size="3" who="segin2005 at gmail.com (Segin)" />
<person posts="3" size="14" who="jonathan at ernstfamily.ch (Jonathan Ernst)" />
<person posts="3" size="14" who="stefandoesinger at gmx.at (Stefan D&#246;singer)" />
<person posts="3" size="14" who="markus.amsler at oribi.org (Markus Amsler)" />
<person posts="3" size="14" who="paul at astro.gla.ac.uk (Paul Millar)" />
<person posts="3" size="12" who="most at museresearch.com (Michael Ost)" />
<person posts="3" size="8" who="tony.lambregts at gmail.com (Tony Lambregts)" />
<person posts="3" size="8" who="p.beutner at gmx.net (Peter Beutner)" />
<person posts="3" size="8" who="dominic.wise at ukonline.co.uk (Dominic Wise)" />
<person posts="3" size="7" who="penna at bb.com.br" />
<person posts="3" size="6" who="roli8200 at yahoo.de (Roland Kaser)" />
<person posts="3" size="6" who="andi at rhlx01.fht-esslingen.de (Andreas Mohr)" />
<person posts="3" size="6" who="curritoamores at hotmail.com (Curro Amores)" />
<person posts="3" size="6" who="palm at nogui.se (Christer Palm)" />
<person posts="3" size="5" who="paul.vriens at xs4all.nl (Paul Vriens)" />
<person posts="3" size="5" who="wine at electrozaur.com (Boaz Harrosh)" />
<person posts="3" size="4" who="scott at open-vote.org (Scott Ritchie)" />
<person posts="3" size="4" who="ivg2 at cornell.edu (Ivan Gyurdiev)" />
<person posts="3" size="4" who="mstefani at redhat.com (Michael Stefaniuc)" />
<person posts="3" size="3" who="martin-fuchs at gmx.net (Martin Fuchs)" />
<person posts="3" size="3" who="jacek at codeweavers.com (Jacek Caban)" />
<person posts="3" size="3" who="juan_lang at yahoo.com (Juan Lang)" />
<person posts="3" size="3" who="hallo at michael-kaufmann.ch (Michael Kaufmann)" />
<person posts="3" size="2" who="gvg at reactos.org (Ge van Geldorp)" />
<person posts="3" size="2" who="Stefan.Leichter at camLine.com (Stefan Leichter)" />
<person posts="2" size="8" who="stefandoesinger at gmx.at (Stefan =?utf-8?q?D=C3=B6singer?=)" />
<person posts="2" size="8" who="winehacker at gmail.com (Steven Edwards)" />
<person posts="2" size="6" who="s.schauenburg at gmail.com (S. Schauenburg)" />
<person posts="2" size="5" who="richard-wild at ntlworld.com (Richard Wild)" />
<person posts="2" size="4" who="most at museresearch.com" />
<person posts="2" size="4" who="sergei_rozhkov at mail.ru (Sergei Rozhkov)" />
<person posts="2" size="3" who="reuben at ugcs.caltech.edu (Walt Ogburn)" />
<person posts="2" size="3" who="e.rsz at libertysurf.fr (emmanuel maillard)" />
<person posts="2" size="3" who="jrliggett at cox.net (James Liggett)" />
<person posts="2" size="2" who="xerox_xerox2000 at yahoo.co.uk (Louis. Lenders)" />
<person posts="2" size="2" who="danxuliu at gmail.com (=?ISO-8859-1?Q?Daniel_Calvi=F1o_S=E1nchez?=)" />
<person posts="2" size="2" who="wijn at wanadoo.nl (Rein Klazes)" />
<person posts="2" size="2" who="blin at gmx.net (Kai Blin)" />
<person posts="2" size="2" who="h.davies1 at physics.ox.ac.uk (Huw D M Davies)" />
<person posts="2" size="2" who="vik at zone81.com (Vik Kumar)" />
<person posts="2" size="2" who="Phil.Lodwick at EFI.COM (Phil Lodwick)" />
<person posts="2" size="1" who="jorishuizer at planet.nl (Joris Huizer)" />
<person posts="2" size="1" who="admin at comptune.com (Henry Kroll)" />
<person posts="2" size="1" who="hijinio at yahoo.com (Hiji)" />
<person posts="2" size="1" who="hans at it.vu.nl (Hans Leidekker)" />
<person posts="2" size="1" who="gslink at one.net (gslink)" />
<person posts="1" size="211" who="ghart at siemens-emis.com (Geoff Hart)" />
<person posts="1" size="14" who="leidola at newcon.de (Olaf Leidinger)" />
<person posts="1" size="6" who="krister at hallergard.fsworld.co.uk (Krister Hallergard)" />
<person posts="1" size="5" who="suporteinfo at callisto.com.br (Fernando - SuporteInfo)" />
<person posts="1" size="5" who="stefandoesinger at gmx.at (Stefan =?windows-1250?q?D=F6singer?=)" />
<person posts="1" size="5" who="vbudovsk at cs.rmit.edu.au (Vitaly Budovski)" />
<person posts="1" size="5" who="lists at nabble.com (Will L (sent by Nabble.com))" />
<person posts="1" size="4" who="rob at codeweavers.com (Rob Shearman)" />
<person posts="1" size="3" who="a_villacis at palosanto.com (=?UTF-8?B?QWxleCBWaWxsYWPDrcKtcyBMYXNzbw==?=)" />
<person posts="1" size="3" who="comargo at gmail.com (Cyril Margorin)" />
<person posts="1" size="3" who="w3seek at reactos.com (Thomas Weidenmueller)" />
<person posts="1" size="3" who="nrsc16850 at blueyonder.co.uk (Andrew Neil Ramage)" />
<person posts="1" size="3" who="kata198 at gmail.com (Tim Savannah)" />
<person posts="1" size="2" who="n0dalus+wine at gmail.com (n0dalus)" />
<person posts="1" size="2" who="anime4christ at gmail.com (Aleksey)" />
<person posts="1" size="2" who="Aric.Cyr at gmail.com (Aric.Cyr)" />
<person posts="1" size="2" who="xnavara at volny.cz (Filip Navara)" />
<person posts="1" size="2" who="stegefin at free.fr (Pierre d'Herbemont)" />
<person posts="1" size="2" who="belxjander_serechai at yahoo.com.au (Belxjander Serechai)" />
<person posts="1" size="2" who="conole at comcast.net (Aaron Conole)" />
<person posts="1" size="2" who="wine-devel-bounces at winehq.org" />
<person posts="1" size="2" who="stefan.munz at itomig.de (Stefan Munz)" />
<person posts="1" size="1" who="dtremenak at gmail.com (Daniel Remenak)" />
<person posts="1" size="1" who="wino at jentronics.com (Ron Jensen)" />
<person posts="1" size="1" who="molle.bestefich at gmail.com (Molle Bestefich)" />
<person posts="1" size="1" who="speeddymon at gmail.com (Dustin Navea)" />
<person posts="1" size="1" who="ch at eudicon.com (Casper Hornstrup)" />
<person posts="1" size="1" who="danxuliu at gmail.com (Daniel =?utf-8?b?Q2FsdmnDsW8=?= =?utf-8?b?U8OhbmNoZXo=?=)" />
<person posts="1" size="1" who="davidm at sjsoft.com (David Moore)" />
<person posts="1" size="1" who="selover at speakeasy.net (Howard Selover III)" />
<person posts="1" size="1" who="kgupta at in.safenet-inc.com" />
<person posts="1" size="1" who="efrias at syncad.com (Eric Frias)" />
<person posts="1" size="1" who="ivanleo at gmail.com (Ivan Leo Puoti)" />
<person posts="1" size="1" who="pgr at arcelectronicsinc.com (paul)" />
<person posts="1" size="1" who="gerald at pfeifer.com (Gerald Pfeifer)" />
<person posts="1" size="1" who="peter at piments.com" />
<person posts="1" size="1" who="xerox_xerox2000 at yahoo.co.uk (Louis Lenders)" />
<person posts="1" size="1" who="petro at mail.ru (Peter Lemenkov)" />
<person posts="1" size="1" who="ulrich.czekalla at utoronto.ca (Ulrich Czekalla)" />
<person posts="1" size="1" who="mwelinder at gmail.com (Morten Welinder)" />
<person posts="1" size="1" who="n0dalus+redhat at gmail.com (n0dalus)" />
<person posts="1" size="1" who="brian.vincent at gmail.com (Brian Vincent)" />
<person posts="1" size="1" who="burnus at net-b.de (Tobias Burnus)" />
<person posts="1" size="1" who="pp at siedziba.pl (Piotr Pawlow)" />
<person posts="1" size="1" who="david at l8s.co.uk (David Laight)" />
<person posts="1" size="1" who="navaraf at reactos.com (Filip Navara)" />
<person posts="1" size="0" who="roli8200 at yahoo.de (Roland Kaeser)" />
<person posts="1" size="0" who="jwhite at codeweavers.com (Jeremy White)" />
<person posts="1" size="0" who="burnus at gmx.de (Tobias Burnus)" />
<person posts="1" size="0" who="catdogbeloved at yahoo.com (Bob Hunter)" />
<person posts="1" size="0" who="zoe at theasylum.demon.co.uk (Zoe Parsons)" />
<person posts="1" size="0" who="tkho at ucla.edu" />
<person posts="1" size="0" who="campbell at cs.iastate.edu (Chris Campbell)" />
<person posts="1" size="0" who="daniel.skorka at stud.uni-karlsruhe.de (Daniel Skorka)" />
<person posts="1" size="0" who="jakob at vmlinux.org (Jakob Eriksson)" />
<person posts="1" size="0" who="marcelotduarte at gmail.com (Marcelo Duarte)" />
<person posts="1" size="0" who="Sven.Paschukat at t-online.de (Sven Paschukat)" />
<person posts="1" size="0" who="thunderbird2k at gmx.net (Roderick Colenbrander)" />
<person posts="1" size="0" who="jeffl at defcen.gov.au (Jeff L)" />
<person posts="1" size="0" who="lats at yless4u.com.au (Jeff L)" />

</stats>
<section 
	title="News: Wine 0.9.6 and CrossOver Office 5.0.1"
	subject="News"
	archive="http://www.winehq.com/?announce=1.110"
	posts="4"
>
<topic>News</topic>
<mention>CodeWeavers</mention>
<mention>codeweavers</mention>
<mention>WineHQ</mention>
<mention>Slashdot</mention>
<mention>News</mention>
<mention>Marcus Meissner</mention>

<p>It's been a few weeks since the last WWN.  Sorry about that, real life
has been pretty hectic, not the least of which is because of snow.  See, I
tend to ski <i>a lot</i> in the winter and this happens to be the best 
year in Colorado in practically 30 years.  Needless to say, I've gotten my
fair share of days in this year.  

</p><p>We return this week with an attempt to catch up
on some of the development that's occured. </p><p>

First, let's take a look at the recent Wine snapshots.  As we noted in
the last issue (WWN <a href="http://www.winehq.com/?issue=302#Short%20Term%20Release%20Schedule">#302</a>),
we're now on a shorter release schedule.  Alexandre is putting out new
snapshots approximately every 2 weeks.  Wine 0.9.5 came out on January 4th
with the following changes noted:
<ul>
<li>     A number of MSI fixes.</li>
    <li> More improvements to the IDL compiler.</li></ul>

</p><p>
This week on January 19th another release came out with these additions:
<ul>
<li>   A bunch of OLE fixes and improvements.</li>
  <li> DirectSound improvements, including full duplex support.</li>
  <li> Fix for the Windows metafile vulnerability.</li>
  <li> Many static control improvements.</li>
  <li> Some fixes for copy protection support.</li></ul></p>

<p>As usual, you can download the 
<a href="http://prdownloads.sourceforge.net/wine/wine-0.9.6.tar.bz2">source 
code</a> from SourceForge or check out the 
<a href="http://www.winehq.com/download">WineHQ download page</a> for a list
of binary packages.</p>

<p>We'll go into more detail below, but we made headlines on Slashdot for the
<a href="http://it.slashdot.org/article.pl?sid=06/01/06/2043203">Windows Metafile exploit</a>.
Ironically, Marcus Meissner already had a patch available for Wine before
the headline even appeared.  </p>

<p>Finally, CodeWeavers has released 
<a href="http://crossover.codeweavers.com/pipermail/announce/2006-January/000031.html">version 5.0.1</a> 
of CrossOver Office.  This is a maintenance release for version 5.0 and
just contains bug fixes.  From the announcement:</p>
<quote who="Codeweavers"><p>
We had a number of minor glitches that we felt were important
to release to our customers.
</p><p>
These include fixes for Notes (bouncing windows), fixes
for Office install issues (e.g. spellchecker), and a lot of
other minor problems that bothered us; a full changelog
is included in this email, 
<a href="http://crossover.codeweavers.com/pipermail/announce/2006-January/000031.html">below</a>.
</p><p>
It also includes a fix which prevents the EMF exploit
from working in Wine; many thanks to Marcus Meissner
for his speedy fix to Wine to that end.
</p><p>
We have a fix for ipod support that we decided to exclude
from this release because we worried that it might break
other programs.  However, we are going to put up a FAQ
on our web site in the next day or two to give interested
customers a workaround.
</p><p>
As always, if you are happy with your current version of
CrossOver, please do not rush out to upgrade to version 5.0.1.
However, we did take some care to make 5.0.1 a nice stable
upgrade, so it should be safe.
</p><p>
I'd like to thank the many people that helped with this
release, including our customers, with their excellent
problem reports, our beta testers (thanks guys!),
the broader Wine community, and especially to Andrew Bogott,
for his diligent and somtimes lonely work on seeing this
release out the door.

</p></quote>

<p>Any CrossOver Office user can download the new release as
long as their subscription is up to date.  </p>


</section>
<section
        title="Metafile Exploit"
        subject="RFC/PATCH: avoid metafilevirus problems"
        archive="http://www.winehq.org/hypermail/wine-devel/2006/01/0.html"
        posts="3"
        startdate="02 Jan 2006 00:00:00 -0800"
	enddate="03 Jan 2006 00:00:00 -0800"
>
<topic>Security</topic>

<p>Did you read about Windows metafile exploit?  The issue at hand lies with
Windows Metafiles, which are basically scripts for executing graphics
commands.  You can use them to create vector graphics by using commands
to draw lines and fill rectangles and other such things.  WMF files also
support the SetAbortProc API that allows Windows to execute code stored
in the WMF after the function is called.  That's bad.  For more details,
check out the original <a href="http://www.kb.cert.org/vuls/id/181038">CERT
advisory</a>.
</p><p>

Well, apparently it
existed with Wine as well, although it's unclear whether or not it could be
exploited.  Even if it could, the arbitrary execution could only run with
the same privileges as the Linux user running Wine.
</p><p>Marcus Meissner posted a patch for Wine and asked for comments:</p>
<quote who="Marcus Meissner"><p>

This patch reduces the attack vector on metafiles.
</p><p>
I originally wanted to filter only SETABORTPROC,
but there are a lot of things that might be used
to inject code.</p></quote>

<p>Marcus' changelog entry for the patch said,
<quote who="Marcus Meissner">
Only allow whitelisted escape codes when playing metafiles.</quote></p>

<p>So while SetAbortProc started the while thing off, Marcus' final patch
took into account other problematic calls.  The patch made it into Wine
and CrossOver Office 5.0.1.  </p>


</section>
<section 
	title="Updated Benchmarks"
	subject="Benchmarks for 0.9.5"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-January/044190.html"
	posts="10"
>
<topic>WineHQ</topic>
<mention>WineHQ</mention>
<mention>Mark</mention>

<p>Tom Wickline has been benchmarking Wine for a little while now and
posted some new results this week on the wiki.  The new results are 
side by side by side XP SP2.  Tom's brief announcement read:</p>
<quote who="Tom Wickline"><p>

Please take with a large dose of salt.
<ul><a href="http://wiki.winehq.org/BenchMark-0.9.5">
http://wiki.winehq.org/BenchMark-0.9.5</a></ul></p></quote>

<p>Chris Morgan pointed out Wine appeared to be doing better,
<quote who="Chris Morgan">
We appear to be faster now, leading in 67 tests vs. 63 for a previous
set of benchmarks?  Its difficult to see the trend over time having to
go back and forth between pages.</quote></p>

<p>There were some suggestions for improving it and Tom made some of
the changes.  The page eventually got linked to by Linux Today.
There's a lot to look at on that page, so I'll leave it at that.  
You'll notice Wine does quite well, better than XP, on things like memory and
filesystem access.  That's proven to be true with other benchmark
programs as well.  The interesting results are in the 3D tests.  
Whereas Wine couldn't even perform many of the tests in the past, we're
now faster than XP on many.</p>


</section>
<section
        title="Patch Statistics"
        subject="Some patch statistics"
        archive="http://www.winehq.org/hypermail/wine-devel/2006/05/0.html"
        posts="2"
        startdate="02 Jan 2006 00:00:00 -0800"
	enddate="03 Jan 2006 00:00:00 -0800"
>
<topic>Status Updates</topic>

<mention>CodeWeavers</mention>
<mention>Michael Stefaniuc</mention>
<mention>cvs</mention>

<p>
Hans Leidekker went through the new git repository and generated
some patch statistics:</p>
<quote who="Hans Leidekker"><p>
I was curious how we did last year so I dug up some numbers with the
help of git. I counted patches applied to the tree starting from 1999:
<ul>
  year&#160; &#160;   # patches<br />

  1999&#160;&#160;    2656<br />
  2000&#160;&#160;    2722<br />
  2001&#160;&#160;    1885<br />
  2002&#160;&#160;    3094<br />
  2003&#160;&#160;    3283<br />
  2004&#160;&#160;    3851<br />
  2005&#160;&#160;    6037<br />

Total:   23528
</ul></p><p>
This is almost too good to be true isn't it? I worried for a while
that these figures might be influenced by the switch from cvs to git,
e.g. that cvs history somehow shows up compressed in git. On second
look though it really seems that the past year has seen an impressive
increase in productivity, compared to the previous years.
</p></quote>

<p>Michael Stefaniuc mentioned the numbers could be checked against
the mailing list archives.  Intuitively you can read some into the
numbers above.  In early 2001 we saw a dropoff in patches as Corel
dropped their involvement with Wine.  Things picked up again as
CodeWeavers came on the scene.  There really has been an increasing
amount of activity and no one would deny that 2005 was a huge year
for development.  
</p><p>
Will 2006 be more of the same?  Well, there's no reason to think
otherwise and there's plenty of work to be done.</p>


</section>
<section 
	title="ntoskrnl.exe Status"
	subject="ntoskrnl status with patch against wine-0.9.6"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-January/044250.html"
	posts="1"
>
<topic>Status Updates</topic>
<p>Whither ntoskrnl.exe?  A lot of work has gone into supporting Safedisc
and getting a ntoskrnl.exe working with Wine to load the driver it requires.
In fact, it's probably the single biggest chunk of work that's been 
pending.  A lot of that work requires more changes within Wine in order
to be merged properly.  Until then, it's living outside of the main tree.
Vitaliy Margolen is maintaining it, or, at least keeping it on his
hard drive.  He gave a bit of an update this week on what's going on:</p>
<quote who="Vitaliy Margolen"><p>

I'm sure number of people wonder where did ntoskrnl go. It's still here in
the too hackish form to be committed.
</p><p>
For the past month it didn't even compile because of all the changes to
different parts of Wine. I just thought I should put it back together and
see if it's still working. And surprise surprise it still works. So here
it is again, before I'll break it again re-implementing the way the user
space talks to it.
</p><p>
BTW, it is still just barely enough to run safedisc 1.x copy-protection.
Diff against wine-0.9.6
</p></quote>


</section>
<section
        title="Ports: HP-UX, Solaris, AIX"
        subject="Wine on AIX 5.2 (PowerPC)"
        archive="http://www.winehq.com/pipermail/wine-devel/2005-December/043772.html"
        posts="6"
>
<topic>Ports</topic>

<p>There's no denying that Wine on Intel/AMD processors remains by far
the most common use.  However, there's a compelling reason for Wine to
run on other platforms: you can recompile your Windows program using 
Winelib into a native application.  If an ISV has a massive application
written for Windows, it's attractive to be able to port the existing
codebase to a different architecture.  While the Unix playing field
may be a lot smaller than in the past, there's still a significant
userbase for many applications.</p>

<p>A question came up a few weeks ago regarding Wine on other platforms.
Eric Frias mentioned SynaptiCAD has Wine running on HP-UX, though it
hasn't been merged:</p>
<quote who="Eric Frias"><p>
We actually managed to get HPUX (on PA-RISC) working reasonably well 
early last year.  We didn't attempt porting a few of the parts I 
considered optional, like winedbg, oleaut32, and opengl.  Still, it ran 
some pretty significant applications (i.e., mine :-) very well. 
</p><p>
The assembly code generated for HPUX is a bit different from the other 
platforms, and all of the ifdefs in winebuild were getting pretty hard 
to follow.  I'm hoping the recent changes to winebuild will make it 
easier to integrate, whenever I get around to updating...  Until that 
happens, if anyone needs HPUX winelib, I'll be happy to send a tar of my 
working copy.  It works on HPUX 11 and 11i, and maybe others.
</p><p>
The Sparc Solaris version of winelib we use works on at least Solaris 7, 
8, and 9.  It was working on Solaris 2.6 at one point, but we no longer 
have a machine that old to test on.
</p></quote>

<p>That response was actually prompted by an email from Geoff Hart
about porting Wine to AIX:</p>
<quote who="Geoff Hart"><p>

Not sure if this is the correct mailing list, please redirect me if not.

My goal is to port some Windows apps to AIX, so I decided to take as
much Wine (winelib) as I could to help me.  Initially I thought only
a small portion would be suitable, but after a few weeks of work I have
all the dlls/libs compiled (as simple AIX .so's) and because I'm quite
naive about Wine internals, I went for wineserver also.

My first question is: has anyone tried this before?  I've been googling
endlessly, and haven't found a single mention (unfortunately, "wine"
and "aix" keeps trying to find French drinks).  If anyone has, or anyone
is interested in my (hacky) attempt, please email me directly (I try to
keep up on this list, but I don't do very well).

I wanted to avoid the "wine" loader, so I made a pseudo-main like:
<ul><code>
int main( int argc, char *argv[] ) {
    <ul>
    char error[1024];<br />
    int i;<br /><br />

    if (wine_main_preload_info) {
	<ul>
        for (i = 0; wine_main_preload_info[i].size; i++)
            <ul>
            wine_mmap_add_reserved_area( wine_main_preload_info[i].addr,
                                         wine_main_preload_info[i].size );
            </ul></ul>
    }<br />

    AIX_set_pthread_funcs (); /* sets up thread function call table */<br />
    wine_thread_init ();          /* thread initialization stuff */<br />
    process_init ();        /* does a bunch of .exe initializations */<br />
    WinMain (0,0,0,0);</ul>
}</code></ul></p><p>

Amazingly, after building one of our simpler Windows clients, I get:
<ul><code>
hac1dev:ghart$ ./simpleClient<br />
err:ntdll:critsection.c 309: section f0b82b58 "virtual.c: csVirtual" <br />
wait timed out in thread 0009, blocked by 0000, retrying (60 sec)<br />
err:ntdll:critsection.c 309: section f0b7ad50 "exception.c: <br />
vectored_handlers_section" wait timed out in thread 0009, blocked by <br />
0000, retrying (60 sec)<br />
</code><i>Ctrl-C Killed</i></ul>

That last line would repeat every 60 seconds or so. 
</p><p>
So, if you have been kind enough to read this far, perhaps you also might
share any ideas you have about what I have done wrong.  I have traced 
through
both the wineserver and winelib (ntdll, kernel, user, ...) code in the 
debugger
but I haven't seen anything obvious (to my untrained eyes).  I have been so
bold as to even include my traces (the [PAUSE] in the client.trc is when I
hit the breakpoint in the server, and start it tracing).
</p><p>
The problem might well be in my attempted ports of the pthread routines, the
atomic operations, or some other assembly stuff. 
</p></quote>

<p>There's also a lot of work by Alexandre to make Wine run on MacOS X, so 
Wine should be more portable than ever soon.</p>

</section>
<section
        title="Running Winelib Apps"
        subject="Compiling test application (Notepad) with winelib - executeable segfaults"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-January/043794.html"
        posts="3"
>
<topic>Winelib</topic>

<p>Richard Wild had a question regarding the using Winelib:</p>
<quote who="Richard Wild"><p>

I was trying to compile the test application (Notepad) with winelib to 
get a feel for how to use it.  I followed the instructions in your docs, 
but ended up with a target file notepad2.exe.so.  The instructions imply 
that I should end up with an executable called notepad2, since they tell 
me to run it.
</p><p>
If I run the .so file it segfaults, so I assume it really is a shared 
library and not just an executable with a funny name.
</p><p>
I want to understand what I've done wrong here, because if I can't get 
this right I certainly won't be able to port anything complicated.  I'm 
sorry if this has been asked often before, but I couldn't find an easy 
way of searching the mailing list.
</p><p>
I am using WINE-0.9.4 built by Adam Schreiber for Slackware 10.2.
</p></quote>

<p>If that seems like an obvious question to Wine developers, then it 
just goes to show the documentation for Wine needs to be quite explicit
in what it describes.  Compared to Windows, Wine and Linux can be a strange
new world for a developer.  Vitaliy Margolen responded with the quick
answer: </p>
<quote who="Vitaliy Margolen"><p>

No winelib application is not a standalone as you would think. You need
to run it in the same way as all the rest exe files: <tt>wine notepad2</tt>
</p></quote>


</section>
<section
        title="MS Office on BSD"
        subject="Microsoft Office on FreeBSD"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-January/043934.html"
        posts="1"
>
<topic>Ports</topic>

<mention>Microsoft</mention>

<p>Tom Wickline announced something that might be of interest to BSD
users:</p>
<quote who="Tom Wickline"><p>

I've put together a little Microsoft Office on BSD howto on the Wiki,
If anyone here uses OpenBSD, NetBSD or DragonFlyBSD I would be
interested to know if you can get Office 2000 to install and run with
Wine out of the box or with my cheats.  :D  So others who read the
howto in the future will know the status of there distro.

<ul><a href="http://wiki.winehq.org/Office-BSD?action=show">
http://wiki.winehq.org/Office-BSD?action=show</a>
</ul></p></quote>


</section>
<section
        title="Debugging With Eclipse"
        subject="Winelib debugging with eclipse in fc4"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-January/043927.html"
        posts="2"
>
<topic>Debugging</topic>

<mention>Microsoft</mention>

<p>Michael Ost brought up using Eclipse a while ago and this week posted
some info regarding using it with Win32/Wine development:</p>
<quote who="Michael Ost"><p>
A while back I posted a question about how to get debugging working with
Eclipse in fedora 4. I am having some success, so if anyone else out
there is interested here's how it is set up.
</p><p>
In regedit:

<ul><li> disabled auto winedbg by renaming AeDebug 
        I changed HKEY_LOCAL_MACHINE/Software/Microsoft/Windows
        NT/Current Version/AeDebug to AeDebug-DISABLED. Without this gdb
        doesn't seem to be able to get a hold of SEGFAULTs.</li></ul>
      </p><p>  
In eclipse's Run/Debug dialog box:

<ul><li> set the c/c++ application to WINE_SRC/loader/wine-pthread
        WINE_SRC points to a compiled version of wine. For me, I got the
        wine src rpm and ran rpmbuild -bb. This is where main() is,
        which eclipse looks for at start up.</li>

<li> put your .exe.so file on the Arguments tab</li>

<li> choose the GDB Debugger on the Debugger tab</li>

<li> add WINE_SRC on the Source tab as a "Filesystem directory with
subdirectories"</li></ul>
</p><p>
The only weirdness so far is that sometimes (not always) the debugger
suspends when a new thread is created. I just resume (F8) past that. And
I am not sure what impact bypassing wine-preload's exec-shield
workaround will have on me. More on that if I learn more.
</p><p>
But I gotta say that having a functioning IDE with integrated debugging
on Linux is a major relief and, for me at least, a long time coming!
</p><p>
PS: I installed FC4, and then did yum update. eclipse is version 3.1.1
updated from the eclipse UI from the version that came with FC4.
</p></quote>

<p>Eric Pouech suggested more functionality could be achieved by changing
that technique a bit:</p>
<quote who="Eric Pouech"><p>
You could (not tested) alternatively:
<ul>
<li> set <tt>winegdb --gdb</tt> as the name for executing gdb</li>
<li> not reset the AeDebug key</li>
<li> set the executable to be the real exec (+ .so extension if run from 
the build tree)</li></ul></p><p>
You would this way:
<ul>
<li> keep all the preloader stuff, so that your memory layout is better 
(and the same than when run from command line)</li>
<li> still be compatible with the segfault stuff</li></ul></p></quote>

</section>
<section
        title="Winecfg &amp; Audio"
        subject="winecfg: Problems with audio configuration"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-January/043817.html"
        posts="22"
>
<topic>Multimedia</topic>

<mention>Michael Jung</mention>
<mention>cvs</mention>

<p>There's been some large changes behind the scenes in winecfg with
regard to configuring audio drivers.  Robert Reif has done a lot of
work in that area over the past few months.  It led Vitaliy Margolen 
to ask:</p>
<quote who="Vitaliy Margolen"><p>
I have noticed significant increase in crashes and lockups in winecfg's
audio page. Could we do something about that before the next release?
</p><p>
This makes it hard for any first timer to configure Wine. Especially
knowing that most people will have to change hardware acceleration to
"emulation" and they will not be able to do so.</p></quote>

<p>Robert gave a rundown of the current state of audio configuration
a list of known issues:</p>
<quote who="Robert Reif"><p>
I agree with you but can you be more specific?
</p><p>
There is a bug in arts itself which causes arts to crash. 
I believe this has been fixed in the latest arts libraries.
</p><p>
There can be a short hang in the esd driver if esd in not
configured properly.
</p><p>
One person reported a computer lockup with OSS but that
is probably a kernel driver bug.
</p><p>
Winecfg is now really using all compiled in audio drivers to do
hardware probing of all available hardware.  OSS with a real
OSS kernel driver (not ALSA emulated OSS) is the only really
stable setup now.  All the sound drivers need to be looked at
more closely now so they either work properly on a wide range
of hardware or fail gracefully on misconfigured or marginal setups.
</p><p>
Contrary to popular belief, sound can work very well in Wine and even
work better than on Windows but only with some hardware and
with some versions of linux.  In general, both Wine and the sound
systems that it uses have a long way to go before they will work well
for everyone out of the box.  Even Windows has problems doing sound
well for everyone out of the box.
</p></quote>

<p>That launched into a bunch of people bringing up all the problems
they've had with audio.  Apparently there's a lot of dainbramaged
audio setups out there and winecfg can potentially trip over them now
that it attempts to talk to the sound system.  Joseph Garvin ran into
one in particular that was ugly:</p>
<quote who="Joseph Garvin"><p>


 From a user's  perspective, even if arts crashes, it shouldn't be 
taking winecfg down with it. Counting on users to have correct audio 
setups across distros sounds a bit utopian. Obviously we can't fix sound 
for the users, but we can at least show an error message saying what 
failed. Also, people who have arts installed but don't run it as their 
sound mixer still crash (happens under Ubuntu too).
</p><p>
I'm running Kubuntu on my desktop and clicking the Audio tab under cvs 
gives this:
<ul><code>
ALSA lib pcm_dmix.c:746:(snd_pcm_dmix_open) The dmix plugin supports 
only playback stream<br />
wine: Unhandled page fault on write access to 0x44fec1ec at address 
0x7e6f49d1 (thread 0009), starting debugger...</code></ul></p></quote>

<p>Robert came up with a workaround:</p>
<quote who="Robert Reif"><p>
The crash occurs in libartsc.so.0 as shown above.
</p><p>
Can you try this patch:  
<ul><a href="http://bugs.winehq.org/attachment.cgi?id=1523&amp;action=view">
http://bugs.winehq.org/attachment.cgi?id=1523&amp;action=view</a></ul></p><p>

It tries to catch the exception in the arts library.  This is just a 
hack to work around a bug in the arts library.
</p></quote>

<p>Michael Jung mentioned it also solved his problem on his Debian Sarge
system.  There were some questions about Robert's hack and he explained:</p>
<quote who="Robert Reif"><p>
The line <tt>ARTS_Init();</tt>
is what's crashing!  This is the first call to the library.  Clearly an 
arts library bug.</p>
<p>
The point is that it is not crashing in winecfg or any wine code at 
all.  Adding an exception handler to catch a crash in an external 
library may work but it's a workaround for a broken external library.  
The external library needs to be fixed.
</p></quote>



</section>
<section
        title="Still Image Capture (STI)"
        subject="wine's setupapi.dll / newdev.dll ?"
        archive="http://www.winehq.com/pipermail/wine-devel/2006-January/043831.html"
        posts="14"
>
<topic>Multimedia</topic>

<mention>ReactOS</mention>
<mention>Rob Shearman</mention>

<p>Damjan Jovanovic wanted to know why Wine's setupapi.dll was so
outdated:</p>
<quote who="Damjan Jovanovic"><p>
I've been working on a still image implementation for
Wine / ReactOS for a while now, and I've only recently
realised how impossible it is in Wine at the moment...
</p><p>
Wine's SETUPAPI.DLL is not even in its infancy, it
doesn't even let you enumerate non-serial-port
devices, and doesn't load class-installers, so you
can't even install a scanner's INF file. I see that
ReactOS's implementation is better and it is under the
right (LGPL) licence; are we planning on including it
into Wine, and if so, when?
</p><p>
Wine's NEWDEV.DLL is pure stubs - so you can't even
start installing the device INF file. ReactOS's latest
SVN version of it is a little closer to what I need,
but can we include GPL code in Wine? (I've asked the
developers to relicense it under the LGPL for us, but
they haven't gotten back to me yet).
</p><p>
So what should I do - submit my STI.DLL and STI_CI.DLL
into Wine now, even though they won't be usable for a
good while - or wait for Wine to mature?
</p><p>
And does anyone know any good documentation for
writing COM out-of-process servers (that use ncalrpc
transport and have some [local] methods)?
</p></quote>

<p>Thomas Weidenmueller mentioned that ReactOS' NEWDEV.DLL was under
the LGPL and could thereby be used with Wine.  That led Rob Shearman
to ask what NEWDEV.DLL did.  Damjan described it,
<quote who="Damjan Jovanovic">

Called through rundll32.exe from umpnpmgr, it does all
the user-interface aspects of device installation. All
those screens you see in Windows, where you select a
device category (eg. Mouse), then click "Next", then
you see a list of manufacturers and their devices and
that "Have disk" button, and then you select one and
click "Next" and it carries on - all that is done by
NEWDEV.DLL.
</quote>
</p>
<p>Rob didn't think that sounded right for use with Wine.  He suggested
some how building the functionality into Winecfg.  </p>
<p>Regarding general development, Mike McCormack suggested getting the
code out there as soon as possible:</p>
<quote who="Mike McCormack"><p>

It's likely somebody will have some comments on your code or Alexandre 
will require you to change the way things are done before he accepts it 
into Wine.
</p><p>
With this in mind, you should submit what you have early to get feedback 
on it.  You should also attempt to break it up into smaller seperate, 
independent parts where possible.
</p><p>
For example, if you've changed include/sti.h, you could submit those 
changes first, as they're low risk and should be applied without any 
trouble.  Same for any other improvements to Wine that makes sense on 
their own.
</p><p>
Some people are working on a driver framework for Wine, so you might 
want to consult with them about the best way to share that framework.
</p></quote>

<p>Regardless of how Damjan proceeds, it appears a large merge from 
ReactOS' SETUPAPI.DLL will be required.  Damjan volunteered to perform
that merge along with NEWDEV.DLL.  </p>

</section></kc>
