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

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="309" date="24 Mar 2006 00:00:00 -0800" />
<intro> <p>This is the 309th issue of the Wine Weekly News publication.
Its main goal is to become long overdue for a Spring cleaning. 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="236" size="390" contrib="76" multiples="39" lastweek="34">

<person posts="26" size="32" who="dank at kegel.com (Dan Kegel)" />
<person posts="17" size="18" who="mike at codeweavers.com (Mike McCormack)" />
<person posts="16" size="33" who="segin2005 at gmail.com (Segin)" />
<person posts="10" size="30" who="winorojo at hotmail.com (Wino Rojo)" />
<person posts="10" size="9" who="julliard at winehq.org (Alexandre Julliard)" />
<person posts="9" size="17" who="rob at codeweavers.com (Robert Shearman)" />
<person posts="8" size="11" who="mike at plan99.net (Mike Hearn)" />
<person posts="8" size="5" who="dimi at lattica.com (Dimi Paun)" />
<person posts="6" size="14" who="pagefault at gmail.com (pagefault)" />
<person posts="6" size="8" who="h.davies1 at physics.ox.ac.uk (Huw D M Davies)" />
<person posts="6" size="6" who="is at rambler-co.ru (Igor Sysoev)" />
<person posts="5" size="7" who="the3dfxdude at gmail.com (Jesse Allen)" />
<person posts="4" size="10" who="leon_fraitak at mail.ru (Leon Freitag)" />
<person posts="4" size="5" who="willie at zeitgeistmedia.net (Willie Sippel)" />
<person posts="4" size="5" who="thadden at web.de (Joachim von Thadden)" />
<person posts="4" size="5" who="speeddymon at gmail.com (Tom Spear (Dustin Booker, Dustin Navea))" />
<person posts="4" size="4" who="lionel.ulmer at free.fr (Lionel Ulmer)" />
<person posts="3" size="12" who="speeddymon at gmail.com (Tom Spear)" />
<person posts="3" size="10" who="tony.lambregts at gmail.com (Tony Lambregts)" />
<person posts="3" size="8" who="fenix at club-internet.fr (Raphael)" />
<person posts="3" size="7" who="stefandoesinger at gmx.at (Stefan D&#246;singer)" />
<person posts="3" size="6" who="wine-devel at kievinfo.com (Vitaliy Margolen)" />
<person posts="3" size="3" who="martin-fuchs at gmx.net (Martin Fuchs)" />
<person posts="3" size="3" who="bmayland at leoninedev.com (Bryan Mayland)" />
<person posts="3" size="2" who="jorishuizer at planet.nl (Joris Huizer)" />
<person posts="2" size="5" who="a_villacis at palosanto.com (=?ISO-8859-1?Q?Alex_Villac=ED=ADs_Lasso?=)" />
<person posts="2" size="5" who="scott at open-vote.org (Scott Ritchie)" />
<person posts="2" size="4" who="nunoplopes at gmail.com (Nuno Lopes)" />
<person posts="4" size="5" who="meissner at suse.de (Marcus Meissner)" />
<person posts="2" size="2" who="jim at pagesmiths.com (Jim White)" />
<person posts="2" size="2" who="wes.parish at paradise.net.nz (Wesley Parish)" />
<person posts="2" size="2" who="Paul.Vriens at xs4all.nl (Paul Vriens)" />
<person posts="2" size="2" who="eric.pouech at wanadoo.fr (Eric Pouech)" />
<person posts="2" size="2" who="fgouget at free.fr (Francois Gouget)" />
<person posts="2" size="2" who="jacek at codeweavers.com (Jacek Caban)" />
<person posts="2" size="2" who="andi at rhlx01.fht-esslingen.de (Andreas Mohr)" />
<person posts="2" size="1" who="jeffl at yless4u.com.au (Jeff Latimer)" />
<person posts="2" size="1" who="dmitry at codeweavers.com (Dmitry Timoshkov)" />
<person posts="1" size="8" who="k04jg02 at kzoo.edu (Joseph Garvin)" />
<person posts="1" size="4" who="frick at sc-networks.de (Christoph Frick)" />
<person posts="1" size="4" who="pneves at telus.net (Philip V. Neves)" />
<person posts="1" size="3" who="mahanuu at opendarwin.org (Emmanuel Maillard)" />
<person posts="1" size="2" who="jan at zerebecki.de (Jan Z.)" />
<person posts="1" size="2" who="hans at it.vu.nl (Hans Leidekker)" />
<person posts="1" size="2" who="ngompa13 at gmail.com (Neal Gompa)" />
<person posts="1" size="2" who="reif at earthlink.net (Robert Reif)" />
<person posts="1" size="2" who="peltco at mail.utexas.edu (Victor Pelt)" />
<person posts="1" size="2" who="wjsqudtlr at gmail.com (Byeong-Sik Jeon)" />
<person posts="1" size="2" who="gladiac.lists at gmail.com (Christian Lachner)" />
<person posts="1" size="1" who="vinyvat at yahoo.com (Geoff Brimhall)" />
<person posts="1" size="1" who="kielpi at poczta.onet.pl (Mariusz =?iso-8859-2?q?Kie=B3pi=F1ski?=)" />
<person posts="1" size="1" who="wine.dev at web.de (Detlef Riekenberg)" />
<person posts="1" size="1" who="huw at codeweavers.com (Huw Davies)" />
<person posts="1" size="1" who="xerox_xerox2000 at yahoo.co.uk (Louis Lenders)" />
<person posts="1" size="1" who="bchang85 at ucla.edu (Brian Chang)" />
<person posts="1" size="1" who="cr2005 at u-club.de (Christoph)" />
<person posts="1" size="1" who="n0dalus at gmail.com (n0dalus)" />
<person posts="1" size="1" who="ulrich.czekalla at utoronto.ca (Ulrich Czekalla)" />
<person posts="1" size="1" who="kuba at mareimbrium.org (Kuba Ober)" />
<person posts="1" size="0" who="fred at netbil.com.br (Frederico Bertucci)" />
<person posts="1" size="0" who="molle.bestefich at gmail.com (Molle Bestefich)" />
<person posts="1" size="0" who="twickline at gmail.com (Tom Wickline)" />
<person posts="1" size="0" who="penna at bb.com.br" />
<person posts="1" size="0" who="rauschenimweltnetz at web.de" />
<person posts="1" size="0" who="brianch at seas.ucla.edu" />
<person posts="1" size="0" who="saveliyt at mail.ru (Saveliy Tretiakov)" />
<person posts="1" size="0" who="lav at etersoft.ru (Vitaly Lipatov)" />
<person posts="1" size="0" who="phil at newstar.rinet.ru (Phil Krylov)" />
<person posts="1" size="0" who="agarobr.listas at gmail.com (agaro)" />
<person posts="1" size="0" who="jelly at ktb.net (James E. Lang)" />
<person posts="1" size="0" who="zeller.benjamin at web.de (Benjamin Zeller)" />
<person posts="1" size="0" who="ivarss at sets.lv (Ivars Strazdins)" />
<person posts="1" size="0" who="Sven.Paschukat at t-online.de (Sven Paschukat)" />
<person posts="1" size="0" who="James at superbug.demon.co.uk (James Courtier-Dutton)" />

