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

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="300" date="02 Dec 2005 00:00:00 -0800" />
<intro> <p>This is the 300th issue of the Wine Weekly News publication.
Its main goal is to enjoy 100 inches (250cm) of snow. 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="208" size="442" contrib="85" multiples="41" lastweek="53">

<person posts="12" size="17" who="rob at codeweavers.com (Robert Shearman)" />
<person posts="12" size="11" who="julliard at winehq.org (Alexandre Julliard)" />
<person posts="10" size="10" who="truiken at gmail.com (James Hawkins)" />
<person posts="8" size="12" who="bon at elektron.ikp.physik.tu-darmstadt.de (Uwe Bonnes)" />
<person posts="8" size="11" who="wine-devel at kievinfo.com (Vitaliy Margolen)" />
<person posts="7" size="38" who="cihan at uq.edu.au (Cihan Altinay)" />
<person posts="7" size="7" who="marcus at jet.franken.de (Marcus Meissner)" />
<person posts="6" size="24" who="fenix at club-internet.fr (Raphael)" />
<person posts="5" size="8" who="tom at dbservice.com (Tomas Carnecky)" />
<person posts="5" size="7" who="wine.dev at web.de (Detlef Riekenberg)" />
<person posts="5" size="7" who="Aric.Cyr at gmail.com (Aric Cyr)" />
<person posts="5" size="7" who="stefandoesinger at gmx.at (Stefan D&#246;singer)" />
<person posts="4" size="38" who="leidola at newcon.de (Olaf Leidinger)" />
<person posts="4" size="9" who="guile-listas at hispafuentes.com (=?iso-8859-1?b?RulsaXg=?= Ortega)" />
<person posts="3" size="11" who="curritoamores at hotmail.com (Curro Amores)" />
<person posts="3" size="8" who="hverbeet at gmail.com (H. Verbeet)" />
<person posts="3" size="6" who="a_villacis at palosanto.com (=?ISO-8859-1?Q?Alex_Villac=ED=ADs_Lasso?=)" />
<person posts="3" size="6" who="giulian2003 at hotmail.com (Marinescu-Ghetau Iulian)" />
<person posts="3" size="4" who="xerox_xerox2000 at yahoo.co.uk (L. Lenders)" />
<person posts="3" size="4" who="oldium.pro at seznam.cz (Oldrich Jedlicka)" />
<person posts="3" size="4" who="p.beutner at gmx.net (Peter Beutner)" />
<person posts="3" size="3" who="ivg2 at cornell.edu (Ivan Gyurdiev)" />
<person posts="3" size="3" who="eric.pouech at wanadoo.fr (Eric Pouech)" />
<person posts="3" size="3" who="twickline at gmail.com (Tom Wickline)" />
<person posts="3" size="2" who="m.goemmel at compulab.de (Markus Goemmel)" />
<person posts="3" size="2" who="wowbagger at sktc.net (David D. Hagood)" />
<person posts="2" size="11" who="james.trotter at gmail.com (James Trotter)" />
<person posts="2" size="9" who="mekaananth at gmail.com (Ananth M)" />
<person posts="2" size="5" who="rob at codeweavers.com (Rob Shearman)" />
<person posts="2" size="5" who="proski at gnu.org (Pavel Roskin)" />
<person posts="2" size="5" who="nguyenthetoan at gmail.com (Toan T Nguyen)" />
<person posts="2" size="4" who="mikael at pointlab.se (Mikael Lindqvist)" />
<person posts="2" size="4" who="frick at sc-networks.de (Christoph Frick)" />
<person posts="2" size="4" who="speeddymon at gmail.com (Dustin Navea)" />
<person posts="2" size="3" who="wijn at wanadoo.nl (Rein Klazes)" />
<person posts="2" size="3" who="h.davies1 at physics.ox.ac.uk (Huw D M Davies)" />
<person posts="2" size="3" who="Paul.Vriens at xs4all.nl (Paul Vriens)" />
<person posts="2" size="3" who="burnus at gmx.de (Tobias Burnus)" />
<person posts="2" size="2" who="dmitry at baikal.ru (Dmitry Timoshkov)" />
<person posts="2" size="2" who="lionel.ulmer at free.fr (Lionel Ulmer)" />
<person posts="2" size="1" who="vberon at mecano.gme.usherb.ca (Vincent B&#233;ron)" />
<person posts="1" size="18" who="juergenw_ at web.de (Juergen Wieczorek)" />
<person posts="1" size="12" who="alex at thehandofagony.com (=?UTF-8?B?IkFsZXhhbmRlciBOLiBTw7hybmVzIg==?=)" />
<person posts="1" size="8" who="thomas.mey at web.de (Thomas Meyer)" />
<person posts="1" size="4" who="eric.pouech at wanadoo.fr (Eric POUECH)" />
<person posts="1" size="3" who="fenix at club-internet.fr" />
<person posts="1" size="3" who="a.capiluppi at gmail.com (Andrea Capiluppi)" />
<person posts="1" size="2" who="teval0 at gmail.com (Andrei Barbu)" />
<person posts="1" size="1" who="paul at astro.gla.ac.uk (Paul Millar)" />
<person posts="1" size="1" who="juan_lang at yahoo.com (Juan Lang)" />
<person posts="1" size="1" who="jrliggett at cox.net (James Liggett)" />
<person posts="1" size="1" who="nicholasniro at gmail.com (Nicholas Niro)" />
<person posts="1" size="1" who="muziwind at yahoo.com.cn (mengzhuo li)" />
<person posts="1" size="1" who="a_villacis at palosanto.com (=?UTF-8?B?QWxleCBWaWxsYWPDrcKtcyBMYXNzbw==?=)" />
<person posts="1" size="1" who="wino at jentronics.com (Ron Jensen)" />
<person posts="1" size="1" who="dtremenak at gmail.com (Daniel Remenak)" />
<person posts="1" size="1" who="winehacker at gmail.com (Steven Edwards)" />
<person posts="1" size="1" who="dank at kegel.com (Dan Kegel)" />
<person posts="1" size="1" who="thunderbird2k at gmx.net (Roderick Colenbrander)" />
<person posts="1" size="1" who="fuchs.martin at gmail.com (Martin Fuchs)" />
<person posts="1" size="1" who="gvg at reactos.org (Ge van Geldorp)" />
<person posts="1" size="1" who="mike at codeweavers.com (Mike McCormack)" />
<person posts="1" size="1" who="david at l8s.co.uk (David Laight)" />
<person posts="1" size="1" who="jakob at vmlinux.org (Jakob Eriksson)" />
<person posts="1" size="1" who="darry at lahoreoye.com (Alani)" />
<person posts="1" size="1" who="daniel.skorka at stud.uni-karlsruhe.de (Daniel Skorka)" />
<person posts="1" size="1" who="daniel.skorka at stud.uni-karlsruhe.de (Daniel)" />
<person posts="1" size="1" who="oliver_stieber at yahoo.co.uk (Oliver Stieber)" />
<person posts="1" size="1" who="proskin at roinet.com (Pavel Roskin)" />
<person posts="1" size="1" who="andi at rhlx01.fht-esslingen.de (Andreas Mohr)" />
<person posts="1" size="1" who="brian.vincent at gmail.com (Brian Vincent)" />
<person posts="1" size="1" who="fgouget at free.fr (Francois Gouget)" />
<person posts="1" size="0" who="wine at troy.rollo.name (Troy Rollo)" />
<person posts="1" size="0" who="mjung at iss.tu-darmstadt.de (Michael Jung)" />
<person posts="1" size="0" who="saulius2 at ar.fi.lt (Saulius Krasuckas)" />
<person posts="1" size="0" who="hans at it.vu.nl (Hans Leidekker)" />
<person posts="1" size="0" who="wino at piments.com" />
<person posts="1" size="0" who="jacek at codeweavers.com (Jacek Caban)" />
<person posts="1" size="0" who="bobl at optusnet.com.au (Robert Lunnon)" />
<person posts="1" size="0" who="mike at plan99.net (Mike Hearn)" />
<person posts="1" size="0" who="richard at sheugh.com" />
<person posts="1" size="0" who="david.hagood at aeroflex.com (David D. Hagood)" />
<person posts="1" size="0" who="gslink at one.net (gslink)" />
<person posts="1" size="0" who="francis.uy at gmail.com (Frankie)" />

