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

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="234" date="06 Aug 2004 00:00:00 -0800" />
<intro> <p>This is the 234th issue of the Wine Weekly News publication.
Its main goal is to slurp loudly. 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="147" size="6285" contrib="55" multiples="30" lastweek="33">

<person posts="12" size="31" who="Dmitry Timoshkov" />
<person posts="14" size="41" who="Mike Hearn" />
<person posts="8" size="24" who="Jeroen Janssen" />
<person posts="7" size="27" who="Ivan Leo Puoti" />
<person posts="6" size="20" who="Filip Navara" />
<person posts="6" size="16" who="Robert Shearman" />
<person posts="5" size="35" who="Chris Morgan" />
<person posts="5" size="14" who="Dimitrie O. Paun" />
<person posts="5" size="13" who="Alexandre Julliard" />
<person posts="4" size="74" who="James Hawkins" />
<person posts="4" size="18" who="Shachar Shemesh" />
<person posts="4" size="12" who="Andreas Mohr" />
<person posts="4" size="10" who="Vincent B&#233;ron" />
<person posts="4" size="10" who="Tobias Burnus" />
<person posts="4" size="10" who="Kevin Koltzau" />
<person posts="3" size="47" who="(markus.amsler)" />
<person posts="3" size="8" who="Sylvain Petreolle" />
<person posts="3" size="8" who="Marcus Meissner" />
<person posts="2" size="5725" who="Joe Gainey" />
<person posts="2" size="12" who="David Lee Lambert" />
<person posts="2" size="6" who="Michael Jung" />
<person posts="2" size="6" who="Dan Timis" />
<person posts="2" size="5" who="Ferenc Wagner" />
<person posts="2" size="5" who="Yorick Hardy" />
<person posts="2" size="5" who="Francois Gouget" />
<person posts="2" size="4" who="Duane Clark" />
<person posts="2" size="4" who="Alex Zeiger" />
<person posts="2" size="4" who="Uwe Bonnes" />
<person posts="2" size="4" who="Lionel Ulmer" />
<person posts="1" size="7" who="Michael Chang" />
<person posts="1" size="6" who="Jon Griffiths" />
<person posts="1" size="5" who="Joshua Crawford" />
<person posts="1" size="3" who="Stephen Ogletree" />
<person posts="1" size="3" who="Jens Collin" />
<person posts="1" size="3" who="Henning Gerhardt" />
<person posts="1" size="3" who="Yorick Hardy" />
<person posts="1" size="3" who="Chipzz" />
<person posts="1" size="2" who="Robert Reif" />
<person posts="1" size="2" who="Mike McCormack" />
<person posts="1" size="2" who="Hans Leidekker" />
<person posts="1" size="2" who="Niek Beernink" />
<person posts="1" size="2" who="Nick Capik" />
<person posts="1" size="2" who="Christian Costa" />
<person posts="1" size="2" who="Santosh Siddheshwar" />
<person posts="1" size="2" who="Diego Petten&#242;" />
<person posts="1" size="2" who="Fabian Cenedese" />
<person posts="1" size="2" who="Dan McGhee" />
<person posts="1" size="2" who="Angelos D. Keromytis" />
<person posts="1" size="2" who="James Supancic" />
<person posts="1" size="1" who="Grant Williamson" />
<person posts="1" size="1" who="Steven Edwards" />
<person posts="1" size="1" who="Scott W Gifford" />

</stats>
<section 
   title="News: CodeWeavers iTunes Beta" 
   subject="News"
   archive="http://www.codeweavers.com/site/about/general/press/?id=20040803"
   posts="2"
   startdate="31 Jul 2004 00:00:00 -0800"
   enddate="06 Aug 2004 00:00:00 -0800"
>
<topic>News</topic>
<mention>CodeWeavers</mention>
<mention></mention>
<mention>codeweavers</mention>
<mention>Microsoft</mention>
<mention>News</mention>