</stats>
<section 
	title="News: Wine 0.9.10"
	subject="News"
	archive="http://www.winehq.com/?announce=1.114"
	posts="1"
>
<topic>News</topic>
<mention>Slashdot</mention>
<mention>News</mention>

<p>Last Wednesday, Alexandre released Wine 0.9.10.  It followed less than
2 weeks on the heels of 0.9.9.  He noted the following changes:</p>
<quote who="Alexandre Julliard"><p>
<ul>
 <li>Improved ESD audio driver.</li>
 <li>More Web browser improvements in mshtml and wininet.</li>
 <li>Direct3D fixes and preparation for ddraw code migration.</li>
 <li>Explorer process now managing the desktop window.</li>
</ul></p></quote>

<p>As usual, you can find the latest binaries on our
<a href="http://www.winehq.com/site/download">download page.</a>
Or, grab 
<a href="http://prdownloads.sourceforge.net/wine/wine-0.9.10.tar.bz2">the 
source</a> and start compiling.  It's fun for the whole family.</p>

<p>Last week we missed reporting on a story from Slashdot.  It seems a
gamer <a href="http://games.slashdot.org/games/06/03/15/1334241.shtml">using 
World of Warcraft under Wine</a> was banned.  Although Wine was part of the
news story, it appears Wine wasn't responsible for the player getting
banned: he had keyboard macros set up and got banned for botting.  </p>


</section>
<section 
	title="Fedora Packages Available"
	subject="What happened to the Fedora packages?"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-March/045776.html"
	posts="11"
>
<topic>Packaging</topic>
<p>Wine's Red Hat and Fedora packages haven't been updated since Wine-0.9.2
a few months ago.  There were some grumblings on wine-devel this week that
something should be done about it.  Neal Gompa asked,
<quote who="Neal Gompa">
What happened to the Fedora packages? They have not been updated since 
0.9.2!!!! Right now it is at 0.9.10!!! Nearly every other Linux distro 
supported has the up to date packages!!! And why does the Red Hat packages 
site not go to the SourceForge site as it does for SUSE packages and the 
others?? I have not really had the guts to ask until now, because I thought 
that maybe there was a slump, but now, its getting annoying!! And Fedora just 
released Fedora Core 5 yesterday!!! Please tell me new packages will be ready 
soon!!! Compiling WINE always crashes my computer, so I prefer to use the 
RPMs...</quote>
</p>

<p>Normally that many exclamation points would turn into a flamefest on
a mailing list, but several people responded with solutions.
Michel Ludwig provided the first one:</p>
<quote who="Michel Ludwig"><p>
Fedora Wine packages are in Fedora Extras:
<ul>
<li><a href="http://fedoraproject.org/extras/4/i386/repodata/repoview/W.group.html">
http://fedoraproject.org/extras/4/i386/repodata/repoview/W.group.html</a></li>

<li><a href="http://fedoraproject.org/extras/5/i386/repodata/repoview/W.group.html">
http://fedoraproject.org/extras/5/i386/repodata/repoview/W.group.html</a></li>
</ul></p><p>
And even a "yum install wine" should do it (as root of course :-)).
</p></quote>

<p>Well, that's pretty simple.  Andreas Bierfert noted that Wine made it
into the x86_64 tree of Fedora Extras as well and a 
<tt>yum install wine</tt> should work.</p>

<p>Eddy Nigg of <a href="http://www.startcom.org">StartCom Linux</a>
mentioned they had Wine in RPM packages that should be compatible:</p>
<quote who="Eddy Nigg"><p>
 We just compiled the latest wine rpm for our upcoming MultiMedia Edition....no problems at all...We made only minor adjustments, to reflect the fact, that it's a StartCom build and not Fedora....
</p><p>
The files can be used of course by any compatible OS:
<ul>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-0.9.10-2.ML5.i386.rpm">
wine-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-arts-0.9.10-2.ML5.i386.rpm">
wine-arts-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-capi-0.9.10-2.ML5.i386.rpm">
wine-capi-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-cms-0.9.10-2.ML5.i386.rpm">
wine-cms-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-devel-0.9.10-2.ML5.i386.rpm">
wine-devel-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-esd-0.9.10-2.ML5.i386.rpm">
wine-esd-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-jack-0.9.10-2.ML5.i386.rpm">
wine-jack-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-ldap-0.9.10-2.ML5.i386.rpm">
wine-ldap-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-nas-0.9.10-2.ML5.i386.rpm">
wine-nas-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-tools-0.9.10-2.ML5.i386.rpm">
wine-tools-0.9.10-2.ML5.i386.rpm</a></li>
<li><a href="http://ftp.belnet.be/linux/startcom/ML-5.0.5/os/i386/StartCom/RPMS/wine-twain-0.9.10-2.ML5.i386.rpm">
wine-twain-0.9.10-2.ML5.i386.rpm</a></li>
</ul></p>
<p><i>[ed. note: list expanded from original email to be more download friendly]
</i></p></quote>

<p>That's a lot more packages than a typical Wine installation; it almost
looks like something Debian would come up with.  </p>
</section>
<section 
	title="Windows Vista &amp; Wine"
	subject="Vista compatibility page"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-March/045571.html"
	posts="2"
>
<topic>Microsoft Windows</topic>
<mention>Microsoft</mention>

<p>As we get closer to the next Windows release, there's bound to be
some questions regarding how it affects Wine.  Well, the short answer is,
it won't for quite some time.  It will be quite a few years before
software specifically targets Vista, although it's likely Microsoft
Office will lead the way.  It's only been within the last year or so
we've seen Windows 98 begin to be unsupported.  So it'll be a while before
we have to worry Vista (especially now that the release has been pushed
out until 2007.)</p>

<p>Mike Hearn shared some info this week about some of the API changes
within Vista:</p>
<quote who="Mike Hearn"><p>
Potentially this is old news, but via Raymond Chen we learn of this page:
<ul>
 <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/AppComp.asp">
 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/AppComp.asp</a></ul></p><p>

Which talks about Vistas application compatibility. Interesting points
that stand out:
<ul>
<li> They are dropping WinHelp and CHM support. You'll have to install it
 from their website for it to work   (my first thought: wtf?)</li>

<li> IsBadReadPtr/IsBadWritePtr are now "banned". I wonder what that means.
 Presumably it just means they don't use them internally for the APIs
 anymore.</li>

<li> Windows will now silently fail to modify certain protected system files
 even if you're the administrator (basically the STATUS_ACCESS_DENIED
 error is suppressed to stop installers tripping up).</li>

<li> They dropped D3D RM. Not many apps use this but I think at least my
 fathers sailing game does.</li>
</ul></p><p>
So there we have it - this appears to be the first release in which they
simply started dropping APIs.
</p></quote>

<p>That led Scott Ritchie to remark,
<quote who="Scott Ritchie">
And, therefore, the first time for which we can categorically state that
Wine will be more compatible with Windows applications than Windows
itself.</quote></p>

<p>One item I found rather amusing is the <i>User Account Control</i>.  
Vista will now have separate administrator and user accounts with almost
all programs running as a regular user.  This isn't much different than
*nix where root privileges are separate from user privileges.  While 
NT has had this for years, it hasn't been something home users have really
dealt with.  Congratulations Microsoft, you've once again reimplemented a
concept thirty years old.</p>



</section>
<section 
	title="Confusing Macros"
	subject="Prevent the use of windowsx.h with Wine source."
	archive="http://www.winehq.com/pipermail/wine-devel/2006-March/045683.html"
	posts="8"
>
<topic>Fixes</topic>
<mention>cvs</mention>

<p>Consider the following line of code:
<ul><code>
ListBox_SetItemData(hlbox, idx, pTxt);
</code></ul></p><p>
Though taken completely out of context, it appears we just have a
some ListBox control call going on.  Nothing fancy at all.  Internally,
Wine uses the Win32 API as much as possible until you get down into
the low-level stuff and this just looks similar to any other Win32 call. 
</p>
<p>However, behind the scenes <tt>ListBox_SetItemData()</tt> is simply a
macro that lives in 
<tt><a href="http://cvs.winehq.com/cvsweb/wine/include/windowsx.h?rev=1.13&amp;content-type=text/x-cvsweb-markup">include/windowsx.h</a></tt>.
It's actually defined as:
<ul><code>
#define ListBox_SetItemData(hwndCtl, index, data) 
	((int)SendMessage((hwndCtl), LB_SETITEMDATA, (WPARAM)(int)(index), (LPARAM)(DWORD)(data)))
</code></ul></p>

<p>Not so pretty, eh?  It also generates GCC warnings due to the casts, which 
is generally considered a bad thing.  Mike McCormack sent a series of patches 
last week to replace code like that.  It sparked some controversy whether his 
patches were actually better or not.  Rob Shearman fired the first shot:</p>
<quote who="Rob Shearman"><p>
Why don't we fix the macros as suggested by Francois, rather than
preventing its use? It seems like a big waste of time to have submitted
all of the patches to the files using windowsx.h when fixing the macros
is necessary for Winelib anyway.</p></quote>

<p>Mike explained his reasoning:</p>
<quote who="Mike McCormack"><p>
No, it's not a waste of time.  Having warning free Wine source code is 
far more important than any warnings that might be in 3rd party winelib 
code.
</p><p>
Francois' solution is still not perfect, as it requires use of a 
non-portable C construct.
</p></quote>
<p>Rob didn't think that was an issue and reminded everyone of Francois'
original idea:</p>
<quote who="Rob Shearman"><p>
We're trying to work around GCC warnings that probably aren't generated 
using any other compiler so using non-portable C constructs is perfectly 
fine. Here is Francois' solution again:
<ul><code>
#ifndef WINE_CAST<br />
# if __GNUC__<br />
# &#160; define WINE_CAST(ctype, val) ({ctype r=(ctype)(val);r;})<br />
# else<br />
# &#160; define WINE_CAST(ctype, val) ((ctype)(val))<br />
# endif<br />
#endif<br /><br />