</stats>
<section 
	title="News: Nothing To See Here.. Move Along"
	subject="News"
	archive="http://www.winehq.org"
	posts="1"
>
<topic>News</topic>
<mention>WineHQ</mention>
<mention>Zack Brown</mention>
<mention>News</mention>

<p>Wow.. the 300th edition of the Wine Weekly News (aka Wine Traffic.)  I
really need to get a life, huh?  Originally I was planning on putting
together a little look back at threads we've covered, but I did that
a few weeks ago and published it as 
<a href="http://www.winehq.com/?issue=296#Beta:%20How%20We%20Got%20Here">WWN #296</a>
to celebrate the beta release.  If you didn't see it, check it out for
a look back at WWN and Wine.

</p><p>

This is probably a good time to remind everyone you can find this publication
in two different places.  The content is exactly the same, so you won't see
anything in one that isn't in the other.  The first location is
Zack Brown's Kernel Traffic site under the moniker 
<a href="http://www.kerneltraffic.org/wine/latest.html">Wine Traffic</a>.
You can also find it right on WineHQ as the
<a href="http://www.winehq.com/?issue=back">Wine Weekly News</a>.  If you
read one site and not the other, I'd encourage you to try out the other.
Of the two, I can guarantee WineHQ gets updated faster than Wine Traffic
since I can publish it there directly. 
</p>

