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

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="274" date="13 May 2005 00:00:00 -0800" />
<intro> <p>This is the 274th issue of the Wine Weekly News publication.
Its main goal is to fly to LA. 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="333" size="1288" contrib="91" multiples="51" lastweek="55">

<person posts="28" size="91" who="Dustin Navea" />
<person posts="21" size="56" who="Mike Hearn" />
<person posts="17" size="41" who="Alexandre Julliard" />
<person posts="15" size="60" who="Felix Nawothnig" />
<person posts="12" size="40" who="gslink" />
<person posts="11" size="41" who="Francois Gouget" />
<person posts="11" size="40" who="J. Grant" />
<person posts="13" size="45" who="Dmitry Timoshkov" />
<person posts="10" size="47" who="Robert Lunnon" />
<person posts="9" size="29" who="Rein Klazes" />
<person posts="7" size="23" who="Raphael" />
<person posts="7" size="20" who="Andreas Mohr" />
<person posts="6" size="28" who="Shachar Shemesh" />
<person posts="6" size="25" who="Adrian Harvey" />
<person posts="6" size="24" who="Tom Wickline" />
<person posts="6" size="21" who="Vitaliy Margolen" />
<person posts="6" size="20" who="Christian Costa" />
<person posts="6" size="19" who="Vincent B&#233;ron" />
<person posts="5" size="22" who="Jules Richardson" />
<person posts="5" size="19" who="Dimi Paun" />
<person posts="5" size="18" who="Michael Stefaniuc" />
<person posts="5" size="14" who="James Hawkins" />
<person posts="5" size="13" who="Lionel Ulmer" />
<person posts="8" size="73" who="Stefan D&#246;singer" />
<person posts="4" size="14" who="Paul van Schayck" />
<person posts="4" size="12" who="Steven Edwards" />
<person posts="4" size="10" who="Gregory M. Turner" />
<person posts="3" size="42" who="MediaHost (TM)" />
<person posts="3" size="16" who="Stefan =?utf-8?q?D=C3=B6singer?=" />
<person posts="3" size="10" who="Chris Morgan" />
<person posts="3" size="9" who="Marcus Meissner" />
<person posts="3" size="8" who="Stefan Leichter" />
<person posts="3" size="6" who="Dimitrie Paun" />
<person posts="3" size="6" who="Jonathan Wilson" />
<person posts="2" size="24" who="StartCom Ltd." />
<person posts="2" size="12" who="Holly Bostick" />
<person posts="2" size="11" who="David F. Colwell" />
<person posts="2" size="9" who="Hiji" />
<person posts="2" size="8" who="Jason Edmeades" />
<person posts="2" size="7" who="David Lee Lambert" />
<person posts="2" size="6" who="Troy Rollo" />
<person posts="2" size="6" who="Jeremy White" />
<person posts="2" size="5" who="Uwe Bonnes" />
<person posts="2" size="5" who="Robert Shearman" />
<person posts="2" size="5" who="Kevin Koltzau" />
<person posts="2" size="5" who="Daniel Kegel" />
<person posts="2" size="5" who="Juan Lang" />
<person posts="2" size="5" who="Dimitrie O. Paun" />
<person posts="2" size="4" who="Martin Fuchs" />
<person posts="1" size="39" who="Maarten Lankhorst" />
<person posts="1" size="12" who="Michael Jung" />
<person posts="1" size="7" who="Ingrid Marson" />
<person posts="1" size="6" who="Jose Alonso" />
<person posts="1" size="5" who="Rolf Kalbermatter" />
<person posts="1" size="4" who="Paul Millar" />
<person posts="1" size="4" who="Wesley Parish" />
<person posts="1" size="4" who="Kuba Ober" />
<person posts="1" size="4" who="Marcelo Duarte" />
<person posts="1" size="4" who="zhilla" />
<person posts="1" size="3" who="Fabian Cenedese" />
<person posts="1" size="3" who="Peter" />
<person posts="1" size="3" who="(peter)" />
<person posts="1" size="3" who="Brian Vincent" />
<person posts="1" size="3" who="David =?iso-8859-1?q?G=FCmbel?=" />
<person posts="1" size="3" who="Michael Lin" />
<person posts="1" size="3" who="Andrew Neil Ramage" />
<person posts="1" size="3" who="Tobias Burnus" />
<person posts="1" size="3" who="Joris Huizer" />
<person posts="1" size="3" who="Jan Schiefer" />
<person posts="1" size="3" who="Aric Cyr" />
<person posts="1" size="3" who="Mike McCormack" />
<person posts="1" size="3" who="Kevin DeKorte" />
<person posts="1" size="3" who="Jacek Caban" />
<person posts="1" size="3" who="Adam D. Moss" />
<person posts="1" size="3" who="Paul Millar" />
<person posts="1" size="3" who="Vassilis Virvilis" />
<person posts="1" size="2" who="Jesse Allen" />
<person posts="1" size="2" who="Boaz Harrosh" />
<person posts="1" size="2" who="Dietrich Teickner" />
<person posts="1" size="2" who="Ivan Leo Puoti" />
<person posts="1" size="2" who="Jason Couture" />
<person posts="1" size="2" who="Mike Hearn" />
<person posts="1" size="2" who="Paul Vriens" />
<person posts="1" size="2" who="Saulius Krasuckas" />
<person posts="1" size="2" who="Hans Leidekker" />
<person posts="1" size="2" who="Derzu" />
<person posts="1" size="2" who="Dan Kegel" />
<person posts="1" size="2" who="Ge van Geldorp" />

