Wine Traffic #210 For 13�Feb�2004

By Brian Vincent

Table Of Contents


This is the 210th issue of the Wine Weekly News publication. Its main goal is to revel in Purgatory 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 (

Mailing List Stats For This Week

We looked at 183 posts in 522K.

There were 65 different contributors. 29 posted more than once. 30 posted last week too.

The top posters of the week were:

1. News: Wine20040213, PR

7�Feb�2004�-�13�Feb�2004 (3 posts) Archive Link: "News"

Topics: News

People: Alexandre Julliard,�,�Xandros,�News

Alexandre released Wine-20040213 on Friday. The announcement noted the following changes:

WHAT'S NEW with Wine-20040213: (see ChangeLog ( for details)

Go to SourceForge to download ( the latest release.

Looks like while I was on vacation we got Slashdotted ( .

Also found this week was a short review ( of Xandros 2.0 Deluxe. Normally I skip over such short reviews, especially ones that barely discuss Windows' compatibility. What's interesting about this one is it seems to have appeared in dead tree format on newstands.

2. Prelinking and Exec Shield Problems

13�Feb�2004 (1 post) Archive Link: "Prototype for PE area preloader"

Topics: Memory Management

People: Mike Hearn,�,�News

One problem on the radar screen deals with supporting two new Linux-isms: exec shield and prelinking. Exec shield ( is a security mechanism to prevent overflows from being exploited. It relies on changing the memory layout of an executable.. unfortunately Wine requires a very particular layout. Prelinking ( is a method to speed up application startup time by having a preferred memory layout. Mike Hearn started thinking about how to solve these problems and posted a proof-of-concept to wine-devel. Below he also describes exactly what problems Wine faces and how he solved them:

Attached is a prototype of a technique we can use to solve the problems caused by exec-shield and prelink. Yes, it's complicated. I wish it wasn't, but simpler attempts at this haven't worked. I can't think of another way to do it, given my limited knowledge. It's possible Alexandre can figure something out, but as that hasn't happened yet here is my contribution.

This is not useful inside Wine. It's a prototype only - it requires a C99 compiler, the code is a mess, and all it shows is the loader app running "target" which just prints out the mappings. Some more work would be needed to turn this into a patch, but I don't know when I'll get time to do this, so here is my work for others to pick up the baton if they want to.

You can see if it's working by ensuring there is only one /dev/zero entry every time when exec-shield-randomize is on. When it is on, the output of "loader" should be different each time, use diff to see this. When exec-shield is off, there should be no differences.

Prelink has the same effect but the addresses are randomized in a cron job, not on every program load.

Don't worry if you don't fully understand this code, neither do I ;) It's some pretty hardcore voodoo, at least by my standards.....

Here is the README contained within:

Mike Hearn

3. Darwine Update

12�Feb�2004�-�14�Feb�2004 (3 posts) Archive Link: "Darwine Update, Question"

Topics: Status Updates

People: Sanjay Connare,�

The Darwine team had another release on their port to MacOS X. Their biggest to-do item right now seems to be integrating an x86 emulator so they can actually run Windows programs out of the box. Sanjay Connare provided an update:

I have updated Darwine binary to version 1.06 and it is being released as a Developer Preview. It does not yet support the running of x86 exe's, however we are begging to work on this feature. The binary should be downloaded from either the home page link here

or the projects file release page here

to insure that the latest version is being used.

The binary requires Mac OS X 10.3 or higher and for the X11 SDK to be installed. The new installer checks for these before installs, fixes a numerous amount of bugs, including installation of default configuration that were present with the first release and now includes the wine headers.

4. Crypto and RSABASE.DLL

13�Feb�2004 (3 posts) Archive Link: "Re: RSABASE: enough implementation to get Steam to login"

Topics: Integration

People: Mike McCormack,�Geoff Thorpe,�

Mike McCormack stubbed out a new DLL, " This patch allows Steam to login. It also provides a framework for implementing the rest of rsabase.dll correctly using "

Geoff Thorpe thought it might be a good way to get involved, " Cool, I've been looking for an excuse to do something useful on Wine, and as one of the developers of ( perhaps this might be the place? Does anyone have good refs/links to the corresponding win32 side of this?"

Mike had some pointers:

Having a look at the documentation for the CP* functions on MSDN would be a good start.

The next thing to do would be to write your own test program that works in Windows, and uses those functions. Maybe just start by encrypting a few bytes, then check they're encrypted right, then decrypting them again, and checking they come out to the right thing.

Once your test program works on Windows, run it in Wine, and start implementing FIXMEs.

It looks like the CryptXxxx functions are wrappers for each dll's CPXxxx functions... eg. ADVAPI32's CryptGenRandom() calls to the CPGenRandom() function in the crypt provider's DLL.

5. Making Better Icons

9�Feb�2004�-�10�Feb�2004 (2 posts) Archive Link: "Want to Help with Wine Icons"

Topics: Graphics

People: Terry Scott,�Dimitrie Paun,�

Terry Scott offered to improve Wine's icons but needed some help getting started, " I'm an illustrator who has been working in the Web Designing/Programming world for a while and would like to help out with drawing icons for Wine. Is there a list of what needs to be drawn and who to send the icons to?"

Dimi explained the process and exactly what the files are:

Perfect! We need a guy like you on the team, we're not that graphically inclined :)

There is no official list of things that need work. But you can try by reviewing what we already have in there, and see what needs love (I'm sure you'll find stuff < g >).

Here are the list of icons: (Please note that to get these you'll need to build wine. These resources are not includes "as is" in the code, rather they are hex encoded as text in resource files (.rc). The build process extracts them from there into the files listed below, via a tool of ours (tools/bin2res). If you modify these extracted files, this same tool can be later used to encode them back into the .rc files where they belong. Once there, you can just create a regular patch and send it over to for inclusion into the tree)

And the list of bitmaps:

Anyone wanting to help Terry may want to contact him, his email address is on his original post (

6. VisualAge Smalltalk as a Test Program

10�Feb�2004 (1 post) Archive Link: "An excellent test program for Wine"

Topics: Testing

People: Unknown,�

Someone wrote to the list to give mention a good program to test Wine with:

I find the following program to be an excellent test program for anything that acts like Windows. The program is Vast and may be downloaded from The program you want is the 6.0.2 fixpack which is also a fully operational evaluation version of Vast. It gives an evaluation notice on startup but is not disabled and has no timeout. The value of this program is that it runs on everything from Win 95 on and uses just about every feature in a Windows system. It is one of the best tests of system integrity I have been able to find. It almost installs and runs on Wine.

Vast is IBM's "VisualAge Smalltalk".

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 All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0.