</section>
<section 
	title="wine.git"
	subject="Git"
	archive="http://wiki.winehq.org/GitWine">
	<mention>WineHQ</mention>
<mention>Mike McCormack</mention>
<mention>cvs</mention>

posts="1"
>
<topic>Project Management</topic>
<p>One topic that hasn't appeared on the mailing lists is <tt>git</tt>.
A git repository for Wine and has been set up and some developers
have switched over to using it.  Is this the direction Wine's source
code management will take?  Well, it seems quickly on its way to becoming
a preferred way to working with Wine.  As long as the Git to CVS gateway
is working then CVS will remain an option.  Therefore, it's probably too 
early to say where things are headed, but it does seem to be working for 
everyone's every day use.  Alexandre seems to have switched over to it
and the commit messages appearing on 
<a href="http://www.winehq.com/pipermail/wine-cvs/">wine-cvs</a> have
changed in format to reflect the git commits.</p>
<p>In lieu of having a real thread to cover, I'll refer you to Mike McCormack's
<a href="http://wiki.winehq.org/GitWine">GitWine</a> page on the wiki.
He has instructions for getting git up and running.  </p>
<p>Interestingly, in a thread this week Alexandre mentioned we
now have an even older history of Wine than what's in CVS,
<quote who="Alexandre Julliard">
the new git repository on WineHQ contains all the releases I have, going
back to 1993. You can browse it at 
<a href="http://source.winehq.org/git">http://source.winehq.org/git</a>, or
see the GitWine page on the wiki for instructions on how to download
it.</quote></p>
</section>
<section 
	title="Direct3D &amp; WGL"
	subject=""
	archive="http://www.winehq.com/pipermail/wine-devel/2005-October/.html"
	posts=""
>
<topic></topic>
<mention>Nick Burns</mention>