</stats>
<section 
	title="News: Software Freedom Law Center" 
	subject="News"
	archive="http://trends.newsforge.com/article.pl?sid=05/05/11/1328245" 
	posts="2"
	startdate="14 May 2005 00:00:00 -0800"
	enddate="20 May 2005 00:00:00 -0800"
>
<topic>News</topic>
<mention>Alexandre Julliard</mention>
<mention>NewsForge</mention>
<mention>Slashdot</mention>
<mention>Dimi Paun</mention>
<mention>News</mention>
<mention>ZDNet</mention>

<p>We had some pretty big news this week.  The 
<a href="http://www.softwarefreedom.org">Software Freedom Law Center</a>
will be providing legal counsel to Wine.  The 
<a href="http://biz.yahoo.com/prnews/050511/sfw055.html?.v=9">press 
release</a> came out on Wednesday and was quickly picked up in the
news media.  
Slashdot's headline put it well, 
<i>"<a href="http://yro.slashdot.org/article.pl?sid=05/05/11/1451234">Wine
Now Has Big-Time Lawyers On Its Side</a>"</i>.  The people behind the SFLC
have helped free software for many years, often times silently working
behind the scenes to make sure you maintain the right to use free software.
An article by NewsForge provided 
<a href="http://trends.newsforge.com/article.pl?sid=05/05/11/1328245">more 
details</a> about what the SFLC does and how they can help Wine.  Several
quotes from Eben Moglen and Alexandre Julliard were included:</p>
<quote who="Eben Moglen"><p>
"We will have a very strong portfolio of crucial components that make 
up the FOSS enterprise software stack, including operating system 
components and crucial application layer products," Moglen said of 
SFLC's free legal assistance recipients, more of whom will be announced 
in the next four to six months. These projects will be joining the 
Free Software Foundation, Samba Project, and now Wine, which already 
receive SFLC services. Headed by Moglen, the center also boasts the 
open source legal expertise of well-known attorneys Diane Peters, 
Lawrence Lessig, and Dan Ravicher.
</p><p>
Moglen said Wine was a logical client for the center because it 
represents a pillar of interoperability -- something the SFLC uses 
in its argument and crusade for free and open source software and 
open standards.
</p><p>
"Wine is crucial to our interoperability portfolio," he said. "It 
allows businesses to take their Windows legacy applications with them. 
The legal usability of Wine is integrated into our interoperability 
case because of the fact that it incorporates Windows APIs. The 
Software Freedom Law Center wants to be sure our premier interoperability 
tools are tools we can use with confidence. This strikes an important 
step, securing our case that FOSS is fully interoperable."
</p></quote>

