Wine Traffic #182 For 8�Aug�2003

By Brian Vincent

Table Of Contents

Introduction

This is the 182nd release of the weekly Wine Weekly News publication. Its main goal is to wistfully stare out the window and wonder how many more tee times I'll be able to get until the snow starts flying. 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.com (http://www.winehq.com)

Mailing List Stats For This Week

We looked at 118 posts in 336K.

There were 48 different contributors. 23 posted more than once. 20 posted last week too.

The top posters of the week were:

1. News: CrossOver Plugin 2.0, Linux Mag Blurb

2�Aug�2003�-�9�Aug�2003 (2 posts) Archive Link: "News"

Topics: News

People: Codeweavers,�Alexandre Julliard,�CodeWeavers,�,�codeweavers,�Jeremy White,�News,�TransGaming

CodeWeavers announced CrossOver Plugin 2.0 (http://www.codeweavers.com/about/press_releases/?id=20030805) . I found bits from the changelog more interesting than the press release, so I'll quote parts of that:

Change Log For CrossOver Plugin
2.0.2 - August 5, 2003

Interestingly enough, this release is 2.0.2 which alludes to some beta versions receiving widespread testing. Moving over to the LGPL codebase is a very significant change; perhaps its an indication a bunch of patches are on the way from CodeWeavers. Oh, and this release also has support for embedded devices (http://www.codeweavers.com/products/crossover/embedded.php) .

Linux Magazine put together a small article about Linux on the desktop (http://www.linux-mag.com/2003-05/linuxdesktop_01.html) . TransGaming is briefly mentioned on the first page. The third page has quotes from CodeWeaver's Jeremy White and Alexandre Julliard.

2. Disney Uses Wine

5�Aug�2003 (9 posts) Archive Link: "wine in the press :)"

Topics: News

People: eweek,�Mike McCormack,�Vincent Beron,�eWeek,�,�News

Normally I put articles like this in the News section, however I felt this was more signicant than most and didn't want the importance to get lost in the headlines. Plus, a thread did spawn on wine-devel about it.

There's a nice writeup over at eWeek about Disney (http://www.eweek.com/article2/0,3959,1210083,00.asp) rolling out CrossOver Office to support Photoshop. It's a great case study in how to effectively use Linux on the desktop and how Wine can help achieve that goal. Some selected paragraphs:

The project has paid off tremendously for Disney this year alone. Development of the porting solution, including site licenses, cost Disney less than $15,000. Had he opted to run Photoshop on Windows machines, it would have cost upward of $50,000 just in annual licensing fees, said Brooks. He estimates support would have been an additional $40,000 a year.

Although Linux has proven success on servers, it is just beginning to gain ground on enterprise desktops, experts said. Much of this has to do with emulators such as Wine, which enable companies to run Windows-only applications on Linux, said Chad Robinson, an analyst at Robert Frances Group Inc., a research company in Westport, Conn.

"Wine has always been an important element in considering Linux deployment on the desktop in corporate environments because desktop product vendors have simply not kept pace with server product vendors in porting their products," Robinson said. "Although there are a few methods of emulation available, Wine is one of the most complete and effective; and while not every application runs perfectly, enough do that many companies end up using it at some point."

This also started a long thread on Slashdot. I find it amazing that so many people "get it" now. People were quick to point out Wine really isn't an emulator and it doesn't require Windows. Vincent Beron wondered if they were using a special version of CrossOver Office. Mike McCormack said they weren't, " They are using standard Crossover Office version 2.0.1. "

3. Beginnings of Microsoft Installer Support

6�Aug�2003�-�7�Aug�2003 (4 posts) Archive Link: "partial implementation of msi.dll"

Topics:

People: Mike McCormack,�Greg Turner,�,�Microsoft

Mike McCormack posted a patch with a lot of new code and announced, " This is a partial implementation of the Microsoft Installer (msi.dll). At the moment, it is capable of querying an MSI database with read only SQL queries, but can't use it to install anything."

Greg Turner was glad to see the work:

Cool!

But "Micorosft Installer" might not be the most appropriate name for this implementation, eh? :P How about "Mike's Sexy Installer" ;)

Having clearly delved into this deeper than most of us, how complete would you say the documentation for MSI is? What do you think is the future outlook of this work?

Mike wrote back with more details on the MSI work and it's direction:

The documentation for MSI is fairly incomplete. The file format was mostly undocumented, but it looks like things get better as they get more abstract ;)

Fortunately it seems fairly well structured. The database and installer parts are cleanly seperated from each other.

The next steps are:

There's undocumented interaction with shell32 to create "Advertised Shortcuts", which are evil shortcuts that contain an identifier that only MSI can understand. If you look through SHELL32.DLL from Windows 2000, you can see it links to MSI.DLL.

However, now that the database is understood, the main installer loop is a little easier... it appears that you just iterate over the "Action" tables, and do the actions in the order specified.

I don't have lots of time to work on this at the moment, so if somebody wants to have a go, I'm happy to help them out.

ps. maybe we can just call it the Wine installer...

Greg thought maybe the code generated by the second parser would be fine to include even if it wasn't portable "so long as the sources to regenerate them are available to those who have the right tools " .

4. Windows API DB

3�Aug�2003�-�5�Aug�2003 (10 posts) Archive Link: "Windows API db / find APIs missing for a given app"

Topics: Documentation

People: David Miller,�Juan Lang,�

David Miller announced:

Recently I spent some time on this again and would like anyone interested in the database to take a look and email me comments. (What's good, how it can be better, and what features could be there, but aren't) Currently the web interface consists of a few forms which do the following:

  1. Compare imports or exports between two windows versions. This will output all APIs imported or exported by a dll you specify along with which version exports that API. Example: you specify wine and windows95 as windows versions. Each API will say it is exported by wine only, win95 only, or both. It is color coded in the hope of making it slightly more readable.
  2. Perform general queries. This just does SQL queries based on the criteria you specify. You can query by any or all fields.
  3. Find unimplemented APIs for a given program. This locates all APIs imported by a specified application and outputs the ones which are unimplemented or stubs in wine. This is broken down by dll which the app tries to import from. Red APIs are not in wine spec files while blue APIs are listed as stubs in the spec files. There are only a couple of apps listed right now. Leave the application field empty for a complete list. I intend to make the output hyperlinks which will query for all apps importing that specific API. Maybe that will help find test cases when tracking down a bug.

The forms are currently at http://24.229.94.2 Unfortunately I can't keep this as a permanent location. The PC is just too slow and the scripts really hog CPU. They do lots of SQL queries. :)

Several people had suggestions for improving it. Juan Lang asked for:

personally I'd like to see:

David replied:

I have completed work on a script which makes an export table. That is, it's completed if noone discovers a problem or feature that should be added. This table will have all windows versions in a row across the top, and dlls in a column down the left side. Each dll has an X for versions of windows - including wine which export that dll. The X is a link to one of the CGIs which queries for all APIs exported by that dll in that particular windows version. The script is currently generating the table and it seems it will take a good 8 hours or so to finish!! There is a HUGE number of dlls. I think some .ref files might not be from clean installs. If anyone can identify for certain dlls which are not part of windows please let me know so I can clean up the database and the table. You can check it's progress at http://24.229.94.2/export_table.html. I think when finished it could use some color, maybe a style sheet. Any other comments?

The compare.cgi script now has a checkbox which toggles all output vs only differences as Dimi suggested.

In case anyone noticed winnt40-sp6a queries did not return any results. The version field was truncated. I fixed it by dropping the 0. :)

