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

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="240" date="17 Sep 2004 00:00:00 -0800" />
<intro> <p>This is the 240th issue of the Wine Weekly News publication.
Its main goal is to jog. 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="301" size="1104" contrib="82" multiples="45" lastweek="43">

<person posts="38" size="144" who="Mike Hearn" />
<person posts="31" size="79" who="Alexandre Julliard" />
<person posts="18" size="48" who="Robert Shearman" />
<person posts="13" size="44" who="Dimitrie O. Paun" />
<person posts="12" size="25" who="Juan Lang" />
<person posts="10" size="32" who="Vincent B&#233;ron" />
<person posts="8" size="28" who="Robert Reif" />
<person posts="8" size="19" who="Lionel Ulmer" />
<person posts="7" size="35" who="James Hawkins" />
<person posts="7" size="19" who="Shachar Shemesh" />
<person posts="7" size="14" who="Ivan Leo Puoti" />
<person posts="6" size="40" who="Filip Navara" />
<person posts="6" size="20" who="Mike McCormack" />
<person posts="6" size="16" who="Dmitry Timoshkov" />
<person posts="6" size="15" who="Andreas Mohr" />
<person posts="5" size="15" who="Huw D M Davies" />
<person posts="4" size="19" who="J. Grant" />
<person posts="4" size="14" who="Rein Klazes" />
<person posts="4" size="12" who="Hans Leidekker" />
<person posts="6" size="15" who="Marcus Meissner" />
<person posts="4" size="8" who="Steven Edwards" />
<person posts="3" size="44" who="Michael Stefaniuc" />
<person posts="3" size="15" who="Rickard Svensson" />
<person posts="3" size="14" who="Ewert, Mark" />
<person posts="3" size="12" who="Gerald Pfeifer" />
<person posts="3" size="10" who="Francois Gouget" />
<person posts="3" size="7" who="Jens Collin" />
<person posts="3" size="7" who="Belxjander Serechai" />
<person posts="3" size="7" who="Rolf Kalbermatter" />
<person posts="2" size="31" who="Michael Kaufmann" />
<person posts="2" size="21" who="Tony Lambregts" />
<person posts="2" size="9" who="(brettholcomb)" />
<person posts="2" size="8" who="Joerg Mayer" />
<person posts="3" size="8" who="Eric Pouech" />
<person posts="2" size="6" who="Ryan Underwood" />
<person posts="2" size="6" who="Stefan Leichter" />
<person posts="2" size="6" who="Jason Edmeades" />
<person posts="2" size="5" who="Uwe Bonnes" />
<person posts="2" size="5" who="Boaz Harrosh" />
<person posts="2" size="5" who="Alexander Yaworsky" />
<person posts="2" size="5" who="hatky" />
<person posts="2" size="5" who="Roger Olson" />
<person posts="2" size="4" who="Saulius Krasuckas" />
<person posts="2" size="3" who="Lara Joy Francia" />
<person posts="1" size="58" who="Markus Amsler" />
<person posts="1" size="19" who="Adam Petaccia" />
<person posts="1" size="7" who="Warren Baird" />
<person posts="1" size="6" who="Raghavan Gurumurthy" />
<person posts="1" size="4" who="Green, Shaun E." />
<person posts="1" size="4" who="Ove Kaaven" />
<person posts="1" size="4" who="Roderick Colenbrander" />
<person posts="1" size="3" who="Patrick Goupell" />
<person posts="1" size="3" who="Duane Clark" />
<person posts="1" size="3" who="Andreas Rosenberg" />
<person posts="1" size="3" who="Jason" />
<person posts="1" size="3" who="Paul Millar" />
<person posts="1" size="2" who="David Lee Lambert" />
<person posts="1" size="2" who="=?iso-8859-1?q?Robbert=20Xerox?=" />
<person posts="1" size="2" who="James Pellow" />
<person posts="1" size="2" who="Ulrich Czekalla" />
<person posts="1" size="2" who="Paul Moore" />
<person posts="1" size="2" who="Kevin Koltzau" />
<person posts="1" size="2" who="Krzysztof Foltman" />
<person posts="2" size="4" who="Diego Petten&#242;" />
<person posts="1" size="2" who="Brian Vincent" />
<person posts="1" size="2" who="Bernd Lachner" />
<person posts="1" size="2" who="Aneurin Price" />
<person posts="1" size="2" who="Gerald Pfeifer" />
<person posts="1" size="2" who="Joris Huizer" />
<person posts="1" size="2" who="Scott Snell" />
<person posts="1" size="2" who="Lars Segerlund" />
<person posts="1" size="2" who="Jon Griffiths" />
<person posts="1" size="2" who="Daniel Remenak" />
<person posts="1" size="2" who="Dan Kegel" />
<person posts="1" size="2" who="(pcunite)" />
<person posts="1" size="2" who="Vitaliy Margolen" />
<person posts="1" size="1" who="lara joy Francia" />
<person posts="1" size="1" who="Jonathan Wilson" />