<p>Aric Cyr wrote in to bring up an idea he had asked about a while ago:</p>
<quote who="Aric Cyr"><p>
A while back I had started to work on, and mostly completed, converting wined3d
to using WGL instead of directly accessing glX functions.  That was a few months
ago, and it was a pretty big change, but not too difficult as WGL and GLX are
very similar.
</p><p>
However, my patch is now greatly out of date thanks to the excellent work
progressing in wined3d.  I was just interested in getting some feedback on
whether anyone thinks this is something worth me continuing to pursue, or just
drop it?
</p><p>
As I see it, there are a few merits to having wined3d on wgl instead of glx.
The biggest one being that all the glX code won't be duplicated in multiple
places as it is now (dlls/opengl32 and dlls/wined3d).  Along with that comes
maintainability and consistency as all glX code would only exist in one place
and would be shared by all, applications and wined3d alike. Work-arounds for the
various glX revisions (recently discussed glx 1.2, 1.3, etc) would also be
localized to a single dll.
</p><p>
Of course, on the down side, we take a hit of one extra layer of indirection by
going through WGL.  However as WGL/glX functions are rarely called, this should
be a minimal of a performance hit.
</p><p>
All in all I think it would be worth while, but I'd still like to hear from
others so as not to waste (a lot!) of my time.</p></quote>

<p>Oliver Stieber wrote back:</p>
<quote who="Oliver Stieber"><p>
If wines WGL implementation is fully implemented then it may be a good idea 
switching to wgl, a wgl implemenatation would also make debugging much easier 
because wined3d can be run under windows to isolate problems.
</p><p>
Nick Burns also started work on a wgl version of wined3d that I haven't got 
around to fully merging yet, I can send you the patch.</p></quote>

<p>Aric replied,
<quote who="Aric Cyr">
Wine's WGL is well implemented, and probably more correct than what is
in wined3d currently (well, last time I checked anyways).</quote></p>

<p>There seemed to be a general consensus among other developers that
switching over to using WGL would be a good thing.</p>

</section>
<section 
	title="Linking libGL.so"
	subject="opengl support in wine"
	archive="http://www.winehq.com/pipermail/wine-devel/2005-December/042959.html"
	posts="15"
>
<topic>Integration</topic>
<mention>CodeWeavers</mention>

<p>Tomas Carnecky asked for Wine's OpenGL library usage to be changed:</p>
<quote who="Tomas Carnecky"><p>
I've had a discussion with someone through this list about wine and
libGL.so. It was
about wine using dlopen("libGL.so") instead of linking directly with
libGL.so.
</p><p>
I still don't understand why the wine developers have made this
decision. I'm again at
the point where I need to hook OpenGL (glX) functions ahd I have to
patch wine again
to make it work.
There is absolutely no reason not to link with libGL.so directly:
Even if you make OpenGL a hard dependency, nothing will break. Just announce
it well so that everybody understands the change and make
--disable-opengl the default
option. Now everyone can get wine and it will work out-of-the-box and
those who want
opengl can enable it (and the distribution packagers should make sure
wine depends on
opengl when building the package).
</p></quote>

<p>After a little discussion, Tomas described what he was trying to do
and what he was trying to avoid:</p>
<quote who=""><p>


I want to create fraps for linux. Using XShmGetImage() and friends is
too slow. So my first
approach was to create a fullscreen opengl app and do glReadPixels().
But this performs
very badly when there are two opengl applications running at the same
time (fps drops from
 >100 down to ~10).
So my last approach was to call glReadPixels() from the same opengl
context (the same
opengl application). This is why I need to hook glXSwapBuffers(). Of
course I could write a
whole libGL.so with all the required functions, rename the real libGL.so
to libRealGL.so,
dlopen libRealGL.so from my libGL.so and propagate the function calls to
the real opengl
implementation, then wine would dlopen libGL.so (my library) and I could
make whatever I
need in glXSwapBuffers(). But this is overkill!
</p><p>
Now what are my options besides modifying the wine source?
</p></quote>

