Recent News Queue
This is the inbox for the World Wine News. The WWN editor invites Wine developers and users to submit articles here for inclusion in the next edition of WWN, but reserves the right to edit mercilessly. This page will be cleared each time a new WWN is published.
Add your articles below, and be sure to include your name and date. Use three equals marks around the title.
Ge van Geldorp was inspired by all the talk about testing during WineConf 2009. He noticed that bad tests were being committed because most Wine developers (OK, all Wine developers) find it hard to check their conformance tests on more than just one or two versions of Windows. His solution was to set up a battery of virtual Windows machines and a way for developers to submit jobs on them, and called it WineTestBot. It quickly because an indispensable part of my workflow. Thanks to Ge and to his employer (VmWare) for providing this awesome resource!
But wait, there's more. It seems that WineTestBot is luring developers to contribute to Wine! I noticed someone new contributing a patch for RtlSetThreadErrorMode and emailed the author to see what his interest in those functions was.
The author, Peter Rosin (a libtool contributor), replied "I recently noticed that GetErrorMode was added in Vista (or something like that) and added support for that to the LoadLibrary loader in libltdl (libtool). Then, about 2 seconds after pushing that patch, I noticed GetThreadErrorMode/SetThreadErrorMode (in kernel32), and figured that those are the ones I really want to use. But I didn't know how they worked (no Win7/2k8R2 machine) so I figured the simplest way to check how these new functions interact with plain old SetErrorMode was to use the WineTestBot. But having used that to dig out the info, I figured I might as well add the functions to Wine as well, so that I can go to bed without having "abused" the WineTestBot..."
So WineTestBot is helping in even more ways than Ge expected.
(Dan Kegel, 3 Feb 2010)
Dynamic analysis cleanup progress
There has been a lot of progress recently in cleaning up errors found by various automated analysis tools.
Valgrind: Dan Kegel started doing daily valgrind runs again to look for memory errors, and lots of people (Huw, James, Nikolay, Rob, ...) pitched in to clean up problems. (Thanks especially to Wine alumni James Hawkins and Rob Shearman for their help here!) The valgrind error count dropped from around 2500 in early November to 682 at the end of December and 386 by Jan 8. Most of the big drops were from suppressing silly errors or fixing key noisy bits, but still, Yikes!
Static analysis cleanup progress
Coverity: they started scanning the Wine source code four years ago; their first run found 830 errors. Currently the count is something like 300, only 11 of which are not yet fixed or marked as false positives. Thanks to Marcus Meissner and the others who have been slowly chipping away at these errors!
Coccinelle: Paul Vriens has been playing around with http://coccinelle.lip6.fr lately and has cleaned up a few errors it caught.
Smatch: Michael Stefaniuc is still soldiering away with this.
Total fixes from each tool in month ending Jan 15: Coverity 14, Coccinelle 12, Smatch 1.
See Wiki page StaticAnalysis for more detail.
Visual C++ 2005 works
As long as you don't need to use the GUI too heavily, anyway. Thanks to Rob Shearman and Kai for fixing an obscure RPC bug that was keeping /Zi from working!
BuildAndTestChromium is proof you can build serious C++ apps with Visual C++ 2005 on Wine; it shows how to work around a few remaining bugs.
Ambroz Bizjak has written a wrapper for the commandline compiler and linker to accept Unix pathnames: http://code.google.com/p/wrapmsvc/
Wine and Firebird Databases
In reply to this post http://www.winehq.org/pipermail/wine-users/2009-February/048883.html, I successfully tested a delphi 5 app using Firebird 2.1 databases (http://www.firebirdsql.org).
To achieve this:
- Install firebird 2.1 superserver from your distro package.
- Install, with wine, firebird (.exe win32 version). Select minimal client install. It will install GDS32.dll and MS VC 2005 runtime.
Configure your Delphi app with good database linux path (ex. ip_adress:/var/firebird/mybd.fdb).
When you upgrade wine, it seems you have to reinstall firebird win32 client.
(Vincent Hardy, 20 April 2010)
Aug 29, 2010: Dave Phillips reviews Wine for audio apps: http://www.linuxjournal.com/content/new-wine-running-windows-music-sound-applications-under-wine-12