LWN.net Logo

Development

Wine gets better, but not perfect, with age

November 3, 2010

This article was contributed by Joe 'Zonker' Brockmeier.

The Wine project doesn't get the kind of attention it used to, but the project is still chipping away at being compatible with the majority of Windows applications. One one hand, Wine faces a moving target in keeping up with changes to Microsoft's platforms. On the other, Wine has become less relevant to users in the face of virtualization. Despite the challenges and competition, Wine still is still proving successful as a project and as a commercial venture.

The Wine Project recently released the stable 1.2.1 and unstable 1.3.5 branches with a number of fixes and new features. Like its namesake, Wine has continued to improve with age. A look at the most recent vintage, however, shows that the project still has a long way to go before it's ready to tackle any and all Windows applications.

Wine was once widely considered a very important piece of software for the success of Linux on the desktop. The theory being that if users could run Windows applications more or less flawlessly on Linux, it would encourage people to switch. Assuming an application runs under Wine, it would even have advantages over Windows because one could leverage the strong points of Unix/Linux with a popular Windows application. That hasn't quite worked out as planned, though. Wine has been a useful tool for many users, but its adoption and influence on the spread of Linux has been fairly limited.

After nearly 17 years of development, running Windows applications on Wine is still tricky business. Some applications and games run flawlessly, while others run only with several tweaks. In testing Wine 1.2.1 and Wine 1.3.5, a few applications installed and ran without any problems — like Notepad++ and Evernote. As CodeWeavers founder and CEO Jeremy White says, "we've hit a point where you have a better than 50/50 chance of your app working. And if your app is simple/small enough, there is a good chance it will work perfectly."

And that seems accurate. In testing some other big and complex applications, there was little joy to be had. Microsoft Office 2010, for instance, doesn't get past the the installer. Safari for Windows fails immediately after installation, and the Internet Explorer beta fails as well. Internet Explorer 8 installs, but does not work correctly. This is not to fault the Wine developers too much, however. The fact that complex Windows applications run at all is a commendable feat. Seeing a Windows application like Evernote running flawlessly on Linux is deeply impressive. But it's not necessarily useful if a user wishes to run Word 2010 instead.

Commercial variants and concerns for Wine

Part of the challenge with Wine is that it's very capable, but complex to configure. Users who are willing to spend the time and effort can make many applications run that don't run "out of the box." To that end, several commercial offerings have developed over the years to help users more easily harness Wine.

First and foremost, there's CodeWeavers, which does the bulk of development work on Wine and employs its lead developer, Alexandre Julliard as CTO. There's also Cedega, which is developed by TransGaming off a fork of Wine created in 2000. TransGaming has not been a significant contributor to Wine, and has gone so far as to ask projects not to make it easier to build from their CVS tree.

CodeWeavers, on the other hand, has been extremely generous to the Wine Project and community. White says that it's company policy for "all work [to] go into Wine *first*." He does acknowledge that there are a few differences between CodeWeavers Wine and the Wine Project, but not many. "CrossOver has a few proprietary hacks^H^H^H^H^Hadvantages that enable specific applications (e.g. MS Office) to function better, but by and large the code base is identical."

If you're hearing less about Wine these days, it's probably because most users now turn to virtualization instead of emulation to run Windows applications. White says "candidly, virtualization is kicking our rear end. In the Mac space, we're probably outsold 25 or more to 1 by things like VMware and Parallels, even when Wine would run a given user's application."

White acknowledges that virtualization has an advantage in that it works "in a predictable fashion," and says users have "a really hard time accepting and working within" Wine's limitations. The other factor working against Wine is the sheer ubiquity of virtualization and the fact that today's desktop and laptop computers can comfortably run two or three OSes without a significant performance cost.

Still, White says it's frustrating that more users don't at least try Wine to see if their applications will run. "I always hate when someone jumps to use virtualization without ever having tried Wine or CrossOver. This probably flows from the fact that we're a technology company, with a passion for Free Software; if we had instead a passion for Marketing, we'd probably be in better shape..."

What kind of shape is CodeWeavers in? The company probably won't be raking in Apple-sized revenue anytime soon, but White says that CodeWeavers is doing well. "Of course, you always think you can do better, but we're doing well." The business comes from a split of individual subscriptions and businesses. White says "a bit more" than half comes from individuals, and a "very nicely growing business doing ports; using Wine and CrossOver to do a very fast port can be a great business case."

Though Wine has been considered a major application for Linux, much of the revenue that's supporting Wine development is coming from Mac users. White says that "the Mac business is now a bit more than half of our business as well. That's good for Linux — without that revenue, we wouldn't have been able to contribute as much to Wine lately as we've been able to."

Where Wine is going

For CodeWeavers, White says the company will put emphasis on its porting services for Windows applications in the near future.

What's on the horizon for Wine 1.4? Firm release criteria haven't been set, according to the Wine wiki but unfinished release criteria from 1.2 indicate several priorities.

One is the implementation of Direct3D 10 for DirectX, and fixing a mouse problem in the interaction between X11 and Wine/Windows applications that means Wine has to fake the position of the mouse by calculating the difference between its absolute position and how far it's moved. This is a problem when the mouse moves to a window not controlled by Wine.