<p>CodeWeavers 
<a href="http://www.codeweavers.com/site/about/general/press/?id=20040803">announced</a> 
a pre-beta version of CrossOver Office 3.1.  The big announcement here can be 
summed up pretty succinctly - iTunes support.  CNet also has 
<a href="http://news.com.com/Start-up+to+make+iTunes+sing+on+Linux/2100-1041_3-5293915.html">an article</a>
that closely mirrors the press release.  It appears only some aspects of
iTunes is working, but more support is on the way:</p>
<quote who="Codeweavers"><p>
With iTunes support, CrossOver Office users will be able to download and 
organize songs from the iTunes Music Store. Soon they will also be able to 
plug their iPod into their Linux PC for music transfers and other 
jukebox-related tasks. 
</p></quote>

<p>In terms of Wine, a lot of this work has already made it back in. 
One of the biggest additions was work on Microsoft Installer support.
We covered that a few weeks ago in issues
<a href="http://www.winehq.com/?issue=230#Microsoft%20Installer%20Work">#230</a>
and <a href="http://www.winehq.com/?issue=231#Status%20of%20MSI">#231</a>.</p>

<p>Also appearing in the news this week was more vaporous discussion of 
<i>Project David</i>.  Network World Fusion 
<a href="http://www.nwfusion.com/news/2004/0803linuxstart.html">reported 
more details</a> on the project, including some quotes from CodeWeaver's
Jeremy White:</p>
<quote who="Jeremy White"><p>
Part of the problem has been the secrecy surrounding the David development, 
said Jeremy White, CEO of CodeWeavers in St Paul, Minn. "They're breaking 
some unwritten rules of the open-source economy," White said. "That's why 
people are incensed about it."
</p><p>
"When we write a DLL, (dynamic link library) we share it with everyone," White 
said of his company. "What they're going to do is write a really cool 
GDI32.DLL and share it with no one."
</p><p>
SpecOps Labs will adhere to Wine's software license, but its ultimate goal is 
to create a completely proprietary product, the company says. 
</p></quote>

<p>GDI is Microsoft's 
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/gdi.asp">Graphics Device Interface</a>
and it's one of the low-level components of Windows.  Basically it serves
as the layer between application level code and devices that
render things like text and pictures.</p> 

</section>
<section 
	title="USB Support.. or Lack Thereof" 
	subject="USB?"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/07/0638.html" 
	posts="7"
	startdate="30 Jul 2004 00:00:00 -0800"
	enddate="31 Jul 2004 00:00:00 -0800"
>
<topic>IO</topic>
<topic>Architecture</topic>
<mention>LinuxWorld</mention>
<mention></mention>
<mention>Aric Stewart</mention>

<p>Alex Zeiger inquired about what would be involved with adding
USB support to Wine, 
<quote who="Alex Zeiger">
I'm interested in possibly working on USB support for Wine. I'm not 
particularly familiar with USB programming, but I'm fluent in C and C++. 
Where do I start?</quote></p>

<p>Wine already provides hooks to access serial and parallel devices and
a mechanism for USB would be similar.
Andi Mohr was glad to see someone willing to tackle this area and
offered some input:</p>
<quote who="Andreas Mohr"><p>
Ah, FINALLY, after so many USB user requests, someone actually wants to get
something done :)
</p><p>
You need to figure out how Windows implements USB support (I don't have
the slightest clue either, sorry).
Try searching on 
<a href="http://search.microsoft.com">http://search.microsoft.com</a>
to figure out if you should
implement a VxD or .sys driver DLL in Wine or so.
I'm quite sure it should be possible somehow, without any operating system
ring 0 issues or so (after all you're writing your own Wine driver, so it
should be fairly doable).
On the Linux side, of course you should interface to the USB stack (fairly
obvious anyway ;).
One plea: please don't implement that for oldish 2.4.x USB stack, start with
the new 2.6.x USB stack (adding support for the older 2.4.x stack later
is pretty easy anyway IMHO).
It might be that you actually need to implement your own Wine-USB Linux driver
(for interfacing to the non-privileged Wine application side, via ioctls or so).
</p><p>
Good luck, and keep asking if you run into problems! 
</p></quote>