<p>A second bit of news appeared this week about GCC and structured
exception handling.  
<a href="http://yro.slashdot.org/article.pl?sid=05/05/12/1947213">Slashdot
carried</a> a story from a ZDNet's Builder UK publication titled,
<i>"<a href="http://uk.builder.com/programming/unix/0,39026612,39246157,00.htm">Wine 
development stifled by software patent</a>"</i>.  Wine's Dimi Paun was
quoted extensively about the issue.  A patch to GCC exists to enable
compatible SEH support but can't be included because of a Borland patent.
Therefore, Wine can't take advantage of that functionality within the
compiler.</p>
</section>
<section
        title="Video Capture in Windows"
        subject="Video capturing under Wine, some overview"
        archive="http://www.winehq.org/hypermail/wine-devel/2005/05/0503.html"
        posts="1"
        startdate="11 May 2005 00:00:00 -0800"
	enddate="11 May 2005 00:00:00 -0800"
>
<topic>Integration</topic>

<mention>Maarten Lankhorst</mention>
<mention>Microsoft</mention>

<p>Video capture devices have seen some work lately.  This
is a new area for Wine so there's been work at trying to
figure out how to implement it.  The seems to be building on
the Video4Linux services.  Two folks have been looking at
this and coming at it from different angles.  Rolf Kalbermatter
explained how all this works in Windows and how it could
work with Wine:</p>
<quote who="Rolf Kalbermatter"><p>
Prompted by the recent work by Maarten Lankhorst on getting his video
cam to work in Wine, I did some in depth investigations on how Windows
actually does this stuff.
</p><p>
This is a summary of what I found and some thoughts about it. I would
like some comments on how to progress.
</p><p>
Basically applications have two obvious ways to use video capture
services in Windows. One is avicap32.dll which is basically the Video
for Windows way of doing this and the other one is
ActiveMovie/DirectShow, soon to be obsoleted by Microsoft as well, as it
seems.
</p><p>
Avicap32 implements two functions, one is for the enumeration of the VfW
devices registered in the system. For this it does enumerate all entries
in
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaResources\msvid
eo and for compatibilty reasons with 16bit Windows also in the Drivers32
section in system.ini. I have an untested version of this code already.
The enumeration function does not try to detect any devices other than
what it finds in above mentioned places. I assume that a webcam driver
installation would have to do that. 
The second function in Avicap32.dll creates a (hidden) window which
handles the actual interaction with the video device as well as being an
optional user interface for the video data. The communication with the
video device is always by so called installable drivers, like wineoss,
etc. is used for audio devices. The interface to these installable video
drivers is for the video device specific parts declared in a header file
msviddrv.h which is really part of the DDK. (How would we add that to
the Wine headers?)
In modern Windows systems there is one MS provided installable driver
vfwwdm32.dll, which is basically a translation layer between the
installable interface and modern WDM stream based video drivers.
</p><p>
Devenum uses the avicap enumeration function to find all registered VfW
video sources and provide them to an application. Presumably there are
other possible video source objects which would provide a direct
interface to WDM stream class devices somehow and could be enumerated by
devenum as well.
</p><p>
DirectShow seems to be somwhat complicated. Video sources can be
provided from VfW again, which is provided by the "VfW Capture Filter"
class in qcap.dll. This is basically a DirectShow filter wrapper around
the same installable driver interface as is used in avicap32.dll (and
through above mentioned vfwwdm32.dll driver an application can also
access WDM stream class video capture sources indirectly. How the direct
interface to WDM stream class devices is provide I haven't found out yet
but according to MSDN it should be possible somehow.
</p><p>
For Wine purposes the VfW path seems the most interesting one.
Separating the Video4Linux interface into an installable multimedia
driver such as winev4l would cleanly separate platform specific code
from the rest of the Wine DirectShow and Avicap implementation. Trying
to emulate direct access to WDM based drivers would not be possible
anyhow, as that would seem to require kernel driver support, which is
mostly absent in Wine.
</p><p>
I could probably hack an experimental winev4l driver together based on
the work already done by Maarten Lankhorst, but would first want to make
sure that this is considered the way to go, before investing more time
into this. While the current implementation by Maarten is not as clean
and nice because of the direct V4L dependency in standard Wine DLLs, it
is something which already works somehow and could be integrated into
Wine in quite a short time.
</p></quote>

</section>
<section
        title="Documentation Moved to SourceForge"
        subject="Docs at SourceForge"
        archive="http://www.winehq.org/hypermail/wine-devel/2005/05/0463.html"
        posts="1"
        startdate="11 May 2005 00:00:00 -0800"
>
<topic>Integration</topic>

<mention>WineHQ</mention>
<mention>Dimi Paun</mention>
<mention>cvs</mention>

<p>Wine's documentation, such as the User Guide and Developers Guide,
have been moved into their own CVS repository.  Dimi Paun announced:</p>
<quote who="Dimitrie Paun"><p>

As most of you already noticed, the SGML docs have moved over
to the CVS SourceForge:
<ul><a href="http://sourceforge.net/cvs/?group_id=6241">
	http://sourceforge.net/cvs/?group_id=6241</a></ul>
</p><p>
They clearly did not belong in the tree, and we decided at
WineConf05 to move them out of there. So we did.
</p><p>
I have renamed the files for a more uniform naming, and dropped
couple of unused files in the process. We still need to change
WineHQ's scripts to point them to the new location. Help with
this would be appreciated.
</p><p>
I'll be managing that tree for now (unless Alexandre wants to
do it :)). Please send your patches as you usually do to
wine-patches_at_winehq.org, but make sure to prefix the subject
with '[WINEDOCS]' so I can more easily spot them. Discussions 
should take place on wine-devel_at_winehq.org as per normal.
</p><p>
The new repository is set up with translations in mind, so
hopefully will be able to handle them better in the future.
I'll be working with Francois to integrate the French
translation shortly.
</p></quote>

