Wine Traffic #209 For 6�Jan�2004

By Brian Vincent

Table Of Contents

Introduction

This is the 209th issue of the Wine Weekly News publication. Its main goal is to officially begin procrastinating on taxes. 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 164 posts in 762K.

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

The top posters of the week were:

1. News: WineConf 2004 Resources

31�Jan�2004�-�6�Feb�2004 (1 post) Archive Link: "News"

Topics: News

People: ,�Michael Stefaniuc,�Brian Vincent,�Tom Wickline,�Boaz Harrosh,�News,�Marcus Meissner,�Gavriel State,�Alexandre Julliard,�Arthur Bergman,�Jeremy White,�Mike McCormack,�Lionel Ulmer,�Shachar Shemesh,�Dimi Paun,�TransGaming,�CodeWeavers,�Francois Gouget,�Huw Davies,�Aric Stewart,�Juan Lang,�ReactOS,�Mike Hearn,�Ulrich Czekalla,�Jeremy Newman,�Steven Edwards,�Mark

The WineConf (http://www.winehq.org/wineconf/) page is serving as a repository for the various resources from the conference. So far you can find:

In case you missed it, I put out separate issue this week to summarize the event. (http://www.winehq.org/?issue=208) We had 29 developers from 8 different countries in attendance (I apologize if any of the city information is wrong in the list below):

2. New Filesystem Code Merge Commencing

4�Feb�2004 (9 posts) Archive Link: "ntdll / kernel32: #41"

Topics: Filesystems

People: Eric Pouech,�

The big filesystem merge has begun, well, at least the patch submissions. If you're just tuning in, you may want to refer back to issues #184 (http://www.winehq.org/?issue=184#Evolution%20of%20Wine's%20File%20Management) , #189 (http://www.winehq.org/?issue=189#Filesystem%20Roadmap) and #204 (http://www.winehq.org/?issue=204#File%20Handling) . I think it's useful to reiterate exactly what the problems are, this list comes from Eric's initial post back on August 19th:

  1. no dynamicity in DOS drive management: user should be able, in his/her session(1), to either change the mapping of a DOS drive letter, or mount a SMB share somewhere...)
  2. mounting should be done session wide and not process wide, and of course shared across processes
  3. ntdll and kernel32 are not separated regarding file management
  4. devices (vxd and DOS) management is still a hack
  5. it may be necessary to introduce a notion of filesystem for some operations (open, read, write, seek, close, dir_enum, ioctl) in order to support several FS (unix, smb...)
  6. poor management of ejectable devices
  7. short/long file name conversion should be consistent (across several processes in the same session, across several sessions)

About a month ago Eric posted a somewhat complete implementation. At the time he had some details to work through, but the basic structure was complete. Of course, the secondary problem now becomes how to merge this code without completely throwing the CVS tree into turmoil. It seems Eric has found a way and now individual patches have been created. Below is a list of the new patches and the Changelogs. Eric has been tracking all of his NTDll/Kernel32 DLL separation patches with a number. This patchset began at #41:

let's start submitting the new fs code...

basically, you will need to have run this new tool on your configuration directory before we can go any further (otherwise, wine will give you some nice warning messages, and breakages could appear) winefs --config--assign

see the previous winedevel post for some more details.

ChangeLog:

...#42:

New volume management functions from NT

Note: DefineDosDevice is now broken (until patch 47)

...#43:

Changes for device & VxD management (kernel)

Notes: server/device.c has to be removed

...#44:

New scheme for type, label & serial number reading on drives

...#45:

Moved NT => unix path translation to ntdll

...#46:

Moved file opening to ntdll

...#47:

Moved directory browsing to ntdll

...#48:

Reviewed directory initialisation & management

...#49:

Various clean-ups

Note: files/dos_fs.c shall be removed

that's all for now

3. To Do List Updated

3�Jan�2004�-�4�Jan�2004 (7 posts) Archive Link: "Wine 0.9 TODO"

Topics: Status Updates

People: Dimitrie Paun,�

Based on discussion at WineConf, Dimi put together a detailed to do list for a 0.9 release. What's somewhat confusing is this is about as large as the current to do list on WineHQ. So why have we suddenly shifted gears and trashed the current plan? Well, we haven't. The current To Do list has items like "Cleanup the directory structure". Below this is expressed in detail as section I. Other tasks have been merged into a more logical order. So...

Here is the detailed TODO in all it's glory. We _really_ need to get this over with, so please help us out to get this release out the door. I'll mark names by the tasks based on conversations I had with folks at WineConf (and on the list). If you notice any mistakes, please let me know. Items marked with (???) have no owner. If you think you can help on any of these (including ones that do have owners!), please let me know. Help is needed and appreciated. If it's not clear what needs to be done for any of these, get in touch with me, I'll be more than happy to help you get started.

Enjoy!