Another target is to ship Mono with Wine to run .Net applications. The project, or at least Andre Hentschel, is also working on ARM processor support, which first shipped in 1.3.4, which might be important for ARM-based netbooks.

Interested in helping with Wine development? The project has an extensive TODO list and docs on how to become a developer. They even have a list of "fun" projects.

Though Wine doesn't seem to be the Holy Grail to pave the way for widespread desktop usage of Linux, it still plays an important role for quite a few users. Given the continually shifting and changing Windows platform that the Wine Project has had to target, the current state of Wine is very impressive. It will probably never achieve 100% compatibility, but it does many things very well and means that many users need not pay Microsoft for Windows licenses they don't want in order to use a few Windows-only applications.

Comments (14 posted)

Brief items

Quotes of the week

We stand at a corner of FOSS history, where the realization that projects led by one vendor only tend to fail, unless the vendor itself puts others in charge of the projects and gives free reins to its community. Look at what's happening with Fedora with respect to its ditching of copyright assignments. Experiences in other projects show that the "protection" that such assignments provide is at best minimal, and most of the times quickly abused, most of the time by its steward.
-- Charles-H Schulz

Let's merge Qt and the KDE development platform. Let's put all KDE libraries, support libraries, platform modules into Qt, remove the redundancies in Qt, and polish it into one nice consistent set of APIs, providing both, the wonderful KDE integration, consistency and convenience, as well as the simplicity and portability of the Qt platform.
-- Cornelius Schumacher

Comments (2 posted)

GParted 0.7.0 Released

GParted 0.7.0 has been released. "GParted is the Gnome Partition Editor for creating, reorganizing, and deleting disk partitions." Along with bug fixes, the major new feature in this release is support for the btrfs filesystem.

Full Story (comments: none)

KDE Community Ships November Updates

KDE has released version 4.5.3, with updates to the Plasma Desktop and Netbook workspaces, the KDE Applications and the KDE Platform. This release contains bugfixes and translation updates for the KDE 4.5 series.

Comments (11 posted)

libguestfs 1.6.0 has been released

The latest stable release of libguestfs, version 1.6.0, has been released. "libguestfs is tools and a library for accessing and modifying virtual machine disk images." Many new features have been added including a 4-5x performance boost when creating appliances, support for LUKS whole-disk encryption in guests, PHP bindings, copy-in and copy-out commands for recursively copying files and directories, and more. There are also two security fixes in the release.

Full Story (comments: none)

monotone 0.99 released

Version 0.99 of the monotone source code management system has been released. New features include reworked selectors, a new URI syntax, a cleaned-up command-line interface, new automate commands, and more. The 1.0 release, which will contain only bug fixes on top of 0.99, is expected by the end of the year. Note that this release has one serious bug which affects 64-bit users.

Full Story (comments: 8)

notmuch release 0.4 now available

After a long break, we have a new release of the notmuch mail client. "It may sound foolhardy, but I really would like to have releases happen as often as once per week. My plan is to start each week by simply looking to see if new code has landed, and if so, push it out in a new release. Let's see how well that works. In the meantime, enjoy this release which provides some important new command-line functionality, (notmuch search --output, notmuch show --format=mbox), lots of emacs interfaces (all sent messages now saved to mail store by default), and one fairly critical bug fix (avoid a possibility for a corrupt database if "notmuch new" is interrupted)."

Full Story (comments: none)

pixman major release 0.20.0 now available

Verion 0.20.0 of pixman, the "pixel-manipulation library for X and cairo" is now available. This is a major release with improvements to radial, conical, and large linear gradient rendering, as well as performance improvements for image scaling, affine transformations, ARM NEON, and SSE2.

Full Story (comments: none)

PyQt v4.8.1 Released

PyQt 4.8.1 has been released. "PyQt is a comprehensive set of bindings for the Qt application and UI framework from Nokia. It supports the same platforms as Qt (Windows, Linux and MacOS/X). " It supports Python v2.3 and higher, including Python v3. "The highlight of this release is full support for Qt v4.7.0 including the ability to integrate Python with QML, the new declarative markup language for building highly dynamic user interfaces."

Full Story (comments: none)

Rockbox 3.7 released

The Rockbox 3.7 release is available. There's a long list of new features, including support for more platforms, a number of new plugins, WMA Pro codec support, and more.

Comments (1 posted)

VP8 codec SDK "Aylesbury" released

The VP8 codec SDK—the codec used by WebM—has been released. Also known as libvpx, "Aylesbury" is the first of planned quarterly releases.

For Aylesbury the theme was faster decoder, better encoder. We used our May 19, 2010 launch release of libvpx as the benchmark. We're very happy with the results (see graphs below):
  • 20-40% (average 28%) improvement in libvpx decoder speed
  • Over 7% overall PSNR improvement (6.3% SSIM) in VP8 "best" quality encoding mode, and up to 60% improvement on very noisy, still or slow moving source video.

Comments (none posted)

Newsletters and articles

Development newsletters from the last week

Comments (none posted)

Page editor: Jonathan Corbet
Next page: Announcements>>

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds