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

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="315" date="05 Jun 2006 00:00:00 -0800" />
<intro> <p>This is the 315th issue of the Wine Weekly News publication.
Its main goal is to upgrade. 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="386" size="1123" contrib="108" multiples="60" lastweek="41">

<person posts="34" size="35" who="julliard at winehq.org (Alexandre Julliard)" />
<person posts="31" size="39" who="dank at kegel.com (Dan Kegel)" />
<person posts="28" size="33" who="mike at plan99.net (Mike Hearn)" />
<person posts="25" size="145" who="ead1234 at hotmail.com (EA Durbin)" />
<person posts="12" size="22" who="wine.dev at web.de (Detlef Riekenberg)" />
<person posts="10" size="11" who="molle.bestefich at gmail.com (Molle Bestefich)" />
<person posts="10" size="9" who="Andrew.Talbot at talbotville.com (Andrew Talbot)" />
<person posts="8" size="13" who="jim at pagesmiths.com (Jim White)" />
<person posts="8" size="9" who="rob at codeweavers.com (Robert Shearman)" />
<person posts="8" size="9" who="mike at codeweavers.com (Mike McCormack)" />
<person posts="7" size="10" who="wine-devel at kievinfo.com (Vitaliy Margolen)" />
<person posts="7" size="5" who="hans at it.vu.nl (Hans Leidekker)" />
<person posts="6" size="16" who="patrol at sinus.cz (Pavel Troller)" />
<person posts="6" size="10" who="truiken at gmail.com (James Hawkins)" />
<person posts="6" size="9" who="saulius2 at ar.fi.lt (Saulius Krasuckas)" />
<person posts="5" size="37" who="jave27 at gmail.com (Jason Green)" />
<person posts="5" size="31" who="nlaw at mic-nucmed.co.uk (Nick Law)" />
<person posts="5" size="8" who="mahanuu at opendarwin.org (Emmanuel Maillard)" />
<person posts="5" size="7" who="eric.pouech at wanadoo.fr (Eric Pouech)" />
<person posts="5" size="6" who="jwhite at codeweavers.com (Jeremy White)" />
<person posts="4" size="22" who="stefandoesinger at gmx.at (Stefan D&#246;singer)" />
<person posts="4" size="10" who="fenix at club-internet.fr" />
<person posts="4" size="8" who="mikolaj at zalewski.pl (=?UTF-8?B?TWlrb8WCYWogWmFsZXdza2k=?=)" />
<person posts="5" size="7" who="meissner at suse.de (Marcus Meissner)" />
<person posts="4" size="6" who="mstefani at redhat.com (Michael Stefaniuc)" />
<person posts="4" size="6" who="p.beutner at gmx.net (Peter Beutner)" />
<person posts="4" size="5" who="h.davies1 at physics.ox.ac.uk (Huw Davies)" />
<person posts="4" size="5" who="nick.law at mic-nucmed.co.uk (Nick Law)" />
<person posts="4" size="5" who="dmitry at codeweavers.com (Dmitry Timoshkov)" />
<person posts="4" size="4" who="niknot at gmail.com (NikNot)" />
<person posts="3" size="21" who="fenix at club-internet.fr (Raphael)" />
<person posts="3" size="9" who="markcox at email.com (mark cox)" />
<person posts="3" size="6" who="fgouget at free.fr (Francois Gouget)" />
<person posts="3" size="5" who="brian.vincent at gmail.com (Brian Vincent)" />
<person posts="3" size="4" who="saveliyt at mail.ru (Saveliy Tretiakov)" />
<person posts="3" size="4" who="blin at gmx.net (Kai Blin)" />
<person posts="3" size="3" who="ns03ja at brocku.ca (Neil Skrypuch)" />
<person posts="2" size="18" who="ngompa13 at gmail.com (Neal Gompa)" />
<person posts="2" size="8" who="nrsc16850 at blueyonder.co.uk (Andrew Neil Ramage)" />
<person posts="2" size="6" who="speeddymon at gmail.com (Tom Booker)" />
<person posts="2" size="5" who="david.goodenough at btconnect.com David Goodenough" />
<person posts="2" size="5" who="ivg2 at cornell.edu (Ivan Gyurdiev)" />
<person posts="2" size="4" who="cmorgan at alum.wpi.edu (Chris Morgan)" />
<person posts="2" size="4" who="alex at thehandofagony.com (Alexander Nicolaysen =?iso-8859-1?q?S=F8rnes?=)" />
<person posts="2" size="3" who="dbialac at yahoo.com (David Bialac)" />
<person posts="2" size="3" who="juan_lang at yahoo.com (Juan Lang)" />
<person posts="2" size="3" who="winehacker at gmail.com (Steven Edwards)" />
<person posts="2" size="2" who="jacek at codeweavers.com (Jacek Caban)" />
<person posts="2" size="2" who="jwhite at winehq.org (Jeremy White)" />
<person posts="2" size="2" who="wowbagger at sktc.net (David D. Hagood)" />
<person posts="2" size="2" who="philcostin at hotmail.com (Phil Costin)" />
<person posts="2" size="2" who="winorojo at hotmail.com (Wino Rojo)" />
<person posts="2" size="2" who="ahziem1 at mailbolt.com (Andrew Ziem)" />
<person posts="2" size="2" who="pancha at mail.nnov.ru (Andrey Turkin)" />
<person posts="2" size="1" who="mattfinn at gmail.com (Matt Finnicum)" />
<person posts="2" size="1" who="gerald at pfeifer.com (Gerald Pfeifer)" />
<person posts="2" size="1" who="tom at dbservice.com (Tomas Carnecky)" />
<person posts="2" size="1" who="jeffl at yless4u.com.au (Jeff Latimer)" />
<person posts="2" size="1" who="adger44 at hotmail.com (Nick Burns)" />
<person posts="2" size="1" who="wine at troy.rollo.name (Troy Rollo)" />
<person posts="1" size="202" who="adebarbara at gmail.com (Andres de Barbara)" />
<person posts="1" size="135" who="pedro.lixo at netcabo.pt (Pedro Maia)" />
<person posts="1" size="6" who="alex at thehandofagony.com (=?UTF-8?B?IkFsZXhhbmRlciBOLiBTw7hybmVzIg==?=)" />
<person posts="1" size="5" who="leidola at newcon.de (Olaf Leidinger)" />
<person posts="1" size="5" who="stefan at codeweavers.com (Stefan D&#246;singer)" />
<person posts="1" size="3" who="WOLFProductions at gmx.de (KGJ)" />
<person posts="1" size="3" who="frick at sc-networks.de (Christoph Frick)" />
<person posts="1" size="2" who="xerox_xerox2000 at yahoo.co.uk (Louis. Lenders)" />
<person posts="1" size="2" who="bobl at optushome.com.au (Robert Lunnon)" />
<person posts="1" size="2" who="juris.smotrovs at sets.lv (Juris Smotrovs)" />
<person posts="1" size="2" who="ulrich.czekalla at utoronto.ca (Ulrich Czekalla)" />
<person posts="1" size="2" who="uli-do at gmx.at (Ulrich Dobramysl)" />
<person posts="1" size="2" who="wes.parish at paradise.net.nz (Wesley Parish)" />
<person posts="1" size="2" who="wine at shadovald.dyndns.org (Aneurin Price)" />
<person posts="1" size="2" who="lsmith at ci.concord.ca.us (Smith, Leo)" />
<person posts="1" size="1" who="lionel.ulmer at free.fr (Lionel Ulmer)" />
<person posts="1" size="1" who="infyquest at gmail.com (Vijay Kiran Kamuju)" />
<person posts="1" size="1" who="n0dalus at gmail.com (n0dalus)" />
<person posts="1" size="1" who="a_villacis at palosanto.com (=?ISO-8859-1?Q?Alex_Villac=ED=ADs_Lasso?=)" />
<person posts="1" size="1" who="pgr at arcelectronicsinc.com (paul)" />
<person posts="1" size="1" who="jakob at vmlinux.org (Jakob Eriksson)" />
<person posts="1" size="1" who="billmedland at mercuryspeed.com (Bill Medland)" />
<person posts="1" size="1" who="katios at nolabel.net (Sylvain OBEGI)" />
<person posts="1" size="1" who="frank.richter at gmail.com (Frank Richter)" />
<person posts="1" size="1" who="roli8200 at yahoo.de (Roland Kaeser)" />
<person posts="1" size="1" who="anarkhos at vfemail.net" />
<person posts="1" size="1" who="wferi at tba.elte.hu (Ferenc Wagner)" />
<person posts="1" size="1" who="kumbayo84 at arcor.de (Peter Oberndorfer)" />
<person posts="1" size="1" who="wine at electrozaur.com (Boaz Harrosh)" />
<person posts="1" size="1" who="don at dondwiggins.net (Don Dwiggins)" />
<person posts="1" size="1" who="dj015 at yahoo.com (Damjan Jovanovic)" />
<person posts="1" size="1" who="cihan at uq.edu.au (Cihan Altinay)" />
<person posts="1" size="1" who="scott at open-vote.org (Scott Ritchie)" />
<person posts="1" size="1" who="tim.kosse at gmx.de (Tim Kosse)" />
<person posts="1" size="1" who="paulc at voip.null.ro (Paul Chitescu)" />
<person posts="1" size="0" who="bang.junyoung at gmail.com (Bang Jun-Young)" />
<person posts="1" size="0" who="jorishuizer at planet.nl (Joris Huizer)" />
<person posts="1" size="0" who="n0dalus+wine at gmail.com (n0dalus)" />
<person posts="1" size="0" who="the3dfxdude at gmail.com (Jesse Allen)" />
<person posts="1" size="0" who="markm at tyrell.com (Mark F. Murphy)" />
<person posts="1" size="0" who="lav at etersoft.ru (Vitaly Lipatov)" />
<person posts="1" size="0" who="chmorgan at gmail.com (Chris Morgan)" />
<person posts="1" size="0" who="josh_root at users.sourceforge.net (Joshua Root)" />
<person posts="1" size="0" who="bon at elektron.ikp.physik.tu-darmstadt.de (Uwe Bonnes)" />
<person posts="1" size="0" who="hverbeet at gmail.com (H. Verbeet)" />
<person posts="1" size="0" who="agarobr.listas at gmail.com (Augusto Arcoverde da Rocha)" />

</stats>
<section 
	title="News: Summer of Code, Picasa"
	subject="News"
	archive="http://code.google.com/soc/wine/about.html"
	posts="2"
>
<topic>News</topic>
<mention>CodeWeavers</mention>
<mention>James Hawkins</mention>
<mention>Slashdot</mention>
<mention>Juan Lang</mention>
<mention>Mikolaj Zalewski</mention>
<mention>Kai Blin</mention>
<mention>News</mention>
<mention>Marcus Meissner</mention>
<mention>Mike Hearn</mention>
<mention>Ulrich Czekalla</mention>
<mention>Eric Pouech</mention>

<p>The big news this week once again focuses on Google.  They've selected
630 project for their Summer of Code program.  Wine 
<a href="http://www.internetnews.com/dev-news/article.php/3609496">was 
mentioned</a> on internetnews.com for receiving 7 projects.  If you head over
to Google's site, you'll see there's actually 6 and you can see
<a href="http://code.google.com/soc/wine/about.html">what those projects 
are:</a></p>
<quote who="Google"><p>
<ul>
<li>Implementing Wine Oleview application
    (<a href="http://wiki.winehq.org/OleView">more info</a>)
	<ul><li>by Piotr Caban, mentored by James Hawkins</li></ul></li>
<li>Improve riched20
    (<a href="http://wiki.winehq.org/MatthewFinnicum">more info</a>)
	<ul><li>by Matthew Finnicum, mentored by Mike Hearn</li></ul></li>
<li>Clam AntiVirus integration in Wine
    (<a href="http://www.christoph-probst.com/soc2006/wine/proposal.txt">more
    info</a>)
	<ul><li>by Christoph Probst, mentored by Marcus Meissner</li></ul></li>
<li>Improve mswsock.dll
    (<a href="http://wiki.winehq.org/%c5%81ukaszChr%c3%b3st">more info</a>)
	<ul><li>by tukasz Chrost, mentored by Eric Pouech</li></ul></li>
<li>Shell integration (covered below)
	<ul><li>by Mikolaj Zalewski, mentored by Ulrich Czekalla</li></ul></li>
<li>NTLM signing/sealing using GENSEC
    (<a href="http://wiki.winehq.org/KaiBlin">more info</a>
	<ul><li>by Kai Blin, mentored by Juan Lang</li></ul></li>
</ul></p></quote>

<p>So there ya have it.  Those info links mostly go to the
<a href="http://wiki.winehq.org/">Wine Wiki</a> where most of the students
have posted info about what they're working on.</p>

<p>
The Google Picasa port made 
<a href="http://www.sda-india.com/sda/news/psecom,id,9063,nodeid,4,_language,India.html">worldwide</a> 
<a href="http://www.itnews.com.au/newsstory.aspx?CIaNID=33074&amp;src=site-marq">headlines</a> 
last week. There were a 
<a href="http://www.apcstart.com/site/admin/2006/05/168/picasa-for-linux-begs-a-few-questions">few</a> 
<a href="http://arstechnica.com/news.ars/post/20060526-6931.html">naysayers</a>
complaining about Wine being buggy, Wine sucking, blah, blah.  For the most
part, users were quite happy Google decided to bring their application to
Linux, even if it meant using Wine.  The fact that Google supported the
Wine project by hiring developers at CodeWeavers and contributed patches
back to Wine wasn't overlooked in the least.  Most major news stories picked
up on that.
The local St. Paul, Minnesota newspaper also picked up the story and wrote an 
article 
<a href="http://www.twincities.com/mld/pioneerpress/business/14681842.htm">about
CodeWeavers</a> and their work for Google. By far the 
<a href="http://www.linuxtoday.com/infrastructure/2006052601826OPSWLL">best 
editorial</a> I read on the subject was written by Brian Proffitt of
Linux Today.  
</p>
<p> I found a nice blog 
<a href="http://linuxhelp.blogspot.com/2006/05/first-impressions-of-picasa-googles.html">showing 
screenshots</a> of Picasa.  It looks, well, like Picasa.  You'll notice the
integration with the taskbar menu.  Jeremy White of CodeWeavers
<a href="http://slashdot.org/comments.pl?sid=186741&amp;cid=15408909">replied</a>
on Slashdot about the port:</p>
<quote who="Jeremy White">
<p>the Picasa for Linux product is far more tailored for Linux than that 
[<i>ed note: the native Windows version</i>] would be; it doesn't give you 
drive letters, it knows how to integrate into your file system, it knows how to 
connect to your desktop environment; it has a whole raft of other Linux 
specific features. I think it's even reasonable to hope that as it matures, it 
will become even more fully tailored to Linux.
</p><p>
But the bottom line is simple - try it. You may be surprised at how handy it 
is. And today you have one more application on Linux than you had yesterday. 
I'm not sure how anyone can be upset by that. </p></quote>

<p>Finally, 
<a href="http://www.winehq.com/?issue=314#Picasa%20Port%20to%20Linux">last 
week</a> I alluded that Google Earth would be coming to Linux.  I assumed
that involved another Wine effort.  Apparently I may have been mistaken
since a post on LWN.net alluded to the fact that it may not be Wine based.
</p>

</section>
<section 
	title="MacOS X Audio &amp; Video Drivers"
	subject="Mac OS X Audio driver"
	archive="http://www.winehq.com/pipermail/wine-patches/2006-May/026857.html"
	posts="8"
>
<topic>Multimedia</topic>
<mention>Darwine</mention>

<p>Over the past week there's been some exciting developments for
Wine on MacOS.  First, a new audio driver was committed based on
work by Emmanuel Maillard and Ken Thomases.  The new CoreAudio
code lives in dlls/winmm/winecoreaudio and seems based on the JACK
audio driver.  The 
<a href="http://www.winehq.org/pipermail/wine-patches/attachments/20060524/c79f6389/winecoreaudiodrv-0001.obj">patch</a> 
was quite large and Alexandre asked that it be broken into a couple of
different chunks.  Shortly after that was done the code was committed.</p>

<p>Then a few days ago Emmanuel mentioned he had taken up
work on the Quartz display driver for Wine.  We've discussed that topic
in the past.  It seems X apps on MacOS X aren't integrated very well
into the desktop and a native Quartz driver would be much better suited
for using Wine on MacOS.  Emmanuel wrote:</p>
<quote who="Emmanuel Maillard"><p>
Quartz driver is up to date on Darwine CVS.
</p><p>
Winemine is playable on both PPC and x86 but it looks fine only on
PPC, the x86 driver suffer strange rendering bugs.
</p><p>
See wiki for building the driver: 
<a href="http://wiki.opendarwin.org/index.php/Darwine:quartzdrv">
http://wiki.opendarwin.org/index.php/Darwine:quartzdrv</a></p><p>
I will update wiki soon with issues and todo for Quartz driver.
</p></quote>

<p>Emmanuel also provided a 
<a href="http://www.winehq.org/pipermail/wine-devel/attachments/20060531/59c26232/winemine_ppc.png">screenshot</a>
of winemine running.</p>

</section>
<section 
	title="1.0 Tasks"
	subject="Wine 1.0 Tasks"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-May/047906.html"
	posts="30"
>
<topic>Project Management</topic>
<mention>Dan Kegel</mention>

<p>Dan Kegel wanted to know what needed to be done for Wine to hit 1.0.
Up until we hit beta status we maintained a nice list of everything we
wanted to get done.  For the most part we completed everything.  Now it's
time to think about the path toward a release.  Alexandre has said in the
past he's getting pickier about the patches going in.  The new release
cycle helps provide a finer grained testing point for regressions.  Overall
though, what should we be getting done?  Dan provided a link to Bugzilla
<a href="http://bugs.winehq.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;product=Wine&amp;target_milestone=1.0.0&amp;order=bugs.bug_severity">showing bugs</a> 
currently slated to be fixed before 1.0.  Raphael Junqueira had some ideas:</p>
<quote who="Raphael Junqueira"><p>
But i think we must fix users most hated bugs as:
<ul>
 <li> dsound deadlocks/craps</li>
 <li> openGL problems (multi contexts, fb/visual configs)</li>
 <li> lotus problems</li></ul>
</p><p>
Note: it would be interesting to add user votes to wine-bugs (ala kde) to
better see user needs.
</p></quote>

<p>Mike Hearn thought window management was a big issue,
<quote who="Mike Hearn">

IMHO we should really nail the window management problems. The WM rewrite
was supposed to fix our woes with unmanaged windows and fullscreening for
ever but it hasn't happened yet. </quote></p>

<p>Along those lines, Dan felt the OpenGL child window bug,
<a href="http://bugs.winehq.org/show_bug.cgi?id=2398">#2398</a>, was
critical but wasn't sure it would get fixed.  Over the past week or so
there's been renewed interest in getting that bug fixed, but apparently
no one capable of fixing it has time right now.  Discussion of that bug
consumed a lot of the rest of the thread.  </p>

<p>In the end, Dan <a href="http://wiki.winehq.org/DanKegel">provided</a>
a list of things he'd like to see fixed.  It included getting Windows
developers to take Wine seriously by getting IDE's and debuggers working well.
He also listed some broken installers that needed to get working.
</p>

<p>In general, it there didn't seem to be much of a consensus on what
tasks were needed for 1.0.  Discussion has occurred off and on about a
DIB engine, but it seemed to be generally acknowledged that task wasn't
necessary for 1.0.   Lastly, although Alexandre didn't weigh in on the 
discussion, he does maintain a 
<a href="http://wiki.winehq.org/AlexandreJulliard">list</a>
of things he wants to get working.  </p>


</section>
<section 
	title="How Are We Doing?"
	subject="How are we doing?"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-May/047904.html"
	posts="63"
>
<topic>Project Management</topic>
<mention>Michael Stefaniuc</mention>
<mention>Microsoft</mention>
<mention>Tony Lambregts</mention>
<mention>cvs</mention>

<p>Along similar lines as Wine 1.0, Mike Hearn sent an email to gather
feedback about how we're doing as a project:</p>
<quote who="Mike Hearn"><p>
As the Summer Of Code begins and new blood joins us all at once,
I thought it'd be a good time to open a discussion on how we are doing as
a project.
</p><p>
Questions to consider:
<ul>
 <li> Is Wine improving or is the regression rate matching the improvement
  rate?</li>

 <li> Are we producing a quality product, from the perspective of
  non-technical end users?   (I appreciate this isn't a goal for everyone)</li>

 <li> Are we turning away potential developers for any reason? Could we do
  more to attract new hackers?</li>

 <li> Are the projects fundamental processes serving us well?</li>

 <li> Any other thoughts for improvement?</li></ul>
</p><p>
In case it's not clear, I'm talking about the project as a community
adventure here rather than technical aspects of the codebase.
</p><p>
>From my own perspective I think Wine is doing better than ever before.
What prompted this email is the realisation that in the past few days I've
used Wine nearly every day to run a variety of apps - from games to
utilities - and it's succeeded with every single one. Not always
perfect but always good enough. I am no longer surprised when Wine runs an
app correctly as I was when I first came to the project, these days I
nearly take it for granted. Though this may be due to having developed a
feel for what will work and what won't :)
</p><p>
So clearly we're doing something right ... I also think we are doing OK
with attracting and keeping new hackers. The influx of new Direct3D talent
lately is fabulous for instance. The experiences of our SoC students will
be useful in assessing how to improve the learning curve and we need to
tap this resource better than we did last year.
</p><p>
In other words, I think we're doing pretty well. I feel more
positive about the project that I have done for a long time. It seems like
as Win32 stagnated and slowed down over the past 6 years we've been able
to turn the tide and add our own code faster than Microsoft can, which is
the tipping point.
</p><p>
So areas for improvement?
<ul>
 <li> We seem to be doing very well in recruiting hackers who work on one
  particular DLL or area and solidly improve that, but a less well
  when it comes to 'general purpose' hackers who just take random apps
  and make them work.
 <br /><br />
  It might just be that I'm out of touch but I don't see as much
  patch traffic these days along the lines of "This patch set fixes
  XYZ app" followed by 6 patches to 6 different DLLs.
  </li>

 <li> No clear roadmap to 1.0 - for 0.9 we had Dimis TODO list and it was
  quite satisfying to see them go green as tasks were completed. I guess
  we have a 1.0 TODO list too but I never see any updates to it :(</li>

 <li> Integration with other projects is still a weak area. Desktop/kernel/X
  integration could all use some work. I know I know, I'm guilty in
  not doing my bit here too .... maybe I will find my hack-fu returning
  sometime soon and work on the fullscreen patch again :)</li>

 <li> App specific patches. Well I don't expect policy here to change anytime
  soon but extreme cases like the WoW VMA layout problem which affects
  tons of users do highlight the issue.</li>

 <li> A few random things I already got into arguments about (forums, libwine
  api etc) :)</li>
</ul></p><p>
What do you guys think?
</p></quote>

<p>This thread brought forth a lot more comments than the discussion
about Wine 1.0.  Raphael Junqueira responded with some general comments
about a few of those areas:</p>
<quote who="Raphael Junqueira"><p>
Well, winecfg need more improvements to be really usable (ie. understandable)
by a non-technical end user.
We need to improve the Wine base installation: users should not have to
always use winecfg to configure wine; many things must be detected at
installation/runtime.
</p><p>
We must work on (free/gnome/kde) desktop integration too.
</p><p>
For developers, i think we miss (in wiki):
<ul>
<li> Wine developer beginning HowTo</li>
<li> Wine committing process (explaining why AJ never respond when patches are
refused :p )</li>
<li> simili-doxygen APIs (to find what is implemented/how/where some docs, and
status)</li></ul>
</p></quote>

<p>From the there discussion branched out into what we could be doing to
better help developers.  There's an evil misconception that pops up from
time to time that Wine developers are rude and not easy to get along with.
The reality is, most of the rude comments on wine-devel come from folks
who aren't developers but happen to be subscribed to the list.  There was
some discussion about that, but no concrete plan to tackle it.  </p>

<p>One interesting turn the discussion took involved how developers seem
to be treated differently.  If you're familiar at all with Linux kernel
development, you know that Linus requires a lot of patches to be filtered
through other "maintainers" before getting to him.  Wine's not big enough
to necessitate procedures like that, but it does seem some developers
can get away with submitting much larger patches than others.  Alexandre
explained part of the process he goes through for committing patches:</p>
<quote who="Alexandre Julliard"><p>

There's no such thing as special developer vs. other developer, it's
more like a linear scale based on trust: the more I trust a developer
the easiest it is for him to get his patches committed. The only way
to earn trust points is by submitting consistently good patches.
</p><p>
That doesn't mean you can't get stuff in if you aren't trusted, but it
means it will require extra scrutiny, which is why it's very important
at the beginning to send small patches that are easy to review. Once
you have earned enough trust you can get away with being a bit more
sloppy (but not too much, or you'll lose trust points again ;-)
</p></quote>

<p>There was an idea of developing a metric to measure how long it takes
from the time a patch is submitted until it's committed.  Alexandre 
thought one way of doing it would be,
<quote who="Alexandre Julliard">
The commit logs contain the time of the change and the time of the
commit, so you could use that to build a top-10 of the developers with
the best patch-to-commit times ;-)
</quote>  Michael Stefaniuc pointed out there might be a problem with
doing that since the time of the change could be a lot older than the
time the developer submitted the patch.  Mike Hearn confirmed even
developers with a good track record get patches rejected:</p>
<quote who="Mike Hearn"><p>
Heh :) Bear in mind that it depends a lot on the patch and what kind
of work you're doing. Getting some clearly correct typo fixes in for
an obscure DLL is going to be a lot easier even for 'untrusted'
developers than, say, implementing SetThreadPriority which touches the
core of Wine in a sensitive area and is somewhat controversial.
</p><p>
There's no special privilege for CW employees or SoC students, though
we appreciate it may look that way at first glance. I'm a CW employee
on and off (more off than on lately due to university) and I get
patches rejected all the time &lt;chuckle&gt; :)</p></quote>

