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

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="254" date="24 Dec 2004 00:00:00 -0800" />
<intro> <p>This is the 254th issue of the Wine Weekly News publication.
Its main goal is to debate the Christmas Paradox: naughty or nice. 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="131" size="425" contrib="46" multiples="25" lastweek="25">

<person posts="13" size="43" who="Mike Hearn" />
<person posts="12" size="29" who="Alexandre Julliard" />
<person posts="10" size="44" who="Robert Shearman" />
<person posts="7" size="17" who="Mike Hearn" />
<person posts="6" size="19" who="Stefan Pfl&#252;ger" />
<person posts="5" size="20" who="Scott Ritchie" />
<person posts="5" size="17" who="Christian Costa" />
<person posts="5" size="16" who="Bill Medland" />
<person posts="5" size="14" who="Lionel Ulmer" />
<person posts="5" size="12" who="Jakob Eriksson" />
<person posts="4" size="14" who="Dmitry Timoshkov" />
<person posts="3" size="14" who="Jonathan Ernst" />
<person posts="3" size="10" who="Tony Lambregts" />
<person posts="3" size="9" who="Paul van Schayck" />
<person posts="3" size="7" who="Steven Edwards" />
<person posts="3" size="7" who="Ivan Leo Puoti" />
<person posts="2" size="13" who="Ivan Leo Puoti" />
<person posts="4" size="16" who="David G&#252;mbel" />
<person posts="2" size="7" who="Brian Vincent" />
<person posts="2" size="6" who="Chris Morgan" />
<person posts="2" size="5" who="Izak Burger" />
<person posts="2" size="4" who="Kenneth Porter" />
<person posts="2" size="4" who="Mike McCormack" />
<person posts="2" size="4" who="Ferenc Wagner" />
<person posts="1" size="5" who="Michael Stefaniuc" />
<person posts="1" size="4" who="Katia Maculan" />
<person posts="1" size="3" who="Alexander Yaworsky" />
<person posts="1" size="3" who="Jesse Allen" />
<person posts="1" size="3" who="MediaHost (TM)" />
<person posts="1" size="3" who="Stefan Munz" />
<person posts="1" size="3" who="Joris Huizer" />
<person posts="1" size="3" who="Robert Reif" />
<person posts="1" size="2" who="Dan Kegel" />
<person posts="1" size="2" who="Kuba Ober" />
<person posts="1" size="2" who="Raetus Egli" />
<person posts="1" size="2" who="Christian Britz" />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Per_Arnold_Bl=E5smo?=" />
<person posts="1" size="2" who="Dimitrie O. Paun" />
<person posts="1" size="2" who="Andreas Mohr" />
<person posts="1" size="2" who="Shachar Shemesh" />
<person posts="1" size="2" who="Juan Lang" />
<person posts="1" size="2" who="Rein Klazes" />
<person posts="1" size="2" who="Tom" />
<person posts="1" size="1" who="Pouya Yadegar" />

</stats>
<section
        title="News: CrossOver Office 4.1"
        subject="News"
        archive="http://crossover.codeweavers.com/pipermail/announce/2004-December/000028.html"
        posts="2"
        startdate="18 Dec 2004 00:00:00 -0800"
	enddate="24 Dec 2004 00:00:00 -0800"
>
<topic>News</topic>
<mention>CodeWeavers</mention>
<mention></mention>
<mention>codeweavers</mention>
<mention>News</mention>
<mention>developerWorks</mention>

