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

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="279" date="17 Jun 2005 00:00:00 -0800" />
<intro> <p>This is the 279th issue of the Wine Weekly News publication.
Its main goal is to trench. 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="209" size="1020" contrib="72" multiples="40" lastweek="37">

<person posts="15" size="37" who="Alexandre Julliard" />
<person posts="18" size="57" who="Dimi Paun" />
<person posts="9" size="41" who="(wino)" />
<person posts="9" size="29" who="Christian Costa" />
<person posts="9" size="27" who="Tom Wickline" />
<person posts="8" size="31" who="Scott Ritchie" />
<person posts="7" size="27" who="=?utf-8?q?Ren=C3=A9_Rebe?=" />
<person posts="6" size="273" who="Jeremy White" />
<person posts="6" size="24" who="Saulius Krasuckas" />
<person posts="6" size="20" who="Mike Hearn" />
<person posts="5" size="17" who="Brian Vincent" />
<person posts="5" size="16" who="Kevin Koltzau" />
<person posts="4" size="17" who="Mitchell Mebane" />
<person posts="4" size="15" who="J. Grant" />
<person posts="4" size="12" who="Dmitry Timoshkov" />
<person posts="5" size="15" who="Robert Shearman" />
<person posts="4" size="10" who="Ivan Leo Puoti" />
<person posts="4" size="10" who="cdr" />
<person posts="5" size="98" who="Marcus Meissner" />
<person posts="3" size="12" who="Dustin Navea" />
<person posts="3" size="9" who="Robert Lunnon" />
<person posts="3" size="9" who="Eric Pouech" />
<person posts="3" size="9" who="Michael Jung" />
<person posts="3" size="8" who="Felix Nawothnig" />
<person posts="3" size="7" who="Juan Lang" />
<person posts="3" size="7" who="Andreas Mohr" />
<person posts="2" size="15" who="Robert Reif" />
<person posts="2" size="8" who="=?ISO-8859-1?Q?Alex_Villac=ED=ADs_Lasso?=" />
<person posts="2" size="8" who="Kristiaan Lenaerts" />
<person posts="2" size="7" who="Jan Jezabek" />
<person posts="2" size="6" who="Johan Dahlin" />
<person posts="2" size="5" who="James Hawkins" />
<person posts="2" size="5" who="Oliver Stieber" />
<person posts="2" size="5" who="Mike McCormack" />
<person posts="2" size="5" who="Rolf Kalbermatter" />
<person posts="2" size="4" who="Gregory M. Turner" />
<person posts="2" size="4" who="Lionel Ulmer" />
<person posts="2" size="4" who="David Christian Berg" />
<person posts="1" size="5" who="Chris Morgan" />
<person posts="1" size="4" who="David Lee Lambert" />
<person posts="1" size="4" who="Maarten Lankhorst" />
<person posts="1" size="4" who=" (Michael Guennewig)" />
<person posts="1" size="4" who="Gerold J. Wucherpfennig" />
<person posts="1" size="4" who="=?iso-8859-1?q?Ren=E9_Rebe?=" />
<person posts="1" size="4" who="Chris Morgan" />
<person posts="1" size="3" who="Hiji" />
<person posts="1" size="3" who="Francois Gouget" />
<person posts="1" size="3" who="Michael Stefaniuc" />
<person posts="1" size="3" who="Raphael" />
<person posts="1" size="3" who="Uwe Bonnes" />
<person posts="1" size="3" who="Aneurin Price" />
<person posts="1" size="3" who="Paul Vriens" />
<person posts="1" size="2" who="Andrew Neil Ramage" />
<person posts="1" size="2" who="Steven Edwards" />
<person posts="1" size="2" who="Ove Kaaven" />
<person posts="1" size="2" who="Phil Krylov" />
<person posts="1" size="2" who="Martin Fuchs" />
<person posts="1" size="2" who="Michael =?iso-8859-1?q?B=FCttner?=" />
<person posts="1" size="2" who="Glen Kaukola" />
<person posts="1" size="2" who="Stefan Huehner" />
<person posts="1" size="2" who="David Laight" />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Andr=E9_Carvalho?=" />
<person posts="1" size="2" who="bala saravanan" />
<person posts="1" size="2" who="Joerg Mayer" />
<person posts="1" size="2" who="Troy Rollo" />
<person posts="1" size="2" who="Detlef Riekenberg" />
<person posts="1" size="2" who="(cyrix12)" />
<person posts="1" size="2" who="Marcelo Duarte" />