<p>The end of thread centered on commenting code.  Wine is known for
not being heavily commented and there's a few reasons for that.  Some
of the long-term developers seem to have an aversion to comments because
they think the code itself should explain what's going on.  Others think
there's no need to comment what the code does since MSDN often explains
the necessary details.  Another argument is that there's no way to
define "good" comments versus "poor" ones.  </p><p>
However, over and over and over again we saw comments from people
interested in getting involved with Wine development state how difficult it
is to understand some of the intricacies of what a piece of code does.  
Jeremy White succinctly summarized what people really wanted to see
commented,
<quote who="Jeremy White">
I think David hit the nail on the head.  I don't need a
comment to tell me what the code is doing, I agree that
the code itself is more clear.  I need a comment to tell me
why the @#$ you decided to do that.</quote></p>
<p>Jeremy also mentioned he'd never seen Alexandre strip a comment out
or reject a patch because of the comments.  Someone suggested comments
should be added when a particular bug is fixed and Alexandre explained
the context of how that could be done:</p>
<quote who="Alexandre Julliard"><p>
I'm not opposed to having bug number in the comments, but it has to be
in addition to a proper explanation; the log must be understandable on
its own without making reference to an external database.</p></quote>

<p>Finally, here's some random comments culled from the rest of the
thread.  First, from James Hawkins:</p>
<quote who="James Hawkins"><p>
A bigger issue is how we should deal with
regressions.  Most of the bug reports we get are of the type, "This
app used to work, now it doesn't..." and we have to ask the reporter
to run a regression test.  I know these tests are crucial, but they
take a long time and many users don't bother going through that
process.  Even more integration with the AppDB might help with this
process.  Ideally we would like to inform the user of a "Last known
working release", which would be the Wine release that worked with
this app.  Looking at a sample AppDB entry, I guess this would be the
Testing Results->Wine Version->Runs? field.  If the 'regression'
keyword is provided for a bug, and the bug is linked with an app in
the AppDB, we could provide the "Last known working release" info to
the tester, so they know where to start testing.</p></quote>