A. WineHQ.org

  1. History page (Brian) [IN PROGRESS]
  2. Testing status (Ferec) [IN PROGRESS]
  3. I18n status (Vincent) [IN PROGRESS]
  4. Porting status (Dimi, Steven) [IN PROGRESS]
  5. Who's Who (Tom)
  6. Documentation page update (???)
  7. Download page (esp. source) needs work (???)
  8. Acknowledgment page (???)
  9. UI status update (???)
  10. Integrate API status into WineHQ (???)

B. Documentation

C. Configuration

  1. Complete regedit (Attila) [IN PROGRESS]
  2. Complete winecfg (Chris, Mike)
  3. Setup API .inf scripts (Chris) [IN PROGRESS]

D. UI Code

  1. Visible region handling in server (Alexandre)
  2. Inter-process handle management (Urlich, Alexandre)

E. File Formats

  1. .spec files [DONE]
  2. .reg files [DONE]
  3. I18n output (Vincent) [IN PROGRESS]

F. Exported API

  1. DLL separation I [DONE]
  2. DLL separation II (Alexandre, Eric) [IN PROGRESS]
  3. wineserver protocol (Alexandre)

G. Tools

  1. winebuild: build DLLs from .def files (Alexandre)
  2. winegcc: add simple gcc-independence (Dimi)
  3. winegcc: generate DLLs/-shared (Dimi)
  4. winemaker: generate MinGW compatible makefiles (???)
  5. winemaker: use dsw2make from MinGW (???)
  6. winemaker: no configure script (???)
  7. autoconf: add all Wine-specific macros to the aclocal (???)
  8. winedesktop: create new tool (Alex) [IN PROGRESS]

H. Miscellaneous

  1. Testing daemon to run as a Windows service (???)
  2. Exec-shield support (???)
  3. Prelink support (???)
  4. Version symbols in libwine & libwine_unicode (Alexandre)
  5. Find packager for a PE-build of Wine on SF (???)
  6. Standardize Wine handling in autoconf (Dimi)

I. Source Code

  1. Move controls/*, windows/* -> dlls/user/ (Alexandre)
  2. Move graphics/*, objects/* -> dlls/gdi/ (Alexandre)
  3. Move files/*, misc/* -> dlls/kernel/ (Alexandre)
  4. Flatten dlls/: msacm/*, msvideo/msrle32, winmm/* (Alexandre)
  5. Move documentation/ddraw.txt somewhere (???)
  6. Move documentation/samples/generic.ppd -> dlls/wineps (Alexandre)
  7. Move documentation/samples/config -> winedefault.reg (???)
  8. Move documentation/samples/system.ini -> winedefault.reg (???)

Under section H. item #1 as creating a "testing daemon". Dimi wrote back to the list to clarify exactly what that meant. Basically the idea is to write a Windows program and run it as a service on Windows to automate testing. It's feared that when we complete this great testing framework and get it integrated into the website we're going to run into a problem with people downloading and running tests. At first it will work, but then people may stop doing it. So if we have a service set up that checks for new tests, then automatically downloads and runs them, we can get a solid community behind it. More important is getting the tests integrated into the website.

4. WineConf Wrapup

3�Feb�2004 (3 posts) Archive Link: "Wineconf wrapup"

Topics: WineConf 2004

People: Jeremy White,�

Jeremy White put together a nice overview of how the WineConf logistics worked.

Say, I wanted to thank everyone for coming to Wineconf 2004; as far as I can tell, a good time was had by all, and we may even have accomplished one or two useful things <grin>. I really appreciate that so many of you braved -30C temperature and two days of constant snowfall to come work with us on Wine - such insanity^H^H^H^H^H^H^H^H dedication is admirable.

I wanted to suggest that we get to planning Wineconf 2005 sooner rather than later; I'm curious to see which European city hosts the event <grin>. For the record, we're willing to be the major sponsor for the next Wineconf; we'll kick in some funds and person power to help make sure it happens. However, I think it'll only work well in conjunction with one or more locals.

I did have some closing thoughts and advice I wanted to get off my chest; there are some things I would do differently next time, and it's probably also wise to touch on the things that worked well.

In no particular order, here are a number of thoughts:

  1. Screw fancy audio/video streaming.
    Find an inexpensive telephone conference service, and use it. Test it, several weeks in advance, *with the intended audience* (the stream worked fine on this side of the Atlantic, afaict), and *with the expected load*. Our tests were always done with less load than we had during wineconf, because the streaming traffic used the same pipe as the 'net connection everyone was using.
    We wasted a lot of time and energy on this, against my initial better judgement, and it proved to be largely useless, afaict from the #wineconf comments.
    Go low tech. Swallow your geek pride. Just get simple audio that works.
    /me kicks self
  2. Things that worked well:
    • An inexpensive location
      Not one person opted for the expensive hotel I listed; cost really matters to this crowd. The last thing we want to do is scare away young people; they often have enormous energy and no cash. Help with hostels and friends with floors was appreciated.
    • Breaks
      The only times that I was sure that productive conversations were occuring was during the breaks. Provide lots of 'em. Go very light on scheduled topics.
    • Do lunch in; that worked really well.
      Have lots of food and beverages about, that also seems to work well. Bring the water cooler down on the *first* day <grin>.
    • Internet connectivity is a must. Really.
      And provide both wireless and wired. We had some grumpy campers when we initially didn't have enough cat5 ports.
    • All of the professional conference paraphenalia was invaluable. A wireless mic (preferably two) and someone to operate it. A PA type system. A projector. Even with the relatively small group we had it was invaluable.
  3. Suggestion - blue collar location
    I know it's fashionable to suggest fancy vacation spots for Wineconf 2005, but I honestly think it would be much better to pick a 'blue collar' venue. Pick somewhere that is a transportation hub, with modest prices. Someplace where some Wine hackers live; having local help is incredibly valuable (thanks to Mandi, Chris, Jon, Aric, Zak, Newman, and all of the gang who did so much work).
    In fact, when we did go to the fancy tourist night spot, we ended up at a bar where it was too loud to talk; conversation amongst folks from 10 different countries is hard enough without load blaring music or odd ball distractions.
    A quite room and a good supply of ale, perhaps with a whiteboard, is what folks mostly craved.
    This is just my $0.02; I think others would differ sharply.
  4. The final, critical piece of advice
    Don't type 'ifconfig eth0 down' in a terminal Window on the Mac in an attempt to reinitialize it's DHCP settings, unless you're dead certain you haven't ssh'd over to the server that is the life blood of your community, and is physically miles away behind locked doors...
    ...and I still can't figure out why Alexandre won't take my patches! <grin>

At any rate, I feel much better now - thanks for listening, and thanks for coming.

It definitely seems a lot more was done right than what wasn't. The streaming audio/video was a bummer, and a lot of people genuinely tried hard to get it working. The facilities worked out extremely well though. I think we all took it for granted we had basic amenities like conference tables and a video projector.

5. Creation of #winehackers

1�Feb�2004 (1 post) Archive Link: "Announcing #winehackers"

Topics: Project Management

People: Mike Hearn,�,�Mike McCormack,�Francois Gouget

A new irc channel has been set up expressly for people developing Wine. The goal of this channel has nothing to do getting applications to run or serving as tech support. It's for developers to get together and solve problems. We have lots of forums available for helping with using Wine, including documentation (http://www.winehq.org/site/documentation) , mailing lists (http://www.winehq.org/site/forums) , and BugZilla (http://bugs.winehq.org/) . Mike Hearn announced the new IRC channel on Sunday:

One of the action items decided on at wineconf was to set up an IRC channel for Wine developers. This channel now exists and is #winehackers. Key points to be aware of are:

Have fun! I'll submit a patch to add mention of it to the WineHQ website, but #gnome-hackers grew to a huge number of people just through word of mouth so there's no real hurry. Tell your friends, rescue budding wine hackers from the helpdesk that is #winehq etc. It's a resource that is there to be used, so use it.

6. Differences in Windows' Long/Short Names

6�Feb�2004 (4 posts) Archive Link: "Wrong short filenames instead of long ones"

Topics: Filesystems

People: Fabian Cenedese,�Ove Kaaven,�Dimitrie Paun,�,�Ove K�ven

Fabian Cenedese wrote:

I'm trying to find a file copy tool which works on windows as well as wine. I tried several and this looked promising:

On Windows it copied all files without problems and kept the long filenames even if the name implies that it's DOS-only, but it worked fine on W2K. But on wine the long names where all shortened to something like CINO~E2H.CPP. So it doesn't look like normal DOS short names ...~1.cpp but it's not the long name either. Can anybody try this out?

My wine (actual cvs) config is set to windows version nt40.

Ove K�ven explained the differences:

It's the short names Wine makes when there is no DOS short name (i.e. when you're not on a VFAT partition).

Try win95. Wine currently only emulates the DOS long file name API on win9x, since it did not exist on nt4.

Dimi thought that was odd, " That makes no sense: we get short names on a system (nt4) that fundamentally had long names. Shoudn't we get long names by default in that case?"

Ove went into more detail:

No, you couldn't get long file names in DOS programs under NT4. Try to run command.com (a DOS app) instead of cmd.exe (a Win32 console app) under NT4 sometime. NT4 had generally poor DOS support, mostly because its kernel was not DOS; Win95 had much better DOS support because of its DOS-based kernel, and that kernel provided long file name services to DOS programs running under it (on a VFAT partition).

Now it's possible that 2000 and XP added Win95-compatible long file name services for DOS programs, in which case the version check in Wine for the LFN DOS API could be updated. The version check is anyway (probably) mostly there to prevent winver=win311 from enabling the LFN API.

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.