#define Header_SetImageList(hwnd,himl) 
  (HIMAGELIST)SNDMSGA((hwnd),HDM_SETIMAGELIST,0,(LPARAM)himl)
    WINE_CAST(HIMAGELIST, SNDMSGA((hwnd),HDM_SETIMAGELIST,0,(LPARAM)himl))
</code></ul></p><p>

It seemed to be ignored by both you and Alexandre last time it was sent, 
and all of your patches applied anyway despite objections from several 
developers.
</p></quote>

<p>Alexandre then explained why he applied the patches:</p>
<quote who="Alexandre Julliard"><p>
I think these windowsx macros are confusing things more than helping,
especially since they don't look like macros. It's better to have
explicit SendMessage calls than some pseudo function calls, it makes
much more obvious what's going on, especially for people who try to
debug the code without being very familiar with the Windows API. The
fact that getting rid of the macros also avoids the warnings is just
icing on the cake.</p></quote>

<p>An example was cited where the new code looked pretty messy compared
to the old stuff and it was questioned whether it was really better.
Alexandre felt it was:</p>
<quote who="Alexandre Julliard"><p>
the code makes it obvious that we are sending a
message here, not calling a function (or worse, a macro disguised as a
function). In many cases that's important information, for instance
when you try to match a message trace with the code. The casts are
ugly but they are present in the macro too, so it isn't any more
typesafe, it just looks like it is.</p></quote>

<p>The changes stayed in.</p>

</section>
<section 
	title="Disabling Networking"
	subject="disallow networking flag"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-March/045715.html"
	posts="3"
>
<p>Someone wrote in suggesting Wine should have a way to disable networking
within applications:</p>
<quote who="Rauschi"><p>

I think it would be very useful to disallow an application started with wine i
to connect to the network/internet by an options flag.</p></quote>

<p>That's a valid question - a lot of apps like to "phone home" and that's
rather annoying.  Currently Wine just inherits and utilizes the underlying
networking available.  Along those lines, a solution was presented using
iptables:</p>
<quote who="n0dulas"><p>
I don't know how much of wine's source would need to be changed to
disallow all network commands, but I know that this kind of thing is
possible using iptables (particularly with the owner extension).
</p><p>
If you create a new user id (which will be the one you use to start
the application, using su or sudo), something like 'nonet', then run
the following:

<ul><code>iptables -I OUTPUT -m owner --uid-owner nonet -j REJECT --reject-with
imcp-net-unreachable</code></ul></p><p>

or something like that (I haven't tested it), it will block the
'nonet' user and any applications started as it from sending network
packets.</p></quote>


</section>
<section 
	title="Mech Commander 2 Source Available"
	subject="Another fun winelib project"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-March/045793.html"
	posts="1"
>
<mention>Microsoft</mention>

<p>
Steven Edwards let everyone know about a large chunk of Windows code that's
been let loose:</p>
<quote who="Steven Edwards"><p>
It seems Microsoft has MS-FOSSed 
<a href="http://www.strategyplanet.com/mechcommander/overview.htm">Mech 
Commander 2</a> under a shared source license
<ul>
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6d790cde-c3e5-46be-b3a5-729581269a9c&amp;DisplayLang=en"><i>[ found here ]</i></a></ul>
</p><p>
According to the appdb it does not run so maybe having the source
could better help us find out what we are missing.
</p></quote>

<p>It's not every day the source code to a large Windows program becomes
available, especially one owned by Microsoft.  It could be a fun project
to get it running under Wine.</p> 

<p>Olaf Leidinger mentioned the source to another game has been available
for a while:</p>
<quote who="Olaf Leidinger"><p>
The source of Civilization "Call to Power 2" was also released some years ago. 
Have a look at

<ul><a href="http://apolyton.net/forums/forumdisplay.php?forumid=213">
http://apolyton.net/forums/forumdisplay.php?forumid=213</a></ul></p></quote>
</section></kc>