</stats>
<section 
	title="News: Wine-20040914" 
	subject="News"
	archive="http://www.winehq.com/?announce=1.92" 
	posts="1"
	startdate="11 Sep 2004 00:00:00 -0800"
	enddate="17 Sep 2004 00:00:00 -0800"
>
<topic>News</topic>
<mention></mention>
<mention>News</mention>

<p>WWN on Tuesday?  Yep, this issue is late.  Mea culpa.  Rather than
wait till Friday to do a double issue, this mini-issue will be a 
summary of <i>last</i> week's wine-devel topics.  Plus, the Sept 24th
issue is shaping up to be a bit larger than normal.</p>

<p>Last week Alexandre tagged a new CVS snapshot, Wine-20040914.  
The following was in the announcement:</p>
<quote who="Alexandre Julliard"><p>
<ul>

     <li> Various improvements to the common controls.</li>
     <li> New ITSS dll (for HTML Help support).</li>
     <li> Many compatibility fixes in the exported headers.</li>
     <li> Replacements for the Windows standard bitmap fonts.</li>
     <li> Lots of bug fixes. </li>
</ul></p></quote>

<p>
  Binary and source packages are available from our
  <a href="http://www.winehq.org/site/download">download page.</a>
</p>



</section>
<section 
	title="New Fonts" 
	subject="Re: fonts: wine_marlett"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/09/0475.html" 
	posts="7"
	startdate="16 Sep 2004 00:00:00 -0800"
	enddate="17 Sep 2004 00:00:00 -0800"
>
<topic>Fonts</topic>
<mention>Mike Hearn</mention>
<mention></mention>
<mention>Huw Davies</mention>
<mention>Microsoft</mention>
<mention>TransGaming</mention>
<mention>cvs</mention>

<p>In Alexandre's announcement above he mentioned fonts as
a major new addition.  It's a topic that hasn't been brought
up on wine-devel, but there has been a lot of work done by 
Huw Davies on getting this added.  Up until now, Wine has 
required that you go out and find your own TrueType fonts.
Fortunately, this isn't too hard; you can even download a 
collection of Microsoft fonts from Sourceforge.  Having that
dependency is really a crutch and this new work will help
alleviate it.  </p>

<p>The new work done by Huw requires 
<a href="http://fontforge.sourceforge.net">FontForge</a> to
be installed in order to generate font files from "source"
code.  For anyone downloading and compiling Wine, this is
something they probably won't have on their machine and it's
a step that will probably be skipped.  For folks downloading
binary packages, hopefully it will be something included.  
Thus far we have Courier, Marlett, Sans Serif, and System 
fonts and you can find them in the newly added 
<tt><a href="http://cvs.winehq.com/cvsweb/wine/fonts/">fonts/</a></tt>
directory.  The Marlett font is the newest addition and comes
to us via TransGaming.  A thread developed this week about
using that font and some other general questions.  Rob
Shearman asked,
<quote who="Rob Shearman">
Is there any policy for using it?
E.g. a lot of the arrows and stuff in the native comctl32 are drawn 
using this font, so would we now be able to do this with our version of 
the common controls?</quote></p>

<p>Vincent B&#233;ron thought it would be a bad dependency,
<quote who="Vincent Beron">
Far from everyone has fontforge installed, so unless there's a compiled
version in cvs (a la configure) you might find most users don't have
marlett.ttf.</quote></p>

<p>Huw suggested testing to see if Marlett was available, and 
then fall back to the existing code if it wasn't.  Mike Hearn didn't
like the idea of keeping two codepaths and suggested that it
may be worth checking in the binaries into CVS.  Alexandre 
didn't approve of that, however,
<quote who="Alexandre Julliard">

First because binaries are a pain with CVS, second and more important
because there has to be a very good reason for putting any generated
file in CVS; configure qualifies, but fonts don't. The worst case is
that the window controls won't look exactly right, that's not a big
deal, and it can be solved by having a binary font package somewhere
for download.</quote></p>

<p>So, things look like they'll stay as they are right now and 
this will become more of a packaging issue.
Anyone out there got a nice collection of fonts you made and
want to donate to Wine?  If so, 
<a href="http://www.winehq.com/site/forums">let us know</a>.</p>

</section>
<section 
	title="DirectX 9 Roadmap" 
	subject="Directx9"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/09/0333.html" 
	posts="25"
	startdate="12 Sep 2004 00:00:00 -0800"
	enddate="14 Sep 2004 00:00:00 -0800"
>
<topic>DirectX</topic>
<mention></mention>
<mention>cvs</mention>

