WineHQ

World Wine News

All the news that fits, we print.

10/28/2005
by Brian Vincent
Issue: 297

XML source
More Issues...

This is the 297th issue of the Wine Weekly News publication. Its main goal is to celebrate a beta release! 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, 315 posts consumed 572 K. There were 110 different contributors. 61 (55%) posted more than once. 39 (35%) posted last week too.

The top 5 posters of the week were:

  1. 19 posts in 33K by wino at piments.com
  2. 15 posts in 20K by daniel.r.kegel at gmail.com (Dan Kegel)
  3. 13 posts in 16K by lionel.ulmer at free.fr (Lionel Ulmer)
  4. 10 posts in 11K by wine-devel at kievinfo.com (Vitaliy Margolen)
  5. 9 posts in 15K by saulius2 at ar.fi.lt (Saulius Krasuckas)

News: Beta Release, CrossOver Office 5.0 Archive
News

Do we really need to say what the headline is this week? Wait for it.. wait for it..

        Beta!

In the past, Wine releases followed a standard format. About every month Alexandre would release a CVS snapshot with the format of YYYYMMDD, such as wine-20050930. Those CVS snapshots were just that: a point in time where everything in CVS was tagged. Often those releases saw the bare minimum of testing, such as running the Wine test suite against it.

We're in different territory now. The beta release saw quite a few people hammer on it for almost a month before it was released. Bugs in Bugzilla were tracked, reviewed, and fixed.

Here's Alexandre announcement:

This is release 0.9 of Wine, a free implementation of Windows on Unix. After 12 years of development, this release marks the beginning of the beta testing phase. Everybody is encouraged to try it; while there are still bugs, most applications are expected to at least install and do something useful.

Because of lags created by using mirrors, this message may reach you before the release is available at the ftp sites. The sources will be available from the following locations:

Binary packages for various distributions will be available from:

You will find documentation on http://www.winehq.org/documentation.

You can also get the current source directly from the CVS tree. Check http://www.winehq.org/cvs for details.

Patches should be submitted to "[email protected] ". Please don't forget to include a ChangeLog entry. If you submitted a patch, please check to make sure it has been included in the new release.

Wine is available thanks to the work of many people. See the file AUTHORS in the distribution for the complete list.

That AUTHORS file, by the way, was updated for this release and now contains 797 individuals.

We had an official press release about it. It's nice, light reading. I also put together a special edition of WWN, #296 , to look at more of the technical background behind Wine 0.9. We've been on the verge of a beta release for a number of years and it seems like there's been some rather amorphous goals that were set to reach it. Well, we actually have a pretty good record of the major projects tackled over the past six years so I took a look back and summarized what some of the critical ones for the beta release were.

In other big news, CodeWeavers released CrossOver Office 5.0 on the same day. There's definitely a lot of new stuff under the hood with this release; a lot of which can be found in Wine 0.9. As usual, Jeremy White's announcement is more interesting reading than the official press release . Outside of things like the window manager rewrite and other technical things, the big news here is Microsoft Office 2003 support. You can also find a new thing, bottles , that let you install applications into their own virtual Windows drive. Each bottle can contain its own custom configuration. Then you can package it up into an RPM for installation elsewhere.

Go buy it now and give yourself the warm, fuzzy feeling of supporting free software development.

The media picked up on both of these items and over the next few weeks we'll definitely track that. Here's some of the ones I happened to notice this week (let me know if you see more):

One topic appearing on a lot of the discussion forums was what exactly a beta release means since a lot of people have been using Wine for a long time. Well, my $.02 is that we're no longer planning any big projects that will steal your lunch money. In the past we had things on the to-do list like "window management rewrite". Well, we knew that would break a lot of things. We don't really have anything like that on the list now. Sure, there's going to be some huge additions to individual DLLs that will certainly cause regressions, but hopefully those can just be worked out.


Beyond 0.9 Archive
Project Management

After 0.9 was released, the floodgates opened and lots of patches poured in. Notable additions included a ton of MSI improvements by Mike McCormack, more crypt32 work by Juan Lang, and oleaut32 additions from Alex Villacís Lasso. You can expect a lot of additions in the near future as developers complete patches they've been working on during the past few weeks of freeze.

While the core internals of Wine are now complete, there remains a lot of work fleshing out various DLLs. In the course of discussion, Alexandre mentioned some of the things that need to get fixed before 1.0:

we still have a lot of work to do on usability issues (winecfg, desktop mode, cdrom support, systray, etc.), and we need better support for the various code obfuscation tools, it's probably the number one cause of apps not even starting today.

Jonathan Wilson asked if that last item meant support for Safedisc, Securom and other copy protection methods. Alexandre replied, As far as possible, yes. I think the goal for 1.0 should be that anybody has to be able to try Wine and see that it's for real. This means they must not be stopped either by not being able to configure it, or by apps failing to even start.

In case you missed it, that's our roadmap for the next few months.


Winecfg Drive Config Problem Archive
Configuration

