Fifteen years in the making, everyone’s favorite software to run Windows programs on Linux and Unix, Wine, is almost ready for its 1.0 release.
If all goes well, Alexandre Julliard, Wine’s lead developer, says that Wine 1.0 should appear on June 20, two weeks after the program’s fifteenth birthday. While at this point there are about 1,300 Windows applications that will install and run on Wine to some degree, only four sets of Windows applications — Photoshop CS2, PowerPoint Viewer 97 and 2003, Word Viewer 97 and 2003, and Excel Viewer 97 and 2003 — are considered critical for the 1.0 release.
Wine, largely based on volunteer efforts, has always lacked the resources for comprehensive quality and assurance testing. This problem is even bigger than it appears since there are so many different Windows environments, Windows applications, and Linux distributions. Wine has spent so many years in testing in large part because it must replace poorly documented Windows application program interfaces (API), which vary wildly from one release of Windows to another.
As Julliard explains, “There are several reasons [it has taken Wine so long to get to this point]: the Windows API is huge, not well documented, and full of tricky behaviors and side effects that applications depend on. It’s also a moving target, as Microsoft keeps adding new features and pushing developers to adopt them (not always successfully, fortunately for us). Also, finding what goes wrong with an application is hard, because we don’t have access to the application source code so we can’t easily see what confuses it.”
In addition, Julliard says, “There are a huge number of Windows applications out there, and while most people only need one or two, they all need a different one or two. So for a credible 1.0 we need to support a broad range of applications, which means we can’t take any shortcuts in our implementation, since any shortcut is bound to break some application somewhere.”
Jeremy White is CEO of Wine’s commercial sibling, CodeWeavers, creators of Crossover Linux and Mac, programs that make it easy to use Wine on Linux and Mac OS X. White says, “I think people don’t realize just how very hard Wine is. We’re completely recreating Windows from the ground up. Microsoft, with their tens of thousands of employees, has a hard time shipping a new release of Windows that is backwards compatible *cough* Vista *cough*.
So imagine then, instead, a scrappy band of volunteers replicating that work with a fraction of the people.”
Despite these handicaps, over the years Wine has made it possible for Linux users to run popular Windows applications on their PCs. For instance, the core Microsoft Office 97, XP, and 2003 applications and Internet Explorer 6 have long worked without a hitch on Linux.
As Wine has matured, its reach has extended beyond ordinary office applications to games as well. For example, the popular World of Warcraft and Guild Wars online games now work well with Wine.
It wasn’t easy. For the first five years of Wine’s development it was pretty much a completely volunteer operation. The core developers decided to tackle bringing Windows programs to Linux because, Julliard says, “It was in the early days of Linux, and among the early adopters it was clear that this new system had a lot of promise, but of course it didn’t have any end user applications, while Windows had lots. So it was a fairly obvious question: how can we use all these applications?
“The original crew was Bob Amstadt, Peter MacDonald, Eric Youngdale, and myself,” Julliard says. We put together a prototype to run a ‘hello world’ Windows app, and this showed that the concept was viable. Then we moved on to Solitaire and then to bigger things…. Bob Amstadt was the maintainer for the first year of the project, but then didn’t have time for it anymore, so I took over.” Today, Julliard is the last of the core group of programmers working on Wine, but “we do have some developers that have been around for more than 10 years now.”
Wine was started before Windows 95 appeared, so the first target for Wine’s developers was the Windows 3.1 16-bit API. Wine’s first big success, according to Julliard, was “when we got Microsoft Office to run, about four years into the project (it was the 16-bit version of Office at the time), that was the first proof that our goals were reachable. Of course then 16-bit apps quickly got replaced by 32-bit ones, and that set us back a few years as we had to switch our core design to 32 bits.”
Starting in 1999, Wine started to gain traction. Julliard and White both say that Corel Corp.’s heavy investment in Wine in 1999 through 2000 was a major step forward for the open source project. “Another milestone,” Julliard says, “was the choice by Corel to use Wine to port its application suite [WordPerfect Office] to Linux; while it didn’t succeed commercially, it was a huge step for the visibility and credibility of Wine.” Today, WordPerfect for Linux only lingers on as abandonware.
White and other Wine supporters founded CodeWeavers in 1999 as a way both to make a living from Wine and to further Wine’s development. After that, Wine began to slowly pick up steam. Linspire, the desktop Linux distributors then known as Lindows, started sponsoring Wine’s work on Microsoft Office in 2002 and started sponsoring an annual Wine developer conference.
Unfortunately, Wine then ran into what eventually turned into a fork between the open source Wine project and what became a semi-proprietary Windows on Linux program: Cedega. The proprietary company Transgaming took Wine’s DirectX code and transformed it, via the WineX open source project, into the proprietary DirectX software Cedega. At the time, this was possible because Wine was under the X11 or MIT open source license. Wine is now under the Lesser GPL, which makes it impossible for Wine to be forked into a proprietary program.
According to White in a 2006 NewsForge interview, this forking caused Wine’s development to slow down for years. “Historically, the main interest for volunteer Wine developers was games; that was the primary focus for most of Wine’s early years (~1993-2000). When Transgaming started in 2001, they promised that they would release their DirectX improvements back to Wine. That cast a chill over games in Wine — why work on DirectX if all these improvements would ‘soon’ be coming back? Of course, no meaningful improvements have ever come back, which had the effect of creating a huge hole in what had been Wine’s very best facility.” By 2007, White says, “The Wine community had recovered from the hole created by Transgaming.”
The next big step forward came in 2005 when Apple introduced moved the Mac architecture to the Intel processor. This opened up a new possible market for Wine, and CodeWeavers started to invest in porting Wine to Mac OS X.
Wine’s biggest kick in the pants may have come in 2006 when Google got involved. White says, “This is actually a remarkable story of how much impact one person can have, because the honest truth is that for all that it’s cool to say that Google is involved, what’s really helped is that Dan Kegel [the WINE release manager], who happens to work at Google, is involved.”
Google’s first contribution was paying for CodeWeavers to bring over Picasa, its popular free photography program, to Linux. Google is also funding CodeWeavers’ work on getting Wine to support of Adobe Photoshop CS and CS2. Kegel says in a recent Google Open Source blog posting, “Photoshop is one of those applications that desktop Linux users are constantly clamoring for, and we’re happy to say they work pretty well now.”
White would like to see Windows applications work even better with Linux. Still, White says, “I think the key message people should get is that Wine 1.0 is not the Wine from three years ago, or even two years ago. It’s pretty remarkable in what it can do — people should give it a try.
Looking ahead, Julliard sees a lot more work ahead for the Wine crew. “There are a lot of things we want to support: USB devices, 64-bit apps, .Net apps, user interface themes, a Mac OS native interface, etc. Then of course all the new functions that Microsoft will keep coming up with, and all the remaining incompatibilities in the ones we have implemented already. There’s plenty to keep us busy for the next 15 years!”