| yokozar ( @ 2008-08-03 05:15:00 |
| Entry tags: | ubuntu, wine |
Bundling Windows Mono 2.0 with Wine
Mono 2.0 is set for a stable release in September. This puts it right on target to be shipped with Intrepid.
Wine needs an implementation of the .NET library in order to run a good chunk of Windows software. Some programs won't even install without .NET, even if they don't use it at runtime (programs obtained through the Gamers Gate downloader, for instance, behave this way).
Bundling Mono with Wine has so far been largely pointless - Mono simply didn't support enough of the API to attempt to run these programs. That's changing a bit with Mono 2.0, and hopefully not having Microsoft's .NET runtime won't result in a completely useless setup.
The goal is to be able to run programs with "mixed mode assemblies" - that is, programs that use both .NET stuff and also call the stock Windows APIs. These impure programs can't possibly run on Linux without being rewritten, no matter how good Linux Mono gets. This is where the Wine and Mono projects overlap.
So, here's the idea: I create a wine-mono package which has the Windows version of Mono 2.0 included. We then jerry-rig wineprefixcreate (the program that runs the first time you use Wine if you have no ~/.wine directory) to also install Mono 2.0 and set it as the .NET handler in the same manner as winetricks.
Ideally, this means most .NET apps the user wants to run will work out of the box (provided they have a clean Wine directory). If the user wants, they can also install Microsoft .NET on top of what we provide (using actual winetricks this time), and that should still work.
Of course, actually making these modifications and properly packaging up Windows Mono will be quite a bit of work, and I have a huge Wine todo list already...