Wine Traffic #234 For 6�Aug�2004

By Brian Vincent

Table Of Contents

Introduction

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 www.winehq.org (http://www.winehq.org)

Mailing List Stats For This Week

We looked at 147 posts in 6285K.

There were 55 different contributors. 30 posted more than once. 33 posted last week too.

The top posters of the week were:

1. News: CodeWeavers iTunes Beta

31�Jul�2004�-�6�Aug�2004 (2 posts) Archive Link: "News"

Topics: News

People: Codeweavers,�Jeremy White,�CodeWeavers,�,�codeweavers,�Microsoft,�News

CodeWeavers announced (http://www.codeweavers.com/site/about/general/press/?id=20040803) a pre-beta version of CrossOver Office 3.1. The big announcement here can be summed up pretty succinctly - iTunes support. CNet also has an article (http://news.com.com/Start-up+to+make+iTunes+sing+on+Linux/2100-1041_3-5293915.html) that closely mirrors the press release. It appears only some aspects of iTunes is working, but more support is on the way:

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.

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 #230 (http://www.winehq.com/?issue=230#Microsoft%20Installer%20Work) and #231 (http://www.winehq.com/?issue=231#Status%20of%20MSI) .

Also appearing in the news this week was more vaporous discussion of Project David. Network World Fusion reported more details (http://www.nwfusion.com/news/2004/0803linuxstart.html) on the project, including some quotes from CodeWeaver's Jeremy White:

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."

"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."

SpecOps Labs will adhere to Wine's software license, but its ultimate goal is to create a completely proprietary product, the company says.

GDI is Microsoft's Graphics Device Interface (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/gdi.asp) 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.

2. USB Support.. or Lack Thereof

30�Jul�2004�-�31�Jul�2004 (7 posts) Archive Link: "USB?"

Topics: IO, Architecture

People: Alex Zeiger,�Andreas Mohr,�Mike Hearn,�Uwe Bonnes,�LinuxWorld,�,�Aric Stewart

Alex Zeiger inquired about what would be involved with adding USB support to Wine, " 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?"

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:

Ah, FINALLY, after so many USB user requests, someone actually wants to get something done :)

You need to figure out how Windows implements USB support (I don't have the slightest clue either, sorry). Try searching on http://search.microsoft.com 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).

Good luck, and keep asking if you run into problems!

Mike Hearn thought Aric Stewart had investigated this a bit already:

please talk to Aric first, I think he may have some basic code already. Certainly he was looking into USB support last week.

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!

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

3. c:\\windows is not accessible Error

1�Aug�2004 (2 posts) Archive Link: "c:\\windows is not accessible message"

Topics: Filesystems

People: Mike Hearn,�Dan McGhee,�

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 "c:\\windows is not accessible" message. He posted some details of the problem and asked if anyone else had run across it:

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.

Examples:

This one seems to imply that the symlinks aren't being created properly:

but that sounds like a migration issue rather than something you'd see with a clean .wine

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.

No one seemed to know what might be causing it, but Dan McGhee offered some insight on how he ran across it:

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.

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.

Anyone else know? Bueller? Bueller?

4. More Winecfg To Do's

1�Aug�2004 (3 posts) Archive Link: "More winecfg todos"

Topics: Configuration

People: Mike Hearn,�,�James Hawkins

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:

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.

Also we should kill the autodetect button. This is done by wineprefixcreate these days, or should be.

Other things are:

Basically I'd recommend reading the GNOME HIG: http://developer.gnome.org/projects/gup/hig/ (http://developer.gnome.org/projects/gup/hig/)

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.

Thus far no one has volunteered to make the changes.

5. Debugging With a Map File

30�Jul�2004�-�2�Jul�2004 (4 posts) Archive Link: "debugging a dll"

Topics: Debugging

People: Dan Timis,�Fabian Cenedese,�Jeroen Janssen,�Mike Hearn,�,�Microsoft

Dan Timis ran into an issue debugging a native Windows DLL, " 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. "

Mike Hearn suggested using winedump to demangle MS VC++ names. Fabian Cenedese suggested, " 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."

Jeroen Janssen followed up with that with a tip:

You can also find this application on the CD of the book Debugging Applications by John Robbins (from the "MSDN Bugslayer" column).

See also http://www.wintellect.com/about/instructors/robbins/code.aspx (http://www.wintellect.com/about/instructors/robbins/code.aspx) for his available code.

Sharon And Joy

Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at kernel.org. All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0.