A windows NT 3.51 version has been added to the database.

5. DirectX / Operation Flashpoint

3�Aug�2003�-�4�Aug�2003 (3 posts) Archive Link: "Re: [dx73b] Try3: Performance of texture states"

Topics: DirectX

People: Jason Edmeades,�Greg Turner,�,�Mark

More DirectX work hit wine-patches this week. 3DMark 2000 is now reported to run. All in all, DirectX has seen massive improvements over the past 6 months. Jason Edmeades posted a patch and commented:

(Try#3 - Also fixes Operation Flashpoint problem which was introduced AND includes the patch... oops!)

This is the first patch which looks at the performance of changing the textures on a texture unit. As was pointed out to me by Lucho, certain information is per texture unit and hence not affected when a different texture object is bound. This patch on my machine changes the displayed fps by the Billboard sample from 30.6 to about 42.6. [Actually it was 43.0 with patch b, but I dont see why!]

There is still more optimization which can be done here, but this is a start.

Greg Turner remarked:

My goodness... Flashpoint works? How long has that been? Good $*^!$#^@ work!!

But: you should /not/ have told me this as I will be much less productive now.

Jason was quick to point out that "working" was a very subjective term:

I should define 'work' - The graphics appear ok now, but I always run with sound disabled (I have enough problems without adding to them) so I have no idea if sound works. However, this is the game I mention has a weird mouse cursor which does silly things like jumping and not liking diagonals!

Therefore it is viewable (I started the tutorial and it all seems to display fine), but I wouldnt call it playable...

Get on with the OLE/DCOM stuff instead :-)

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.