<p>CodeWeavers 
<a href="http://crossover.codeweavers.com/pipermail/announce/2004-December/000028.html">announced 
CrossOver Office 4.1</a> this week.  You won't find support for any
new applications, but there's a ton of bugfixes.  As always, CodeWeavers
recommends keeping your existing installation if everything is working
fine for you.  Check out the 
<a href="http://www.codeweavers.com/site/products/cxoffice/change_log">changlog</a>
for a description of the bigger fixes.  One of the big problems in 4.0 included
high CPU usage for iTunes.  It seems that problem has been fixed and responsiveness
is greatly improved.  Version 4.1 has been slated for quite a few weeks now, 
but CodeWeavers does quite a bit of QA work before letting something out the
door.  Apparently this release almost got delayed again at the last minute
as Jeremy White explained:</p>
<quote who="Jeremy White"><p>
Seriously, we were all ready to go to gold, with the plan being
to ship this afternoon, when we got a beta report that made
us nervous.
</p><p>
I woke Alexandre up and asked him to look into it, with the
hopes that we could understand the issue well enough to go
ahead and ship.  So we'd either ship in 30 minutes if he
figured it out, or we'd ship tomorrow, after working feverishly
through the night... &lt;grin&gt;.
</p><p>
But the good news is that Alexandre did figure it out and
we shipped
</p></quote>

<p>More interesting were Jeremy's comments in the announcement
about some of the development on the next version:</p>
<quote who="Jeremy White"><p>
 You'll be happy to know that we're already hard at work on
 5.0, with Office 2003 support.  We're also seeing that the
 major Window management overhaul that Alexandre is in the middle
 of is addressing a lot of the nasty painting issues we've had
 through the years, so that will be exciting to bring you next year.
</p><p>
 We're also ready to launch a whole new set of tools around
 regression testing and broader Wine testing; I'm hopeful that
 next year is the year that Wine really hits is 'tipping' point,
 with most things starting to 'just work'.
</p></quote>

<p>IBM's developerWorks website has some of the best tech writing around.
This week an article showed up discussing emulation, 
<i><a href="http://www-106.ibm.com/developerworks/library/l-emulat.html?ca=dgr-lnxw02EmulatorCode">Write emulator-friendly Linux code</a></i>.  It's
actually a topic that I've discussed quite a bit with different people
and it's particularly interesting when you consider the recursive 
<i>Wine Is Not an Emulator</i> acronym.  When you begin implementing
a PE loader and mask system calls, it really is a form of emulation,
right?  Peter Seebach does a nice job of describing the different
emulation mechanisms and uses Wine as an example:</p>
<quote who="Peter Seebach"><p>
In the world of emulation, software emulators are where life gets interesting. 
A software emulator is not running your program on a virtual machine -- it's 
running it on the fly without a virtual machine. These programs work by 
setting up an environment in which a program's code can run normally, but 
attempts by the program to access the operating system get routed through an 
emulation layer of some sort. WINE is a great example (albeit for Windows), 
although it is officially not an emulator.</p></quote>

<p>Speaking of IBM, they just published one of their infamous Redbooks titled,
<i><a href="http://www.redbooks.ibm.com/abstracts/sg246380.html?Open">Linux
Client Migration Cookbook</a></i>.  See if you can spot the passing references
to Wine.  I guess this proves IBM knows Wine exists.. could you guys throw
a development team our way? </p>
<p>Merry Christmas!</p>

</section>

<section
        title="Safedisc and ntoskrnl"
        subject="Re: Add ntoskrnl.exe.so"
        archive="http://www.winehq.org/hypermail/wine-devel/2004/12/0578.html"
        posts="7"
        startdate="22 Dec 2004 00:00:00 -0800"
>
<topic>Architecture</topic>

<mention></mention>
<mention>WineHQ</mention>
<mention>ReactOS</mention>
<mention>cvs</mention>

<p>Ivan Leo Puoti put together some patches this week that were 
pretty interesting.  If you dig into Windows NT, you'll see there's
a low-level kernel mode that's normally off-limits to applications.
Lots of interesting things happen at this level, including controlling
device drivers.  At the core of this system lies ntoskrnl.exe.  Now,
Wine hasn't really needed to implement this because device drivers 
are handled as separate components that interact with the underlying
operating system.  The Safedisc driver for copy protection (used
by tons of games) is an exception - it's something that's best 
implemented by just using the native Windows driver.  To do this 
requires a limited subset of ntoskrnl.exe.  Ivan Leo Puoti submitted
some patches this week trying to put that all together.</p>