<p>We've had a bit of a lull in DirectX graphics programming.
As last year's big push was wrapping up, one of the topics that
came up involved creating a new library that could be shared 
between related parts of DirectX, in particular Direct3D.  
Jason Edmeades resurrected the topic this week:</p>
<quote who="Jason Edmeades"><p>
I've spoken with the wine-d3d people and noone is currently doing anything
on directx9 support. Originally Raphael was trying to merge things into a
new library, wined3d, using an interface which ddraw could also use. This
has not happened, and as we stand there is no progress being made.
</p><p>
Now, I know nothing about d3d9 support - I have started to see what would be
the easiest way to implement this, and have come up with a couple of
options, and am after some advice....
<ol>
<li> (My preference) d3d8 and d3d9 are very similar in lots of respects. I
would like to move all the GL code into the wined3d library, effectively
factorizing d3d8 and d3d9. However, this would mean extra function call
overhead for dx8 and I really dont know how common they will be. Obviously
d3d8 will change during such a transition</li>

<li> I could implement d3d9 from scratch. This would have the advantage of
being a standalone library and wont affect d3d8, but a disadvantage of
having to fix anything twice, and probably they will get out of sync really
quickly. Also, d3d8 still has parts missing, and I'd prefer a single
implementation if possible. If we did this, wined3d could be deleted and a
huge code duplication would be required</li>

<li>(or 3.... Do nothing, and see if anyone else takes up the gauntlet.)</li>
</ol></p><p>

Now, I am not a 3d graphics programmer - I learnt d3d8 as I implemented it
(for wine) out of interest to see how things were done. I am happy to try to
do the same for d3d9, and would prefer approach (1). I have a few concerns
though - Mostly I havent done enough research to know if its possible, and I
may end up having a shared library with 2 implementations anyway... I havent
found any major stumbling block yet, but I havent researched it far enough
either.
</p><p>
My other concern is if I start doing it and have to give up due to work or
other pressures, I could leave a half migrated setup. I assume its
relavitevly easy with cvs to back out changes if this occurs, and I hope it
wont, but it is a concern.
</p><p>
I'd appreciate thoughts before I start (especially Lionels, AJ's etc) - I'm
only just getting back into wine programming again hence my interest.
</p></quote>

<p>Quickly the conversation turned away from the technical matter
at hand to whether or not Wine should be breaking big things like
DirectX as things are restructured.  Things like maintaining separate
development branches were discussed, but nothing conclusive was
decided.  Lionel Ulmer thought the growing pains were worth it:</p>
<quote who="Lionel Ulmer"><p>

Well, why could we not live with DX8 / DX9 breakage for some time ? At the
time D3D was resurected, it was broken for most of the time (and probably
still is :-) ).
</p><p>
And if someone disappears from development, it's just more motivations for
others to pick up the work and continue (which would be more problematic
with branches as this branch, if unmaintained, could really wither away
without anyone working on it).</p></quote>

<p>The discussion then turned back into how Wine should be stabilized. 
The ultimate decision on how to proceed is up to Alexandre and he
stayed out of the discussion.  In the past it seems the direction is
to complete the major items on the to-do and then begin a period of
stabilizing everything in anticipation of a 1.0 release.  It's up to
Alexandre whether any interfaces get broken enroute to that that goal.
Alexandre has quite a good track record of not breaking things while
major reorganizations are being done and that's likely to continue.
A release management plan taking into account different
branches hasn't been formalized yet and seems to be a bridge that 
will be crossed when we get there.</p>

<p>With regard to the DirectX direction, Jason went on to begin
working on a new wined3d framework to encompass common elements
between different versions.  </p>
 
</section>
<section 
	title="FreeBSD Breakage Fixed" 
	subject="Re: dlls/winsock/socket breakage"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/09/0296.html" 
	posts="8"
	startdate="09 Sep 2004 00:00:00 -0800"
	enddate="13 Sep 2004 00:00:00 -0800"
>
<topic>Ports</topic>
<mention>Gerald Pfeifer</mention>
<mention></mention>