<p>Mike Hearn gave a quick answer to the original question,
<quote who="Mike Hearn">

IIRC this was done so CodeWeavers can ship a GL enabled build. I don't see
any reason to change it. Weak linking is usually a good thing.
</quote></p>

<p>Mike McCormack explained the detail behind that:</p>
<quote who="Mike McCormack"><p>
ddraw.dll uses dlopen on libGL, because there's code in ddraw that can
work without libGL being present, and that is needed for some programs
(eg. IE6) to run.  dlopen'ing means Wine compiled on a machine with
libGL can be run on a machine without libGL.
</p><p>
opengl32.dll is directly linked with libGL, since it's not useful
without it.
</p><p>
If you're implementing your own shared library, you can probably try
dlopen'ing the functions you need from that first, then falling back to
dlopening from libGL.

</p></quote>

<p>Tomas had a suggestion:</p>
<quote who="Tomas Carnecky"><p>
At least you could do:
<ul><code>
 glHandle = dlopen("libGL.so", ...)</code></ul></p><p>

but later:
<ul><code>
 glXSwapBuffers_Ptr = dlsym(RTLD_NEXT, "glXSwapBuffers");</code></ul></p><p>

eg. use RTLD_NEXT instead of the real libGL handle. This would make it
possible to preload my own library but wouldn't change the weak linking.
In fact, that's how I've modified my local wine copy, and it worked.</p>
</quote>

<p>Mike McCormack and Stefan D&#246;singer both suggested he submit a patch
for that behavior.</p>
</section>
<section 
	title="Debugging Critical Section Lockups"
	subject="Debugging Critical Section lockups"
	archive="http://www.winehq.com/pipermail/wine-devel/2005-November/042914.html"
	posts="4"
>
<topic>Debugging</topic>
<mention>Rob Shearman</mention>

<p>
David Hagood ran into a tough problem with an app locking up:</p>
<quote who="David Hagood"><p>

I may have a repeatable case of an error in locking critical sections, 
so I'd like some pointers as to how to debug this.
</p><p>
The case occurs with the installer for Delorme Street Atlas 5 - on my 
2GHz Athlon desktop it runs without a hitch, but on my oooooold slow 
laptop (how old is it? It's sooooo old, it used PIO for the disk!) the 
program locks up 100% of the time at startup, with 2 threads trying to 
take different critical section locks and dying. It looks like the 
standard deadlock condition: one thread tries to lock A-B-C, the other 
tries to lock A-C-B, and so they deadlock.
</p><p>
Are there any tricks to identifying who locked what where and in what order?
</p></quote>


<p>Rob Shearman had a quick tip for identifying what might be going on,
<quote who="Robert Shearman">
Unless the installer is using TryEnterCriticalSection, I would expect 
CPU utilisation to be 0% when deadlocking. Relay logs generally give the 
best clues in this kind of situation.</quote></p>


<p>David hypothesized:</p>
<quote who="David Hagood"><p>

Yes, *once the deadlock occurs* the CPU drops to 0%. The issue (I think) 
  is more along the lines of this:
</p><p>
On fast CPU:
<ol>

<li>Thread 1 locks resource A, does something, locks B, unlocks B, unlocks A.
</li>

<li>Thread 2 locks B, does something, locks A, does something, unlocks  C, A.
</li>
</ol>
</p><p>
On slow machine:
<ol>

<li>Thread 1 locks resource A, does something.  </li>

<li>Context switch.  </li>

<li>Thread 2 locks B, does something.  </li>

<li>Context switch </li>

<li>Thread 1 tries to lock B and blocks.  </li>

<li>Context switch.  </li>

<li>Thread 2 tries to lock A and blocks.  </li>

<li>Deadlock.  </li>

</ol>
</p><p>
In other words, on the fast CPU the deadlock does not happen because 
thread 1 gets everything done before thread 2 starts. On the slow 
machine, thread 2 starts while thread 1 is still doing stuff.
</p></quote>

<p>Rob outlined the options available, none of which are particularly easy
or appealing:</p>

<quote who="Robert Shearman"><p>
Yep, example of what not to do in concurrent programming. You should 
make a note of the order in which locks are taken and always take the 
locks in that order and always release them in the opposite order.
</p><p>
You have several options from here:
<ol>
<li> File a bug report with the maker of the application.</li>
<li> Find a function that B uses just before it locks that A doesn't use 
and add a Sleep call. Obviously this kind of fix won't be accepted into 
Wine.</li>
<li> Do tests to try to find a function that A uses that is much slower on 
Wine and try to fix it.</li></ol>

</p></quote>

</section>
<section 
	title="Installing the Mozilla ActiveX Control"
	subject="Does the Windows version of Mozilla need to be installed to use the Mozilla ActiveX plugin?"
	archive="http://www.winehq.com/pipermail/wine-devel/2005-November/042878.html"
	posts="5"
>
<topic>Web/HTML</topic>
<p>The Mozilla ActiveX control is currently used when an application
requires a <tt>WebBrowser</tt> control to embed OLE documnents, namely HTML,
within an application.  Ongoing work by Jacek Caban to implement
MSHTML.DLL and SHDOCVW.DLL will hopefully obviate the need for it, but
that work isn't complete enough yet (although Jacek sent about a
bizillion patches last week.)  That led David Hagood to ask this week:</p>
<quote who="David Hagood"><p>
Does the Windows version of Mozilla need to be in place for the Mozilla 
Active X control to work, or is there a way to point the control at my 
Linux install of Mozilla?</p></quote>

