WineHQ

World Wine News

All the news that fits, we print.

08/06/2004
by Brian Vincent
Issue: 234

XML source
More Issues...

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


This week, 147 posts consumed 6285 K. There were 55 different contributors. 30 (54%) posted more than once. 33 (60%) posted last week too.

The top 5 posters of the week were:

  1. 14 posts in 41K by Mike Hearn
  2. 12 posts in 31K by Dmitry Timoshkov
  3. 8 posts in 24K by Jeroen Janssen
  4. 7 posts in 27K by Ivan Leo Puoti
  5. 6 posts in 16K by Robert Shearman

News: CodeWeavers iTunes Beta 07/31/2004 Archive
News

CodeWeavers announced 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 that closely mirrors the press release. It appears only some aspects of iTunes are 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 and #231 .

Also appearing in the news this week was more vaporous discussion of Project David . Network World Fusion reported more details on the project, including some quotes from CodeWeavers' 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 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.


USB Support.. or Lack Thereof 07/30/2004 Archive
IO Architecture

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.


c:\\windows is not accessible Error 08/01/2004 Archive
Filesystems

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 nonexistent ~/.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 (i.e. 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?


More Winecfg To Do's 08/01/2004 Archive
Configuration

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:

  • 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 ''
  • Browse in the "Add/Edit drive" dialog is a WRITEME
  • 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.
  • "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.
  • The Add/Remove application buttons are *way* too big!
  • Obviously, once audio autodetection has been moved into the drivers we need to kill the audio tab.
  • 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"
  • We ask the user to understand a magic * symbol to set the default - what is up with that?
  • 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.
  • We have way too many (e.g., more than zero) tree controls in this app.
  • Drive mappings list is really unclear, there's no separation between the "Drive X:" label and the unix path it's mapped to.

Basically I'd recommend reading the GNOME 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.


Debugging With a Map File 07/30/2004 Archive
Debugging

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 for his available code.


All Kernel Cousin issues and summaries are copyright their original authors, and distributed under the terms of the
GNU General Public License, version 2.0.