<p>Kai Blin:</p>
<quote who="Kai Blin"><p>
The effort to figure out how to do the patches correctly
is pretty high, and you need a lot of frustration tolerance at first.
I'm not sure if I would have stayed around if it wasn't for Summer of
Code 2005. Once you get past this, and figured out how to write your
code so Alexandre will commit it, development is quite fun. I also agree
that the whole process improves code quality. It still is hard in to get
started. Unfortunately I don't really know how this can be changed.
</p><p>
I think that the effort by some of the more experienced coders to
provide feedback to patches already helps a lot.
</p></quote>

<p>Detlef Riekenberg:</p>
<quote who="Detlef Riekenberg"><p>
It was very hard to get my first patch accepted:
I needed to learn, how Windows works in this area, how CVS works and
what was expected from a fine patch. I read a lot of Documentation
(wine-dev-guide, wine-wiki.org, winehq.org, MSDN and the Wine-source),
got a lot of hints on wine-devel and finally my first patch was
accepted. (Great to be a member of such a large project.)
</p><p>
EnumMonitors (Test + Implementation) needed a long Time:
<li> I created, tested and sent a patch</li>
<li> No commit, and no comments for my patch for almost two weeks</li>
<li> I asked for comments and got one hint from one person.</li>
<li> Updating, testing and resending the Patch</li>
<li> next week waiting again without a reaction.</li>
<li> Asking for comments; one hint from a different person</li>
<li> loop again &gt; 5 times</li>
I was frustrated that it needed so many loops from the first patch for the
tests up to the commit of the last patch for the implementation due to
the fact, that I got only one hint after every Update. One hint was
changing NO_ERROR to ERROR_SUCCESS. Another example was to split the
ANSI-Implementation and the UNICODE-Implementation (together ~11kb) into
two Patches.</p></quote>