<p>Aric Cyr replied:</p>
<quote who="Aric Cyr"><p>
Yup, you'll need to install a win32 version of mozilla.  There is a decent
little Mozilla ActiveX HOWTO at:<ul>
<a href="http://gentoo-wiki.com/HOWTO_Install_and_update_World_Of_Warcraft_with_wine">
http://gentoo-wiki.com/HOWTO_Install_and_update_World_Of_Warcraft_with_wine</a>
</ul>
</p><p>
(Installing Active X for the new Patchsystem)
</p>
</quote>

<p>Jacek pointed out that was actually incorrect and it was easier,
<quote who="Jacek Caban">
Mozilla ActiveX Control doesn't need any version of Mozilla. It just uses
Gecko (Mozilla's engine), which is provided with it, so you don't have
to install anything else.</quote></p>

</section>
<section 
	title="MSVCRT Clashes With LibC"
	subject="Latest CVS download opensolaris, AMD 64, build errors"
	archive="http://www.winehq.com/pipermail/wine-devel/2005-November/042817.html"
	posts="3"
>
<topic>Ports</topic>
<mention>Microsoft</mention>

<p>
David Clack asked a question this week about a compile problem in 
MSVCRT, Microsoft's Visual C runtime which is comparable to glibc or
libc on other systems:</p>
<quote who="David Clack"><p>

I'm on OpenSolaris B27, on an AMD 64 system, I'm getting these errors from the build.
</p><p>
I've tried to google a solution for a week but no luck.
<ul>(<i>ed. note: output shortened</i>)<br />
<code>
ld: fatal: symbol `_environ' is multiply-defined:
        (file /usr/lib/crt1.o type=OBJT; file data.o type=OBJT);<br />
ld: fatal: File processing errors. No output written to msvcrt.dll.so</code>
</ul>
</p><p>

Any suggestion to fix would be appreciated.
</p></quote>

<p>This problem actually comes up from time to time.  Mike McCormack 
explained the standard workaround:</p>
<quote who="Mike McCormack"><p>

There's probably an _environ defined in msvcrt and your libc.  Have a
look through the msvcrt code for the _environ symbol, and try change it
to something like MSVCRT_environ.  We do that for other symbols in
msvcrt that conflict with glibc, so you should be able to find an
example to copy.
</p></quote>

<p>Bob Lunnon gave a pointer to his Wine-on-Solaris web site:</p>
<quote who="Robert Lunnon"><p>

Did you apply the patches from 
<a href="http://www.blastwave.org/wine">
http://www.blastwave.org/wine</a> ?</p></quote>


</section>
<section 
	title="Installing the Mozilla ActiveX Control"
	subject="Does the Windows version of Mozilla need to be installed to use the Mozilla ActiveX plugin?"
	archive="http://www.winehq.com/pipermail/wine-devel/2005-November/042878.html"
	posts="5"
>
<topic>Web/HTML</topic>
<p>The Mozilla ActiveX control is currently used when an application
requires a <tt>WebBrowser</tt> control to embed OLE documnents, namely HTML,
within an application.  Ongoing work by Jacek Caban to implement
MSHTML.DLL and SHDOCVW.DLL will hopefully obviate the need for it, but
that work isn't complete enough yet (although Jacek sent about a
bizillion patches last week.)  That led David Hagood to ask this week:</p>
<quote who="David Hagood"><p>
Does the Windows version of Mozilla need to be in place for the Mozilla 
Active X control to work, or is there a way to point the control at my 
Linux install of Mozilla?</p></quote>

<p>Aric Cyr replied:</p>
<quote who="Aric Cyr"><p>
Yup, you'll need to install a win32 version of mozilla.  There is a decent
little Mozilla ActiveX HOWTO at:<ul>
<a href="http://gentoo-wiki.com/HOWTO_Install_and_update_World_Of_Warcraft_with_wine">
http://gentoo-wiki.com/HOWTO_Install_and_update_World_Of_Warcraft_with_wine</a>
</ul>
</p><p>
(Installing Active X for the new Patchsystem)
</p>
</quote>

<p>Jacek pointed out that was actually incorrect and it was easier,
<quote who="Jacek Caban">
Mozilla ActiveX Control doesn't need any version of Mozilla. It just uses
Gecko (Mozilla's engine), which is provided with it, so you don't have
to install anything else.</quote></p>

</section>
<section 
	title="Quake 2 Evolved &amp; Winelib"
	subject="A working winelib application"
	archive="http://www.winehq.com/pipermail/wine-devel/2005-December/042975.html">
	posts="1"
>
<topic>Winelib</topic>
<p>It's been a while since we've seen someone mention using Winelib (maybe
because there's hardly any documentation?), but this week Toan Nguyen 
wrote in to mention a working application:</p>
<quote who="Toan Nguyen"><p>
This is to let you know that I'm porting Quake 2 Evolved (Q2E) program
to Linux using winelib. It compiles and works beautifully, at least on
my PentiumM laptop (I actually link with native linux libjpeg, zlib,
openal and dl at the compile time, winelib is used for opengl, winmm
and wsock32). The author has allowed my linux commit to the CVS. More
information on Q2E can be found at www.quake2evolved.com. The specific
discussions about linux Q2E can be found here:
<ul>
<li><a href="http://www.quake2evolved.com/blurforum/showthread.php?s=4d42894a75fed08e372d74cff9a849cf&amp;threadid=2038">
http://www.quake2evolved.com/blurforum/showthread.php?s=4d42894a75fed08e372d74cff9a849cf&amp;threadid=2038</a></li>

<li><a href="http://www.quake2evolved.com/blurforum/showthread.php?s=4d42894a75fed08e372d74cff9a849cf&amp;threadid=2043">
http://www.quake2evolved.com/blurforum/showthread.php?s=4d42894a75fed08e372d74cff9a849cf&amp;threadid=2043</a></li></ul>
</p><p>
There are two small problems left that I hope the wine developer can
test and help. Browsing the save or load games menu is quite sluggish.
I don't know why. Also, I don't have an AMD64 system to test this on.
If someone here would like to help out, I'm grateful.</p></quote>
</section></kc>