Someone ran into a problem using winecfg's drive configuration:

just getting into a fresh installation with 0.9

ran up winecfg and tried to add a device for my dvd burner.

editing the device name is unusable. No cursor, then after a first character is entered the edit seems to jump to insert mode and puts the cursor at the beginning of the line. There seems to be no way enter text normally to enter a device name.

This whole interface seems badly broken. I had to fall back to good old command line to sort out the mess made by winecfg and add the devices I need.

Someone else also noticed it and provided the workaround:

I noticed this as well last night when I was testing some Windows programs for compatibility. I'm glad Wino mentioned it here, because I almost forgot.

I went into the dosdevices directory and set up the links manually, because it's real hard to get non-fubar'd results with winecfg.

Vitaliy Margolen suggested just using the Browse button since it will fill in the appropriate entry.


Bugzilla: Closing Bugs Archive
Project Management

Digging through Wine's Bugzilla tracker can be good way to learn things about Wine. Whether that's confirming an unconfirmed bug, finding something small to fix, or simply getting a feel for what areas need to be worked on.

Jonathan Ernst has been wrangling bugs for a few weeks now and was surprised when someone suspended his Bugzilla account:

It was then discussed that bugs that are FIXED and where resolution is not LATER or DUPLICATE or REMIND should be marked CLOSED as the fixes have been integrated in an official release (namely 0.9).

However it seems that ivanleo didn't like my CLOSING session because some of the bugs were not "fixed". Can someone tell me how a bug can be not fixed and marked as resolved-fixed (see my query) ?

Well, that seems to make sense. It's hard to think of a reason to have a ton of active bugs marked as fixed but not closed. That launched a bigger discussion about when and how bugs should get closed. Ivan Leo Puoti, who suspended Jonathan's account, then apologized for doing so but explained he did it because it wasn't clear any of the FIXED bugs had been verified. Well, that's rather hard with any free software project where there's no dedicated staff for QA work. (As opposed to free software projects that do have dedicated staff.) Dimi Paun thought some of the QA steps that would normally be separated should simply be considered combined together:

First, it is the responsibility of the reporter to verify the bug. It is totally unrealistic to think that others will go do the verification -- they lack the software, the context, and the motivation/

Second, we had close to a thousand bugs in that state. They do more harm than good lingering about. If the original reporter cannot be bothered to verify it, they should be closed.

Vijay Kiram Kamuju thought another problem was Bugzilla itself made the issue confusing, there was misunderstanding regarding the bug status, ie, RESOLVED LATER, RESOLVED CLOSED, VERIFIED, etc. It would be better if we could put some details regarding the bug status on the bugzilla or FAQ pages, as there are some differences in the explanation of these. I am used to a different bug management app (ClearDDTS) where there are only 4-5 states a bug can have. (NEW,ASSIGNED,OPEN,RESOLVED,VERIFIED)

Jonathan gave a link to an explanation of bug statuses .

The end result of the discussion was Jonathan got his account restored and a bunch of FIXED bugs were officially CLOSED.


Solaris Patches Archive
Ports

Robert Lunnon began posting a series of patches to get Solaris x86 back on track. Wine strives to be portable to as many architectures as possible, but most of the developers use Linux. As a result a lot of things sneak in that cause problems on other architectures. Fortunately folks like Robert take the time to work out those bugs. He described his series of patches on wine-devel:

I have posted my local patches to wine-patches.

Note that for 0.9 I have posted most of the patches that are likely to be essential to build a working Wine package (other than those previously rejected) regardless of the shape the code is in. Some of it is very ugly and lacks integration for other OSen, I have noted these. Since this code is maintained as a delta from CVS wine specific to Solaris and only used for binary packages, it's not necessary to start out with the niceties all there (This particularly happens when I get deep into week long debugging sessions).

Patches not sent are listed hereunder along with the reasons...

Possibly essential (Show stoppers)

ptrace stub patch

    Disable debugger by returning error for all ptrace calls, add ptrace stubs (framework) to allow work on ptrace emulation layer for wine. -Previously rejected

linking patch

    since libwinecrt0.a was added wine has been broken due to the linker wanting to import main() in dlls, this results in unresolved symbols. I have temporarily worked around this and can build wine with a change to winegcc that links another archive (I call winedllcrt0.a) which omits the main() definitions in the case where -shared is passed to winegcc. Alexandre has asked that I keep looking for a way to make the Solaris linker successfully link an archive containing main() to dlls without the need to have two runtime startoff libraries. Patch won't be submitted until a final solution is found.

Recommended functionality patches

cpuid patch

    CPUID detection using x86 cpuid instruction - previously rejected

wineconsole/curses.c

    Patch non-essential and FAR too hacky at this point - just removes all mouse code.

Other Patches

tools

    automation patches to allow unattended build No interest to Wine project

Debugger

    work in progress, not working

A complete set of patches (even the gross ones) are maintained at


Dragon Naturally Speaking (v7) Recipe Archive
Fixes