<p>Misc comment:</p>
<quote who="KGJ"><p>
The AppDB is a great idea, but why is it so poorly integrated in the
main page? The same question goes to the Bugtracker and the Wiki where
the situation is even worse. On most web pages you have a navigation bar
which remains the same as long as you are on the same page. But if you
enter the AppDB or the Bugtracker you have the feeling that you are on
an entirely new page which only have a link back to the main page and a
similar design. If you enter one of the wiki pages the situation is even
worse because it does not even have a link to the main page in the
navigation bar. Is this a design decision or is it just the lack of time
which prevents IMHO proper integration?</p></quote>

<p>(The short answer is: yes.  Tony Lambregts mentioned it was something
he'd thought of doing for a while but other things were a higher priority.)</p>

<p>So how are we doing?  Well, overall it seems we're probably not doing
too bad.  There seems to be pretty good communication and the tools used
for development (git, cvs, etc) seem to working for everyone.  The biggest
conclusion that could be drawn is there's a learning curve for coming
up to speed with development.  Perhaps some documentation could help with
that, but you still need to take time to figure out the code.</p> 

</section>
<section 
	title="WoW - Breakage"
	subject="World of Warcraft (WoW) patch/more address space layout stuff"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-May/047764.html"
	posts="12"
>
<topic>Fixes</topic>
<p>If you read the 
<a href="http://appdb.winehq.org/appview.php?versionId=4031">World of Warcraft 
AppDB</a> entry, you'll notice it's a very nicely maintained app.  It
describes exactly how to get the game working with Wine.  You'll also
notice the instructions are a complete pain in the ass because they
involve applying a custom patch to Wine.  Nick Law brought it up on 
wine-devel last week:</p>
<quote who="Nick Law"><p>
Opening up the debate again on the World of Warcraft ( WoW ) memory patch.
</p><p>
Some facts about WoW that may explain why the AppDB page is pretty 
active and the wow patch for wine 0.9.12 was downloaded over 1000 times 
from the Appdb page during a 4 week period.... Wow has approximately 6 
million players that each pay about  $90/year for the priviledge of 
connecting to a WoW server (Realm). Assuming this figure is broadly 
correct, Blizzard therefore receives $500,000,000/year just from this 
game in subscriptions. ( This doesn't include the cost of buying the 
game in the first place ). Perhaps Blizzard would like to employee a 
programmer fulltime just to work on the wine project to help make Wow 
run 100% ?.
</p><p>
Anyway with the popularity of this game in mind, you can see why there 
is a lot of interest in making this patch a thing of the past, so the 
thousands of gamers who play this game on wine don't have to keep 
applying a special patch. I would be grateful for any suggestions as to 
how we could incorporate this patch so that it is no longer necessary. I 
know we can't simply include the patch, but there must be some way 
around this problem ?
</p></quote>

<p>Well, the problem at hand is actually a problem with WoW - it's broken,
perhaps intentionally, with regard to how it handles memory addressing.
In fact, it's sort of a fluke it works in Windows right now and there's 
a good chance it won't when Vista comes out in a few months.  There's a
strong policy within Wine to not accept any patches that are application
specific and instead try as much as possible to have bug-for-bug 
compatibility with Windows.  (Other Wine-based products, such as 
CrossOver Office, don't necessarily follow that policy and as a result you'll 
often find subtle things that work better.) Mike Hearn replied about the 
problem:</p>
<quote who="Mike Hearn"><p>

This has been discussed previously. It looks likely that to fix this so
WoW works out of the box requires extensive and intricate changes to the
core of either Wine or the kernel to provide a more accurate match to the
NT memory layout model.
</p><p>
I rate the chances of this happening anytime soon as being low. It's not
that people don't care, it's more that there are no developers with the
time/motivation/skill hanging around who want to work on it, it seems.
</p><p>
It'd be better to get the bug in WoW fixed, whatever that is. I do not
know how you might contact Blizzard.
</p><p>
Alternatively there could be (should be!) pre-built versions of Wine that
run for all users customized for WoW specifically.
</p></quote>

<p>It was then mentioned that Cedega works around the bug with a similar
memory layout hack.  Oddly enough, the fact this problem snuck in during
a version upgrade shows that WoW doesn't depend on it to function and
was probably just a bug that crept in.  Tim Kosse replied with some info
regarding contacting developers at Blizzard about the issue.</p>


</section>
<section 
	title="Updated Fedora Packages"
	subject="Release Information on Fedora Extras!"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-May/047865.html"
	posts="2"
>
<topic>Build Process</topic>
<mention>WineHQ</mention>

<p>Currently the Wine packages on WineHQ for Fedora are quite out of date.
In the news announcements I've mentioned that a newer version is available
via Fedora Extras.  Apparently this repository is being updated as newer
versions become available.  Neal Gompa explained:</p>
<quote who="Neal Gompa"><p>
I have noticed that since my post about how Fedora packages are inaccessible, 
you have added the string "Currently official Fedora packages lag behind, but 
you can get Wine-0.9.10 by running yum install wine from Fedora Extras." Well, 
that is not totally correct. Usually about a week after Wine Project releases a 
version, Fedora Extras updates to the newest version! Currently, it is at 
Wine-0.9.13. I believe it will be a week before Fedora Extras releases 
Wine-0.9.14 packages... I will reply when Wine packages are updated you that 
an accurate guage is made of the lag...
</p><p>
Note: For Wine-0.9.13, and it only took 3 days after Wine official 
release to release it on Fedora Extras. It is a good idea to assume anywhere 
from 3-5 days for Wine to be updated in Fedora Extras.
</p><p>
The links below are to the webview of Fedora Extras:
</p><p>
<u>Repositories for i386</u></p><p>
<ul>
<li>Fedora Extras for Fedora Core 5:
<a href="http://download.fedora.redhat.com/pub/fedora/linux/extras/5/i386/repodata/repoview/W.group.html">
http://download.fedora.redhat.com/pub/fedora/linux/extras/5/i386/repodata/repoview/W.group.html</a></li>
<li>Fedora Extras for Fedora Core 4: 
<a href="http://download.fedora.redhat.com/pub/fedora/linux/extras/4/i386/repodata/repoview/W.group.html">
http://download.fedora.redhat.com/pub/fedora/linux/extras/4/i386/repodata/repoview/W.group.html</a></li>
<li>Fedora Extras for Fedora Core 3: 
<a href="http://download.fedora.redhat.com/pub/fedora/linux/extras/3/i386/repodata/repoview/W.group.html">
http://download.fedora.redhat.com/pub/fedora/linux/extras/3/i386/repodata/repoview/W.group.html</a></li>
</ul></p><p>

<u>Repositories for x86_64</u></p><p>
<ul>
<li>Fedora Extras for Fedora Core 5: 
<a href="http://download.fedora.redhat.com/pub/fedora/linux/extras/5/x86_64/repodata/repoview/W.group.html">
http://download.fedora.redhat.com/pub/fedora/linux/extras/5/x86_64/repodata/repoview/W.group.html</a></li>
<li>Fedora Extras for Fedora Core 4: 
<a href="http://download.fedora.redhat.com/pub/fedora/linux/extras/4/x86_64/repodata/repoview/W.group.html">
http://download.fedora.redhat.com/pub/fedora/linux/extras/4/x86_64/repodata/repoview/W.group.html</a></li>
<li>Fedora Extras for Fedora Core 3: 
<a href="http://download.fedora.redhat.com/pub/fedora/linux/extras/3/x86_64/repodata/repoview/W.group.html">
http://download.fedora.redhat.com/pub/fedora/linux/extras/3/x86_64/repodata/repoview/W.group.html</a></li>
</ul>
</p><p>
Note that it is viewing the alphabet group of "W". Scroll down a bit and you 
will see Wine packages. Please keep download form updated, you make people 
believe that Wine is not being updated by Fedora Extras, when in fact it is...
</p></quote>



</section>
<section 
	title="Shell Integration"
	subject="Shell integration idea"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-June/048050.html"
	posts="9"
>
<topic>Integration</topic>
<mention>Microsoft</mention>

<p>Mikolaj Zalewski's Summer of Code project will be improving Wine's
integration with the Linux desktop.  He wrote to wine-devel asking
for tips on it:</p>
<quote who="Mikolaj Zalewski"><p>
   As a SoC project I'll try to improve the integration of wine with the
Unix shells. My first step will be to implement the freedesktop.org
Trash. I've written some code that doesn't add any new features but
shows how I want to add it. I'd like to know if this is a good design?
</p><p>
 The main idea is not to hard-code one implementation of things like
the Trash into shell32 - not everything is standardized by the
freedesktop and even if it would this might not work on other systems
like MacOS X. We should allow for many implementations. The correct one
is loaded depending on a registry settings (so that a winecfg entry can
be added). My implementation uses COM objects as it's standard dlls
provides support for such tasks. Currently there is one interface
(IWineShellIntegration) that acts as a factory for specialized objects.
That could also be implemented using COM Aggregation - when we do that
we could use QueryInterface instead of GetIntegrationObejct.
</p><p>
 Some COM objects can run in the address space of the calling process -
e.g. the trash can be implemented like that. For others it would be a
waist of resources (e.g. there is no need for every process to watch is
the file associations have changed) - it's enough to load them only
once. The explorer seems to be a good candidate to create such objects.
 In the attached patch there is one specialized interface - the
IWineTrash. The SHELL_DeleteFile[AW] is patched to use it - it shows a
different icon if the file can be trashed (these are not the correct
icons as wine's shell32 uses a message box instead of a special dialog)
and calls the trash method then. Currently there is only one built-in
trash that can't trash anything. (note that SHELL_DeleteFile is called
in the folders that are decendents of My Computer. If choose delete on a
file that is a decendent of the '/', it will be deleted without a warning).
</p></quote>

<p>Ulrich Czekalla replied first:</p>
<quote who="Ulrich Czekalla"><p>
I think the general approach is good.
</p><p>
The way you handle the built in implementation seems odd to me. I think
setting the registry key to make the freedesktop.org version as the default
would be good enough.
</p><p>
I'm not convinced we need IWineShellIntegration. I think it would be
cleaner to directly create an IWineTrash object.
</p></quote>

<p>Regarding the last point, Mikolaj explained the reasoning behind it:</p>
<quote who="Mikolaj Zalewski"><p>

If we integrate more closely with the desktop environments we may need
to have one central object that will know that e.g. KDE 3.4 uses the
freedesktop.org Trash but KDE 3.3 has it's own Trash implementation. If
we read the Trash CLSID from the registry such an implementation would
require creating proxy classes or hacks in the class factory. Also by
storing only one CLSID we don't have a problem which implementation to
use if a new kind of objects is introduced.
</p><p>
Of course when we use COM aggregation instead of a factory pattern we
will have all the interfaces visible under one CLSID so we will be able
to construct a IWineTrash directly with the main object hidden behind
the scene.</p></quote>

<p>Alexandre wasn't convinced a COM-based approach was necessary,
<quote who="Alexandre Julliard">
I think using COM for that sort of thing is overkill. Besides, you
most likely want to put all of that in the explorer process, and
communicate with shell32 using the same protocol that Microsoft is
using, like we do already for the system tray.
</quote></p>

<p>There was a little more discussion about using COM and it seems
like in the end the idea was abandoned in favor of simpler mechanism.
</p>
</section>
<section 
	title="RSS Feed"
	subject="Here is an RSS feed for front page of www.winehq.com"
	archive="http://www.winehq.com/pipermail/wine-devel/2006-March/046041.html"
	posts="1"
>
<topic>WineHQ</topic>
<mention>WineHQ</mention>
<mention>Jeremy Newman</mention>
<mention>cvs</mention>

<p>A few months ago Dan Schwarz mentioned he created an RSS feed for 
WineHQ:</p>
<quote who="Dan Schwarz"><p>
I've long wondered why winehq.com does not provide an RSS feed.  I've
created one using the feed43.com sitescraping tool.  Works well and it
should be very low impact to your webserver (it only hits the URL at
most once every 6 hours and caches the result for subsequent queries)
</p><p>
Feel free to post this RSS link on the winehq homepage.
</p><p>
<a href="http://feed43.com/winehq.xml">
http://feed43.com/winehq.xml</a>
</p></quote>

<p>It would be nice if Wine had it's own RSS feed produced from the
individual <a href="http://cvs.winehq.com/cvsweb/lostwages/news/">news</a> files.
It probably wouldn't be too difficult and Jeremy Newman probably
wouldn't mind adding such a script to produce it to the webserver.  In
the mean time, Dan's seems to be working pretty well.</p>
</section></kc>