<p>Mike Hearn thought Aric Stewart had investigated this a bit already:</p>
<quote who="Mike Hearn"><p>
please talk to Aric first, I think he may
have some basic code already. Certainly he was looking into USB support
last week.
</p><p>
He's gone to LinuxWorld right now I think so you may have to wait a few
days. Researching what needs to be done would be a great way to get
started even if Aric has written some code, it's unlikely he'll get time
to finish it off properly soon so your help would certainly be appreciated!
</p></quote>

<p>Uwe Bonnes offered a place to start,
<quote who="Uwe Bonnes">
Probably by understanding how SetupApi enumerates Devices. Then you would
implement these Setupapi Functions by looking at /proc/bus/usb.</quote></p>

</section>
<section 
	title="c:\\windows is not accessible Error" 
	subject="c:\\windows is not accessible message"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/08/0005.html" 
	posts="2"
	startdate="01 Aug 2004 00:00:00 -0800"
>
<topic>Filesystems</topic>
<mention></mention>

<p>It's always fun trying to track down a problem you can't reproduce.
However, that isn't stopping Mike Hearn.  He asked for help this week
trying to track down why people are receiving a 
<tt>"c:\\windows is not accessible"</tt> message.  He posted some
details of the problem and asked if anyone else had run across it:</p> 
<quote who="Mike Hearn"><p>
It seems quite a few people have been seeing this message lately, and I'm
not sure why. This occurs even with a non-existant ~/.wine directory, so
wineprefixcreate should set up a correct system for them.
</p><p>
Examples:
<ul>
<li><a href="http://www.linuxquestions.org/questions/showthread.php?s=&amp;threadid=204255&amp;highlight=wine">
http://www.linuxquestions.org/questions/showthread.php?s=&amp;threadid=204255&amp;highlight=wine</a></li>
<li><a href="http://forums.devshed.com/archive/t-166324">
http://forums.devshed.com/archive/t-166324</a></li></ul>
</p><p>
This one seems to imply that the symlinks aren't being created properly:
<ul><a href="http://www.winehq.org/hypermail/wine-users/2004/07/0022.html">
http://www.winehq.org/hypermail/wine-users/2004/07/0022.html</a></ul>
</p><p>
but that sounds like a migration issue rather than something you'd
see with a clean .wine
</p><p>
If anybody has any ideas I'd love to track this one down. I am wondering
if it's to do with packaging, I have never been able to reproduce this
with Wine CVS builds (ie from source) but I know some packagers are still
shipping custom ~/.wine building scripts.
</p></quote>

<p>No one seemed to know what might be causing it, but Dan McGhee offered
some insight on how he ran across it:</p>
<quote who="Dan McGhee"><p>
I used to get this message when I first 
started using wine.  It came when I tried to use the windows partition 
AND when I had installed wine from a package.
</p><p>
I have not recreated it since I have learned to use a "fake" windows, 
but I suspect that this was a symptom of either a packaging error or the 
bug that got corrected (Bug 2356) in the latest snapshot.
</p></quote>

<p>Anyone else know?  Bueller?  Bueller?</p>
</section>
<section 
	title="More Winecfg To Do's" 
	subject="More winecfg todos"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/08/0007.html" 
	posts="3"
	startdate="01 Aug 2004 00:00:00 -0800"
>
<topic>Configuration</topic>
<mention></mention>
<mention>James Hawkins</mention>

<p>Last week Mike Hearn posted a list of things needing to be
fixed in Winecfg.  James Hawkins dove in and
made a lot of changes.  This week Mike replied with an even
bigger list of mostly UI issues:</p>
<quote who="Mike Hearn"><p>
You probably want to increase the size of the drive mappings list so it
fills the tab, currently there is just a lot of empty space at the top of
the pane now you removed the old stuff.</p><p>