</stats>
<section 
	title="News: $$ and Development"
	subject="News"
	archive="http://www.advogato.org/article/844.html"
	posts="1"
	startdate="11 Jun 2005 00:00:00 -0800"
	enddate="17 Jun 2005 00:00:00 -0800"
>
<topic>News</topic>
<mention>News</mention>

<p>There's a great article over on Advogato about
 <i><a href="http://www.advogato.org/article/844.html">Financing Volunteer
 Free Software Projects</a></i>.  Wine happens to be mentioned, but it isn't
 the focus of the article.  For anyone involved with a large free software
 project, especially one where some development gets paid for, it has lot
 of really good points.  It discusses some of the dangers of infusing 
 paid development into a project and gives some ideas for how to manage
 that process.  A few years ago Wine seemed to be heading toward some of
 the pitfalls mentioned, but changing Wine's license from BSD-style to LGPL 
 may have prevented that.  The number of patches steadily increased after 
 switching to LGPL (after descreasing previous to that.)  Now we're seeing
 between 4x and 5x as many as we did in late 2001 and early 2002.  The
 effect of licensing could easily fill its own article, but it isn't 
 mentioned in this one.
</p>
</section>
<section 
	title="Winecfg Goes Live"
	subject="wine/programs/winecfg x11drvdlg.c winecfg.h wi ..."
	archive="http://www.winehq.com/hypermail/wine-cvs/2005/06/0382.html"
	posts="1"
	startdate="16 Jun 2005 00:00:00 -0800"
>
<topic>Configuration</topic>
<mention>Juan Lang</mention>

<p>Yesterday a two-line CVS commit message to winecfg 
signaled a major shift for Wine:</p>

<quote who="Alexandre Julliard"><p>
	Fixed registry paths to edit the real config, and removed the startup
	warning message.
</p></quote>

<p>Alexandre has spent the week focusing on Wine's configuration and
some major changes have happened.  The commit above allows the winecfg
program to actually edit the registry.  That's right, after about two
years of sporadic development, winecfg is seeing the light of day.  It's
not a particularly large program, nor does it configure every possible
setting in Wine.  However it does provide a nice front end.  For 
everything else you can use Wine's regedit.  In fact, regedit will
now write to the Wine branch of the registry as well.</p><p>

You might be wondering about the config file though.  Well, we're in an
odd situation where the config code is still in place.  If you make
changes in the config file they may be reflected in the registry.  However,
if you make changes in the registry they definitely won't be reflected
in the config file.  Changes to the config file may or may not actually
get reflected by the app running.  This is sort of the warning to make 
sure you're ready for the config file to go away.  

</p><p>
Along similar lines, Alexandre is moving registry keys.  Currently you'll
find Wine's settings in HKLM,Software-&gt;Wine-&gt;Wine and things are
moving to just HKLM,Software-&gt;Wine or into HKEY_USER,<i>username</i>-&gt;Wine.  
There's likely to be some growing pains as a result of all this.  Just as I 
was finishing this issue, Juan Lang pointed out that currently the Windows 
version could only be set in the config file.
</p>
</section>
<section 
	title="Documenting Config Options"
	subject="Re: wine/dlls/x11drv x11drv_main.c x11drv.h palette.c"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/06/0434.html"
	posts="9"
	startdate="14 Jun 2005 00:00:00 -0800"
	enddate="15 Jun 2005 00:00:00 -0800"
>
<topic>Documentation</topic>
<p>
As we noted above, it looks like the June 30th date of ditching the config
file is pretty realistic.  There's a few obstacles in the path and
Alexandre spent some time tackling them.  First, he moved some of
the registry keys to other locations in the registry.  Then he went
through and got rid of some old options that were fairly useless.
One of the big issues that people have voiced is that the registry
is not a self-documenting entity.  That's long been a problem on 
Windows as well and there's no way to document within the registry 
what each of the keys and values do.  The existing config file 
contains comments describing each option, so switching all the
config options into the registry has the potential to lose information.   
To work around that, Alexandre began going through and adding comments
to the code like:</p>
<quote who="Alexandre Julliard"><p>
<code>
+    /* @@ Wine registry key: HKCU\Software\Wine\DirectSound */</code>
</p></quote>

<p>In that instance, the DirectSound keys don't have any options
in the winecfg program, so this comment in the code is about the
easiest way to find all of the keys related to it.  It's easily
grep'able, so keys will turn up easily.  One problem
with it is the values and their data are left undocumented.  Dimi
and Alexandre had a discussion about it this week.  Dimi wondered why
a configuration change seemed different than the others,
<quote who="Dimitrie Paun">
Hmm, these don't seem to have the magic comments,
is this intentional?
</quote></p>  