<p>Last week we mentioned building on FreeBSD was broken 
(WWN <a href="http://www.winehq.com/?issue=239#FreeBSD%20Breakage%20-%20IPX%20Packets">#239</a>)
because of a patch that that changed IPX networking in a way that was specific
to Linux.  Gerald Pfeifer was working with Roderick Colenbrander on a fix but
the thread hadn't wrapped up by the end of the week.  Roderick then dug into
it and described the problem and how to go about fixing it:</p>
<quote who="Roderick Colenbrander"><p>
Currently I don't have access to the machine I use for wine stuff, so I
haven't been able to create a real patch. Anyway I'll try to assist you
fixing the problem as it isn't that difficult to fix.
</p><p>
There are three places that break Wine on FreeBSD:
<ul>
<li> WS2_Send</li>
<li> WS_getsockopt</li>
<li> WS_setsockopt</li></ul>
</p><p>
First the code in ws2_send isn't relevant to FreeBSD as the ipx sockaddr
structures are different in case of Linux and FreeBSD. Just add #ifdefs or
whatever Alexandre likes the most.
</p><p>
Next there are the WS_getsockopt/setsockopt functions. In the getsockopt
fuction we need to retrieve the ipx packet type and we do the opposite in
setsockopt. The code that you need to place in both functions looks something
like this:
<ul><code>
//getsockopt code<br />
struct ipx val;<br />
getsockopt(fd, 0, SO_DEFAULT_HEADERS, &amp;val, sizeof(struct ipx));<br />
*opt_val = (int)val.ipx_pt;<br />
<br /><br />
//setsockopt code<br />
struct ipx val; </code>(perhaps we should retrieve this one using a getsockopt 
call and then we set modified one)<br />
<code>val.ipx_pt = *opt_val;<br />
setsockopt(fd, 0, SO_DEFAULT_HEADERS, &amp;val, sizeof(struct ipx));<br />
*opt_val = (int)val.ipx_pt;</code></ul>
</p><p>
I hope this helps.
</p></quote>
<p>Gerald put together a patch that checked to see if <code>__FREEBSD__</code>
was defined and then changed the getsockopt and setsockopt calls similar to
how Roderick suggested.  Alexandre didn't like checking for the platform
but suggested instead to check for features on the platform.  Gerald changed
his patch to define <code>SOL_IPX</code> and if it wasn't available to fall
back to what Roderick suggested.  </p><p>
Ironically, shortly after that it looks like another
patch was committed that broke FreeBSD in a different way.</p>



</section>
<section 
	title="Pager Status Update" 
	subject="Re: Pager Control: Rewritten"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/09/0441.html" 
	posts="4"
	startdate="15 Sep 2004 00:00:00 -0800"
	enddate="16 Sep 2004 00:00:00 -0800"
>
<topic>Status Updates</topic>
<mention></mention>
<mention>James Hawkins</mention>
<mention>Microsoft</mention>
<mention>Dimi Paun</mention>
<mention>Rob Shearman</mention>

<p>Rob Shearman, who's been doing a lot of controls work
recently, rewrote the 
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/pager/pager.asp">pager
control</a>.  Dimi Paun asked him to document the current
status of it,
<quote who="Dimitrie Paun">

Cool stuff. While this is still fresh in your mind,
an audit against comctrl v6.0 would be good too... :)</quote></p>

<p>James Hawkins asked what an audit would entail and Mike
Hearn explained:</p>
<quote who="Mike Hearn"><p>

Checking how complete the control is versus the latest build from 
Microsoft, then making a list of the missing messages, notifications and 
styles.
</p><p>
It's useful because they are so complex that if an app is misbehaving 
due to an unimplemented callback or style etc, you can go see what it 
might be.
</p><p>
Comctl 6 is the version that comes with Windows XP and is not 
redistributable. It's the one that implements theming.
</p></quote>

<p>Rob submitted a patch and noted the following things remain to
be implemented:</p>
<quote who="Robert Shearman"><p>
TODO:
<ul>
    <li>Implement repetitive button press.</li>
    <li>Adjust arrow size relative to size of button.</li>
    <li>Allow border size changes.</li>
    <li>Styles:
    <ul><li>
      PGS_DRAGNDROP</li></ul></li>
    <li>Notifications:
    <ul><li> 
     PGN_HOTITEMCHANGE</li></ul></li></ul></p></quote>
 
</section>
<section 
	title="Spying on COM" 
	subject="spying COM"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/09/0303.html" 
	posts="2"
	startdate="10 Sep 2004 00:00:00 -0800"
	enddate="13 Sep 2004 00:00:00 -0800"
>
<topic>RPC / COM / OLE</topic>
<mention></mention>

<p>Saulius Krasuckas passed along a link that's probably worth
making a note of:</p>
<quote who="Saulius Krasuckas"><p>
Am not sure would it be of any use for list members, but just some minutes
ago I've discovered "The COM spy".  Quite old stuff, but whatever:
<ul><a href="http://staff.develop.com/jasonw/comspy/default.htm">
http://staff.develop.com/jasonw/comspy/default.htm</a></ul></p></quote>

<p>Mike Hearn thought it could be a useful tool to add to someone's 
arsenal,
<quote who="Mike Hearn">
This certainly looks useful, thanks! I suspect it'll need at least 
CoTreatAsClass to be implemented to work on Wine, but that isn't too 
hard (it may even be done by now, been a while since I checked).
</quote></p>

 
</section></kc>