A few months ago Dragon Naturally Speaking was a hot topic on wine-devel. It seems version 8 doesn't really work with Wine, but version 7 can be coaxed into running. Someone (no name given) provided the recipe this week for making it work:

OK, I think I've cracked it.

After a lot of heaving and grunting I managed to reinstall Dragon Naturally Speaking into a fresh user account with the help of sidenet.

This time I carefully documented the steps I took so as to be sure it was reproducible.

What worked:

    wine-20050524; sidenet-1.8.1; Dragon NS v7 preferred En. and v7 pref Fr Ensoniq 1371 pci "soundblaster"

What won't:

    winecfg based wine releases ; more recent sidenet on previous above wine. muse5.1 cmipci (too quiet)

Required natives:

    comdlg32.dll only

That it in a nutshell , here's the log:

INSTALLATION NOTES FOR NATURALLY SPEAKING 7 PREFERRED

  1. installed wine is 20050524
  2. new user account with no wine
    • su <username>
    • cd ~
  3. untar sidenet 1.8.1
    • chown <username> users
    • ## cp some prev download files from other user space , save time on sidenet.
    • cd wine-config-sidenet
    • ./setup
    • #sidenet : option [3] select y to IE6 MSinst DCOM98 fonts
    • sidenet runs OK, reboots, displays sid-site in ie6: success!
  4. bash# ~/.wine $ wcmd
    • D:\.wine>ver
        WCMD Version 0.17
    • D:\.wine>path
        PATH=c:\windows;c:\windows\system;c:\windows\command
    • D:\.wine>exit
  5. cd ~/.wine/dosdevices
  6. ln -s /mnt/dvd h:
  7. wine h:setup
  8. installshield says req reboot, ok restarts
  9. into reg code entry dlg OK.
  10. #file select dlg crashes, rerun and accept default folders.
  11. installation runs cleanly and exits, then throws following to console:
      bash # ~/.wine/dosdevices $ fixme:ddeml:DdeConnectList
      (1,0xc000,0xc000,(nil),(nil)): stub
      fixme:ddeml:DdeQueryNextServer (0x1,(nil)): stub
      fixme:ddeml:DdeQueryNextServer (0x1,(nil)): stub
      fixme:ddeml:DdeDisconnectList (0x1): stub
      err:wineboot:runCmd Failed to run command (0)
      err:wineboot:ProcessRunKeys Error running cmd #1 (0)
    #ignorable.
  12. ~/.wine/c/Program Files/ScanSoft/NaturallySpeaking/Program $ wine natspeak.exe
    "cannot find windows/system/comdlg32"

    OK exits cleanly.
  13. find comdlg32.dll and put in system.
  14. $ wine natspeak
    enter user general training.
  15. NS cannot control the volume level although it thinks it does.
    use alsamixer or similar to ensure capture is on MIK and capture level around 80% (YMMV)
    84 vol gives 22 quality rating but message says too high, basic training sticky.
    req reduce vol to 82: fine

Able to complete general training and begin dictation into DragonPad. Excellent results.

HTH, Have fun


Wine & Windows Vista Graphics Drivers Archive
Graphics

The topic of using Wine to support various hardware drivers comes up quite a bit. In general, the recommendation is to develop a real Linux driver. This week Claude Mench came up with an interesting idea regarding graphics drivers:

I rencently read a whole lot of MSDN documentation about the LDDM infrastructure. The new Windows graphics vista driver model.

And what made me think we could have support for it in linux.

It seem to me that having the most important parts of the driver being in user mode would really help to use it on other systems.

From what I read, the user mode driver would create the command buffer that would need to be uploaded to the GPU and a kernel module would need to schedule GPU access handle memory of the GPU and send the command buffer to it.

This would need the Wine Expertise of DirectX reimplementation as well as some good kernel hacker, but in the end maybe the struggle to have linux specific support from Graphics adapter vendors could be once and for all removed if we had LDDM driver support and then X build on top of it (same philosophy as Xgl).

it could also benefit to the wine project itself as we would have really windows driver being used, it should help increase compatibility.

sorry if it sounds crazy...

Well, that's not as crazy as a it seems. The new graphics model in Windows Vista will be completely different than any other version of Windows. Microsoft has a nice, concise description on MSDN:

The display driver model architecture for Microsoft Windows codename "Longhorn" is composed of user-mode and kernel-mode parts. The following figure shows the architecture required to support the Windows Longhorn display driver model. A graphics hardware vendor must supply the user-mode display driver and the display miniport driver. The user-mode display driver is a dynamic-link library (DLL) that is loaded by the Microsoft Direct3D runtime. The display miniport driver communicates with the Microsoft DirectX graphics kernel subsystem. For more information about the user-mode display driver and display miniport driver, see the Windows Codename Longhorn Display Driver Model Reference.

That's a pretty significant change: Direct3D being at the heart of the display. Reaction was mixed on wine-devel. Stefan Dösinger was against the idea while Krzysztof Foltman was for it. From there the idea sort of died off.


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.