</section>
<section 
	title="Wiki Addition: Debugging" 
	subject="New debugging tutorials"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/05/0449.html" 
	posts="1"
	startdate="10 May 2005 00:00:00 -0800"
>
<topic>Debugging</topic>
<p>The new <a href="http://wiki.winehq.org">Wine Wiki</a> saw more
new material added this week.  Various developers, including Alexandre,
put up to do lists.  Mike Hearn announced a new page:</p>
<quote who="Mike Hearn"><p>


I've added the first of what will hopefully become many debugging
tutorials to the wiki:
<ul>
 <a href="http://wiki.winehq.com/DebuggingTutorials">
 http://wiki.winehq.com/DebuggingTutorials</a></ul>
</p><p>
Sometimes fixing Wine can be a bit hard to get into. Hopefully these short
"show me" guides will give people a taste for what it involves and help
newbies start.
</p><p>
Please feel free to add more! They shouldn't be too advanced (so no copy
protection, WM or DCOM debugging ;) but multiple levels of difficulty is
fine. Ideally they should all be based on real apps.
</p></quote>
 

</section>
<section
        title="Flattening Source Directories"
        subject="Flattening of ddraw directory and renaming of files"
        archive="http://www.winehq.org/hypermail/wine-devel/2005/05/0338.html"
        posts="4"
        startdate="08 May 2005 00:00:00 -0800"
>
<topic>Architecture</topic>

<p>Flattening the various DLL directories has come up a few times over the past year.  Basically the issue are any of Wine's DLL's that have subdirectories.  For example, if you go into dlls/winmm/ you'll see a ton of subdirectories.  Christian Costa took a stab at one this week and asked for some feedback:</p>

<quote who="Christian Costa"><p>
I plan to flatten the ddraw directory and perform some files renaming in it.
</p><p>
The changes I'm thinking about are in the 
<a href="http://www.winehq.com/hypermail/wine-devel/2005/05/0338.html">attached</a> file.
</p><p>
If you have suggestions (or objections), let me know.
</p><p>
If this is ok, I plan to submit the changes soon.
</p></quote>
<p>Mike Hearn wondered,
<quote who="Mike Hearn">
No objection, I'm just curious as to the rationale. Why is surface_hal.c?
better than surface/hal.c?</quote></p>