Also we should kill the autodetect button. This is done by
wineprefixcreate these days, or should be.
</p><p>
Other things are:
<ul>
<li> Drive editing seems broken. The list box only updates the second time I
hit edit. err:winecfg:applyDriveChanges unable to set volume label for
devicename of 'H:\', label of ''</li>

<li> Browse in the "Add/Edit drive" dialog is a WRITEME</li>

<li> Build system isn't right: I did a cvs update but the res files weren't
recreated properly. I had to do a make clean to get the gui updates.</li>

<li> "Add Application" has poor usability: we always use a file browser
dialog box even though the most common use case is just "foo.exe", ie
the user knows the name and doesn't care about the location. Worse we
start in the c:\windows\desktop folder for some reason, meaning users
might accidentally select a .lnk file!
Ditto for Libraries tab.</li>

<li> The Add/Remove application buttons are *way* too big!</li>

<li> Obviously, once audio autodetection has been moved into the drivers we
need to kill the audio tab.</li>

<li> Libraries tab just has generally poor usability, actually. The first
item in the radio group is "Builtin" meaning that's the one users are
most likely to select, it should be "builtin, native" followed by "native,
builtin"</li>

<li> We ask the user to understand a magic * symbol to set the default - what
is up with that?</li>

<li> There are no helpful default entries in the drop down box for setting a
DLL override, and when you add one the tree does not expand so to actually
*set* it you have to expand the tree then select the new override.</li>

<li> We have way too many (eg, more than zero) tree controls in this app.</li>

<li> Drive mappings list is really unclear, there's no separation between the
"Drive X:" label and the unix path its mapped to.</li></ul></p><p>

Basically I'd recommend reading the GNOME HIG:
<a href="http://developer.gnome.org/projects/gup/hig/">
http://developer.gnome.org/projects/gup/hig/</a></p><p>

It's a very informative read. Obviously we have to use Win32 UI
conventions at least at first, but there's a lot of generically good
advice there. Well worth reading for anybody who is going to work on
winecfg.</p></quote>

<p>Thus far no one has volunteered to make the changes.</p>
</section>
<section 
	title="Debugging With a Map File" 
	subject="debugging a dll"
	archive="http://www.winehq.com/hypermail/wine-devel/2004/07/0634.html" 
	posts="4"
	startdate="30 Jul 2004 00:00:00 -0800"
	enddate="02 Jul 2004 00:00:00 -0800"
>
<topic>Debugging</topic>
<mention>Mike Hearn</mention>
<mention></mention>
<mention>Microsoft</mention>

<p>Dan Timis ran into an issue debugging a native Windows DLL,
<quote who="Dan Timis">

Someone sent me a debug version of a Windows dll and a map file.  I'm  
not a Windows programmer, and I'm not sure how to use the map file.   
For instance, I get a runtime error dialog. 
Are there any tools that could help understand better what's going on?   
 Are there any tools to demangle the C++ names?  I tried c++filt and not  
 surprisingly it did not understand these symbols.
</quote></p>

<p>Mike Hearn suggested using winedump to demangle MS VC++ names.  Fabian 
Cenedese suggested,
<quote who="Fabian Cenedese">
Look on the Microsoft site for crashfinder (it's from a MS Journal article).
It reads the mapfile(s), you can enter an address and it returns you the
matching function.</quote></p>

<p>Jeroen Janssen followed up with that with a tip:</p>
<quote who="Jeroen Janssen"><p>
You can also find this application on the CD of the book <i>Debugging 
Applications</i> by John Robbins (from the "MSDN Bugslayer" column).
</p><p>
See also 
<a href="http://www.wintellect.com/about/instructors/robbins/code.aspx">
http://www.wintellect.com/about/instructors/robbins/code.aspx</a> 
for his available code.</p></quote>

</section></kc>