<p>That's when Alexandre described the process,
<quote who="Alexandre Julliard">
They do, the magic comment is on the RegOpenKey above. I'm only adding
comments for registry keys, not for every possible value under them.
</quote></p>

<p>Dimi thought the values were important as well, but Alexandre 
felt it was a separate documentation matter,
<quote who="Alexandre Julliard">
The goal of the comments is to allow to find the relevant pieces of
code; once you get there it's fairly easy to determine the values
being used.  Detailed information about the values and their contents
should go in the documentation, the comments are only here to make it
easier to check that the documentation is up to date.</quote></p>

<p>After thinking about it, Dimi thought similar magic comments could
be added for values as well,
<quote who="Dimi Paun">
Yeah, agreed. But it would be so much easier to keep the docs
up-to-date if we can simply grep for the values. I'm not
suggesting that you do the work, but if you think we can mark
them somehow for easy grepping, we can add it as a Janitorial
task.
</quote></p>

<p>Alexandre didn't think that was realistic though,
<quote who="Alexandre Julliard">

It's not the extra work, it's that I'm not convinced we want to add a
lot of noise in the source for that. I don't think we can
realistically hope to build the documentation only by grepping, we
need to check the source anyway.</quote></p>

<p>Dimi thought it would be worth trying though:</p>
<quote who="Dimitrie Paun"><p>

Well, it's not a matter of building the docs only by grepping, that
wouldn't be feasible. But _checking_ if anything has been added or
deleted can be done easily. And that would be the important trigger for
someone to go in and update the documentation.
</p><p>
Remember that I've tried already to document all the options (we even
have a web page for it at http://winehq.org/site/status_options) but it
was close to impossible to keep it up-to-date. Just knowing if anything
changed would really be invaluable.
</p><p>
As for adding much noise, if we have that many options, we have a lot
more problems than the 1-line comments for each of them :)</p></quote>

<p>Alexandre didn't think it was fool-proof enough,
<quote who="Alexandre Julliard">
 Yes, but it doesn't really help if the comments are not up to
 date. I'd prefer to make sure it's dead easy to update the doc
 directly rather than ask people to maintain comments and then have to
 come back and sync with the doc. That may mean putting the doc
 directly in the source, or having a wiki page than everybody can
 update, I don't know; but I think we should be able to find a better
 mechanism than these magic comments.</quote></p>

<p>It was sort of left there.  There was no clear method would be
self-documenting and for now we'll rely on Wine's docs to provide
the user-facing information on configuration options.</p>

</section>
<section 
	title="AppDB Searching &amp; To-Do"
	subject="[AppDB] - improve search results"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/06/0369.html"
	posts="1"
	startdate="14 Jun 2005 00:00:00 -0800"
>
<topic>WineHQ</topic>
<mention>WineHQ</mention>