<p>Patch #1:</p>
<quote who="Ivan Leo Puoti"><p>
ChangeLog
<ul>
	Add support for loading nt native binaries</ul></p></quote>

<p>Patch #2:</p>
<quote who="Ivan Leo Puoti"><p>
<ul>
 Add ntoskrnl, only a few stub functions for now, so we have something to 
 work on. All the functions needed by safedisc are in the spec, we can't 
 implement them all as stubs at the moment because for two of them we 
 need defines from the ddk, I'll be sending a patch to add ntddk.h in 
 the near future.</ul></p></quote>

<p>Steven Edwards pointed out that the new ntoskrnl shouldn't import
any functions from kernel32.  Instead, the proper way to do it would
be to move kernel32 functionality into ntoskrnl.  Mike Hearn
disagreed though,
<quote who="Mike Hearn">
 This isn't ReactOS, ntoskrnl is just another DLL from the
 SafeDisc perspective. Its implementation details shouldn't matter.
</quote></p>

<p> Steven thought it would allow for more codesharing between
Wine and ReactOS, but Mike didn't think there was much to share.
Steven still thought it might be worth considering,
<quote who="Steven Edwards">
SafeDisc itself really needs very little but in the future we might support
more than just this one driver. I admit the amount of code we might be able
to share is limited I am just suggesting that we look at it now.
</quote></p>

<p>At any rate, Alexandre didn't commit the patches nor did he weigh in 
on the conversation.  Will ntoskrnl get added?  Stay tuned to a WineHQ
cvs server near you.</p>

</section>

<section 
	title="WineTools Updated" 
	subject="[Wine]Announcement of WineTools"
	archive="http://www.winehq.com/hypermail/wine-users/2004/12/1920.html" 
	posts="1"
	startdate="20 Dec 2004 00:00:00 -0800"
>
<topic>Configuration</topic>
<mention></mention>

<p>I'll admit, I don't really read the 
<a href="http://www.winehq.org/hypermail/wine-users">wine-users</a>
mailing list.  This little newsletter is about Wine <i>development</i>
after all.  However, every once in a while I check for interesting
posts and this week I found one by Joachim von Thadden:</p>

<quote who="Joachim von Thadden"><p> 

I want to announce the newly born WineTools. WineTools is an menu driven
installer for installing Windows programs under wine. This software lets
you install the following Windows software for Linux under WINE:
<ul>
    <li> DCOM98 </li>
    <li> IE6 </li>
    <li> Windows Core Fonts </li>
    <li> Windows System Software </li>
    <li> Office &amp; Office Viewer </li>
    <li> Adobe Photoshop 7, Illustrator 9, Acrobat </li>
    <li> Reader 5.1 </li>
    <li> many other programs </li></ul>