<p>Christian explained:</p>
<quote who="Christian Costa"><p>
<ol>
<li> This removes the directories hierarchy (which is not really necessary)</li>
<li> You don't have several files with the same name (there are 6 main.c, 
   3 hal.c,... and when there are all opened for editing, this begins to be 
   a little confusing)</li></ol></p></quote>
   
<p>Alexandre thought it would be a good time to do more cleanup,
<quote who="Alexandre Julliard">
While you are at it, it would be nice to merge the header files. We
really don't need one header for each source file.</quote></p>

</section>
<section 
	title="Compiling Problems" 
	subject="CVS compilation problem"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/05/0537.html" 
	posts="3"
	startdate="12 May 2005 00:00:00 -0800"
>
<topic>Build Process</topic>
<p> I ran into this earlier in the week, you might have too.  
Uwe Bonnes reported:</p>
<quote who="Uwe Bonnes"><p>

I updated yesterday and today. Compiling with todays CVS gives:
<ul><code>
../../../tools/winegcc/winegcc -B../../../tools/winebuild -mconsole<br />
joystick.o keyboard.o mouse.o testlist.o  -o dinput_test.exe.so<br />
-L../../../libs/port -lwine_port -L../../../dlls -L../../../dlls/dinput<br />
-L../../../dlls/ole32 -L../../../dlls/version -L../../../dlls/user32<br />
-L../../../dlls/kernel32 -L../../../libs -ldinput -lole32 -lversion -luser32
-lkernel32 -ldxguid -luuid -ldxerr8   <br />
joystick.o(.text+0x543): In function `EnumJoysticks':
/spare/bon/wine-realclean/wine/dlls/dinput/tests/joystick.c:165: undefined
reference to `c_dfDIJoystick' 
joystick.o(.text+0x592):/spare/bon/wine-realclean/wine/dlls/dinput/tests/joystick.c:169:  
undefined reference to `c_dfDIJoystick2' <br />
collect2: ld returned 1 exit status
</code></ul></p></quote>
<p>Alexandre provided the fix:</p>
<quote who="Alexandre Julliard"><p>

Do <tt>rm dlls/*.def</tt> and it should work again.</p></quote>



</section>
<section
        title="Recruiting Help for Bugzilla"
        subject="Now hiring"
        archive="http://www.winehq.org/hypermail/wine-devel/2005/05/0331.html"
        posts="2"
        startdate="08 May 2005 00:00:00 -0800"
>
<topic>Debugging</topic>

<p>One thing mentioned at WineConf was how we don't respond
well to info about problems.  For example, there's bugs in
Bugzilla that have test cases and patches, but we haven't
fixed them.  In fact, just going through Bugzilla and cleaning
things up can be a lot of work.  A few years ago Dustin Navea
got involved by doing that.  He took a break for a while, but
over the past few weeks he's gotten back into it.  He asked
on wine-devel about getting more people to help:</p>
<quote who="Dustin Navea"><p>
It seems we have run low on "official" janitors, I have 
talked with someone that seems to know what they are doing as far as the 
right way to bug report (he contribs to MPlayer), and he said he would 
be willing to help maintain bugzilla, but that he doesn't have a whole 
lot of time, the extra hand will be helpful.  Could you add 'canconfirm' 
and 'editbugs' to inverseparadox_at_comcast.net?
</p><p>
Does anyone have any objection to me posting a note on wine-users that 
we are accepting applications for dedicated bug maintainers (read: 
janitors lol)?
</p><p>
I will handle "interviewing and hiring", and just send an email to 
Jeremy when we get people that know what they are doing and can really 
be of use..  I think 5 should be good for now..
</p></quote>

<p>Shachar Shemesh suggested rephrasing it a bit,
<quote who="Shachar Shemesh">
I think "recruiting" is a better term. After all, most armies don't pay 
salaries worth of anything, and neither do we :-)

</quote></p>

</section></kc>