<p>Last week we posted a to-do list for the 
<a href="http://appdb.winehq.org">AppDB</a> (see WWN
<a href="http://www.winehq.com/?issue=278">#278</a>).  The to-do list
was out of date about as soon as we published it.  The AppDB guys
got together and put together a really nice list with a lot of 
projects people could tackle.  One of the topics that came up was
searching.  Chris Morgan added the ability last week to do 'fuzzy'
searching to improve the matches.  Someone then had a great idea for
searching and posted it to Bugzilla and Chris came up with a patch
to implement it:</p>
<quote who="Chris Morgan"><p>
Improve search results by seeing if any of the search words match a vendor 
name or a vendor url.  If so we should return all of the vendors applications 
in our search results.</p></quote>

<p>After implementing it Chris realized it was one of those obvious changes
that just needed someone to think of it.  For example, a lot of people might
just stick in the keyword "Borland" and before this change it wouldn't turn
up anything.  
</p><p>
For a complete update on the AppDB to-do list, head over to the 
wiki and look at
<a href="http://wiki.winehq.org/AppdbInfo">http://wiki.winehq.org/AppdbInfo</a>.
</p>
</section>
<section 
	title="FFMpeg Video Wrapper (con't)"
	subject="Re: [QUARTZ] Add FFMpeg video wrapper filter (take 3)"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/06/0383.html"
	posts="18"
	startdate="13 Jun 2005 00:00:00 -0800"
	enddate="15 Jun 2005 00:00:00 -0800"
>
<topic>DirectX</topic>
<mention>Rob Shearman</mention>

<p>Last week (WWN issue <a href="http://www.winehq.com/?issue=278">#278</a>)
we mentioned a patch submitted by Christian Costa that statically links
<a href="http://ffmpeg.sourceforge.net/index.php">FFMpeg</a>.  No one really 
liked the fact it has to be statically linked, but apparently the ffmpeg
developers require it because of version problems.  Alexandre asked for
the library to be dlopen'ed and Christian explained:</p>
<quote who="Christian Costa"><p>

Well, it was meant to link with the static library only however I
admit my configure check is not that good. The FFMpeg build
the static lib by default and it's not likely you find a shared version
lying somewhere when building Wine.</p></quote>

<p>Marcus Meissner wondered if separate DLL's could be build to access
FFMpeg and then dropped in to provide the functionality.  It would sort
of turn it into more of a packaging issue:</p>
<quote who="Marcus Meissner"><p>
What I think of is putting all codecs that can benefit from libavcodec
into a wine-quartz-avcoded.rpm which contains one (1) q_avcodec.dll which can
register all these filters.
</p><p>
So just 1 add-on RPM to install additionaly.
</p><p>
Since this can be provided by external contributors a distributor would not
have to worry about libavcoded related problems.
</p></quote>

<p>Rob Shearman explained a problem with that:</p>
<quote who="Robert Shearman"><p>

At the moment, most of the filters depend on a set of files that are
implementation of base types like pins and media format enumerators. I
think the long term goal is to move these into a libwinestrmbase, but at
the moment it is not easy to take a filter from quartz and put it into
another dll / library.

</p><p>
Ideally, I don't think we want to link to libavcodec at all. We should
import code for as many filters as native implements, without stepping
on patented territory. That way, apps that specifically ask for
CLSID_CMpegAudioCodec, for example, will get exactly what they want.
</p></quote>


<p>Christian explained that importing FFMpeg code would make Wine's
build dependencies more complicated:</p>
<quote who="Christian Costa"><p>
How would you benefit from an ffmpeg update in a seamless manner?
</p><p>
Note that some months ago, I did a version of the wrapper that directly
uses source files in the makefile
but I realized that taking benefit of acceleration (i386, mmx, sse,
etc...) would require merging
a lot of things from ffmpeg build to Wine's one. No to mention that I
was not sure that ffmpeg sources would
be accepted again in Wine tree. That's why I switched back to use the
library.</p></quote>

</section>
<section
        title="MSN Messenger 6.2"
        subject="MSN Messenger builtin progress"
        archive="http://www.winehq.com/hypermail/wine-devel/2005/06/0469.html"
        posts="1"
        startdate="15 Jun 2005 00:00:00 -0800"
>
<topic>Multimedia</topic>
<p>Maarten Lankhorst has been hard at work getting MSN Messenger to run.
For more details on that effort, see WWN issues
<a href="http://www.winehq.com/?issue=274#Video%20Capture%20in%20Windows">#274</a>, 
<a href="http://www.winehq.com/?issue=275#Webcams%20&amp;%20MSN%20Messenger">#275</a>, and 
<a href="http://www.winehq.com/?issue=276#Video%20Driver%20Infrastructure">#276</a>.
He posted another patch this week that implemented more functionality.  
Messenger 6.2 is now closer to working with builtin DLL's.  Maarten
described how to get it running, but it doesn't sound like it's for the
faint of heart:</p>
<quote who="Maarten Lankhorst"><p>
MSN Messenger 6.2 (!!) seems to run fairly well with only builtin dll's,
from what I can tell the only real thing missing is CreateTextServices
in riched20.dll, SSL support and urlmon's obtainuseragent (or
something), webcams will work without any additional native dll now, if
my patch for msvfw32 gets committed.
</p><p>
I don't know much about SSL, but currently it works fine by just
disabling it. For urlmon's obtainuseragent you should just write a patch
so it returns a value, but something like this seems to be enough:
<ul><code>
+WCHAR Agent[] = { 'B', 'r', 'o', 'w', 's', 'e', 'r', 0 };<br />
+<br />
 /**************************************************************************<br />
  *                 ObtainUserAgentString (URLMON.@)<br />
  */<br />
@@ -279,6 +281,10 @@ HRESULT WINAPI ObtainUserAgentString(DWO<br />

&#160;&#160;&#160;&#160;if(dwOption) {
&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ERR("dwOption: %ld, must be zero\n", dwOption);
&#160;&#160;&#160;&#160;}<br />
+<br />
+&#160;&#160;&#160;&#160;if (sizeof(Agent)/sizeof(WCHAR) &lt; *cbSize)<br />
+&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*cbSize = sizeof(Agent)/sizeof(WCHAR);<br />
+&#160;&#160;&#160;&#160;lstrcpynW((WCHAR *)pcszUAOut, Agent, *cbSize);
</code></ul></p><p>
Disabling SSL can be done by changing a line in
dlls/wininet/netconnection.c, but if someone wants to write ssl you
should go right ahead:
<ul><code>
 void NETCON_init(WININET_NETCONNECTION *connection, BOOL useSSL)<br />
 {<br />
-&#160;&#160;&#160;&#160;connection->useSSL = useSSL;<br />
+&#160;&#160;&#160;&#160;connection->useSSL = /*useSSL*/0;
</code></ul></p><p>
It will not run fully, you have to disable msn today before signing in,
and you are required to download the mozilla activeX control.
</p><p>
Standard wine uses windows version win98 for msnmsgr, but I found out
that that is 1 of the worst possible choices, it seems that win2k
behaves exactly the same for the user, but works a *LOT* faster,
personally I prefer to use win20 and builtin unicows (have to override
in config), because else smilies appear to be invisible.
</p><p>
What I miss however, is the icon in the system tray, while this works
fine under KDE it really *HURTS* not to have it in gnome.
</p><p>
I currently use the following native dll's:
msvcp60.dll/RTC{DLL,RES,RTP}.dll
</p><p>
The above 4 aren't really interesting, as they are required by the
mozilla activeX control, and not worth implementing. I can't remember
wether it was installed by mozilla activeX, but I believe it was.
</p><p>
What is more interesting is that there is now only 1 file needed for msn
6.2 to work builtin (MSN+ works perfectly too):
riched20.dll
</p><p>
I'll try playing around a bit with CreateTextServices and see how far I
will come, it seems to be tricky, I can't find any useful information
about it.
</p><p>
I am not sure about MSN 7.0, but I can tell already that would require a
lot more effort.</p></quote>

</section>
<section 
	title="Windows Icons in KDE"
	subject="Windows Icons under konqueror."
	archive="http://www.winehq.com/hypermail/wine-devel/2005/06/0.html"
	posts="1"
	startdate="16 Jun 2005 00:00:00 -0800"
>
<topic>Utilities</topic>

<p>Oliver Stieber wrote in to mention a utility he wrote:</p>
<quote who="Oliver Stieber"><p>
 Quite a while ago I mentioned that I had a plugin for
KDE so that the correct icons for windows applications
(and the icons in dlls) are displayed in the file
explorer.
</p><p>
 A few people seemed interested so I've put the plugin
up on KDE apps.
<ul>
<a href="http://www.kde-apps.org/content/show.php?content=25430">
http://www.kde-apps.org/content/show.php?content=25430</a></ul></p></quote>

<p>Oliver also began submitting DirectX 9 changes this week.  The initial
patches have already made their way into the Wine tree, hopefully 
preparing for the massive DirectX 9 patches.</p>


</section>
<section 
	title="VMWare Licenses"
	subject="VMWare Licenses"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/06/0440.html"
	posts="2"
	startdate="14 Jun 2005 00:00:00 -0800"
	enddate="15 Jun 2005 00:00:00 -0800"
>
<topic>Project Management</topic>
<mention>Dimi Paun</mention>

<p>
I posted the following on Tuesday:
</p>
<quote who="Brian Vincent"><p>
A few weeks ago Ivan asked me about getting him a VMWare Workstation 
license. I contacted VMWare and they graciously donated 5 licenses to Wine. 
I thought that was pretty generous of them. 
</p><p>
I contacted some people off-list about it, so now Ivan, Jacek, Hannu, and 
James all have a copy of VMWare. That means we have 1 more license up for 
grabs. It's open to anyone. However, I'd like to make sure you'll use it. If 
you don't have a track record of contributing patches to Wine you're not 
likely to get it. Likewise, if you don't think you'd use it then please 
don't ask for it just to have it. Having said that, by all means contact me 
if you think it would help you out. A lot of Wine developers have been using 
it for a while and it's a useful tool.
</p><p>
Thanks again to VMWare for supporting a free software project!</p></quote>

<p>The extra license went to Dimi Paun.  Muchos gracias to all the folks at
VMWare.  </p>
</section></kc>