</p><p>
It also sets up your .wine directory in the correct way, downloads the
files to install from the web (only the free and shareware ones for
sure), installs Windows fonts and lets you uninstall and configure your
software. And it does much more than Sidenet, although it uses a part of
the configuration for IE6 (thanks for that!).
</p><p>
WineTools was initially written by Frank Hendriksen
&lt;frank_at_franksworld.net&gt; and was extended by me (Joachim von Thadden
&lt;thadden_at_web.de&gt; It is licensed under the GPL.
</p><p>
The actual version wt207jo works with wine-20041019 and wine-20040914.
Look at 
<ul>
<a href="http://www.von-thadden.de/Joachim/WineTools/">
http://www.von-thadden.de/Joachim/WineTools/</a></ul></p><p>

to get more informations and to download. Note that you should
definitely start with the "Base setup" and create a new fake Windows
drive. If you want to save your old .wine directory, you can use the
backup function of WineTools.

</p></quote>

</section>
<section 
	title="WINEprobe Initiative" 
	subject="Approving of the WINEprobe initiative"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/12/0254.html" 
	posts="13"
	startdate="20 Dec 2004 00:00:00 -0800"
	enddate="22 Dec 2004 00:00:00 -0800"
>
<topic>Project Management</topic>
<mention></mention>
<mention>Scott Ritchie</mention>

<p>David G&#252;mbel wanted some opinions about a project being
launched in the Stuttgart region of Germany:</p>
<quote who="David Gumbel"><p>

as my colleague Stefan Munz has already pointed out recently[1] on this 
list, Wirtschaftsforderung Region Stutgart GmbH (WRS) and us (ITOMIG) are 
launching an initiative called WINEprobe[2]. Its goal is to make local 
software vendors aware of the potential bussiness opportunity in a 
WINE-based port or a WINE/Linux version of their software. 
</p><p>
WRS is quite committed as far as Open Source is concerned[3], and is pushing 
OSS in the region since quite a time. It has co-organized, among others, 
the KDE World Summit 2004 in Ludwigsburg near Stuttgart[4]. The 
Perlworkshop 6.0 , GUADEC6 (GNOME Conference) [5], ApacheCon Europe and 
more than 40 other Open Source Events in the Stuttgart Region are organized 
or supported by the WRS as well. (You can find a description of WRS at the 
bottom of this mail.)
</p><p>
In order to make the WINEprobe initiative beneficial for the WINE project as 
much as possible, three things are in the making:
<ol>
<li> At the option of the respective software vendor whose product we'll be 
analyzing for WINE compatibility, Application Database Entries will be 
maintained by us once a software product has been analyzed for its 
compatibility with WINE.</li>

<li> Reports of successful porting or migration projects will be given back to 
the community as success stories. My colleage is already working on merging 
some success stories supplied by third parties (see [6]). </li>

<li> WRS has offered to help out in hosting the WINE developers conference 
Wineconf in 2005 in the Stuttgart area[7].</li></ol></p><p>


Mr. Schmid from WRS has asked me (please see the mail below) to provide some 
information about this initiative to the WINE community. He thinks (and I 
agree ;) that it would help us a great deal in making the campaign a 
success if the WINE community somehow "officially" (as official as a 
community can be :) approved of this initiative. So my question, on behalf 
of Mr. Schmid, is simply if there are objections against us saying that 
this initiative is approved of by the WINE community?
</p><p>

[1] <a href="http://www.mail-archive.com/wine-devel%40winehq.org/msg11549.html">
http://www.mail-archive.com/wine-devel%40winehq.org/msg11549.html</a>
</p><p>
[2] WINEprobe means be something like WINEtasting in english an maybe 
    "degustation de WINE" in french. 
</p><p>
[3] See
<a href="http://opensource.region-stuttgart.de/">
http://opensource.region-stuttgart.de/</a> (.de only, sorry)
</p><p>
[4] <a href="http://conference2004.kde.org/">
http://conference2004.kde.org/</a>
</p><p>
[5] <a href="http://2005.guadec.org/papers.html">
http://2005.guadec.org/papers.html</a>
</p><p>
[6] <a href="http://www.mail-archive.com/wine-devel%40winehq.org/msg11630.html">
 http://www.mail-archive.com/wine-devel%40winehq.org/msg11630.html</a>
</p><p>
[7] <a href="http://www.winehq.org/hypermail/wine-devel/2004/11/0647.html">
 http://www.winehq.org/hypermail/wine-devel/2004/11/0647.html</a>
</p></quote>

<p>A bit of discussion followed, mostly involving the name WINEprobe.  
Scott Ritchie suggested using PortWINE which has a nice connotation in 
both English and German.  I had a small suggestion about the endorsement
they asked for:</p>
<quote who="Brian Vincent"><p>
So as far as official endorsement.. I'm sure someone in the Wine
community will speak up if they disagree with anything.  (Conversely,
they won't speak up if they agree.)  The three projects you mentioned
all sound great and they're things that really should be worked on. 
So in the sense that stuff should get done - I think we all want that.
 That leads up to your question of whether the Wine community approves
of the initiative?  Well.. I'm not qualified to answer that question.
</p><p>
If you do contribute to Wine, we'll gladly add you to our acknowledgements page
( <a href="http://www.winehq.org/site/acknowledgement">
 http://www.winehq.org/site/acknowledgement</a> ).  Then you can say
things in press releases like, "WRS, an acknowledged Wine contributor,
....."   Anyone disagree with that idea?
</p></quote>


</section>
<section
        title="File Optimization"
        subject="Some performance stats"
        archive="http://www.winehq.org/hypermail/wine-devel/2004/12/0546.html"
        posts="1"
        startdate="21 Dec 2004 00:00:00 -0800"
>
<topic>IO</topic>

<mention></mention>

<p>Anyone want an optimization project?  Dmitry Timoshkov
uncovered something that should be looked at:</p>
<quote who="Dmitry Timoshkov"><p>
While debugging one of applications I'm working on I noticed a lot
of GetPrivateProfileString calls with the same file name but in
different case causes profile code to open and parse system.ini
again. I sent a patch which helps to find a cached file in that
case and do not parse it again.
</p><p>
I had a thought that another speed improvement might be to use
FindFirstFileW instead of CreateFileW/GetFileTime to retrieve
last modification time of a file. I wrote a test under Windows
to see which of FindFirstFileW or CreateFileW is faster. The test
is attached.
</p><p>
Here are the results (for 10000 loops) running the same binaries
in Wine and Windows 2000 SP4 (hard disks are the same in both
systems):
<ul>
Win2k SP4/NTFS volume:
  <ul>
    test_CreateFileW: P3/1GHz time elapsed 363 ms<br />
    test_FindFirstFileW: P3/1GHz time elapsed 547 ms</ul>

Wine/ext3 volume:
<ul>
    test_CreateFileW: P3/1GHz time elapsed 543 ms<br />
    test_FindFirstFileW: P3/1GHz time elapsed 1650 ms</ul></ul>
</p><p>
 CreateFileW is only 1.5 times slower in Wine than in Windows, that's
 really not bad (especially taking into account Wine boot time), but
 still there is a possibility for an improvement.
</p><p>
 FindFirstFileW is 3 times slower in Wine than CreateFileW, while it's
 only 1.5 times slower in Windows. This needs to be optimized.
</p></quote>
</section>

<section 
	title="Launching Apps"
	subject="Interface for working directories/launchers"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/12/0610.html" 
	posts="4"
	startdate="23 Dec 2004 00:00:00 -0800"
	enddate="24 Dec 2004 00:00:00 -0800"
>
<topic>Fixes</topic>
<mention></mention>

<p>Sometimes just launching an app can be a lot of trouble.  Mike
Hearn had an idea for making that easier and how to integrate it 
with the desktop:</p>
<quote who="Mike Hearn"><p>
Wine currently creates launchers (.desktop files) with an Exec line like
this:
<ul><code>
Exec=wine 'c:\games\supreme\supreme.exe'</code></ul></p><p>

But, some games expects to be run from its working directory. As working
directory typically doesn't matter to UNIX apps, some desktop environments
like GNOME don't let you set it. Really, this is a Wine specific issue.
</p><p>
So I'm wondering how we should fix this. The most obvious is a way to tell
Wine to change the working directory to the path of the EXE file before
running it, but we can't introduce command line switches any more and an
environment variable for this doesn't make much sense.
</p><p>
My proposal is to have a new winelib app "winemenulauncher" which simply
takes the working directory, program and arguments, and runs the program
but switching current directory first, ie the menu entry would look like:
<ul><code>
Exec=wine winemenulauncher c:\games\supreme supreme.exe</code></ul></p><p>

Hopefully this should let us fix the case of games like Dungeon Keeper
which actually crash when run from their install directory.
</p><p>
Does this sound sensible?
</p></quote>

<p>Alexandre had a different idea using a mechanism already in place,
<quote who="Alexandre Julliard">
  The right way is to use start.exe on the .lnk file.
</quote></p>

</section></kc>
