Friday, April 23, 2010

CrossOver 9.0 Linux Review A finely packaged Wine

One of the most commonly cited causes for the dual-boot syndrome is the lack of availability of for the Linux OS. Open source developers have been hard at work bringing Linux applications to Windows, however getting Windows applications on Linux is a far harder task. Since a large number of Windows application are not open source, Linux developers are helpless in porting them to their favorite platform.
Linux's acceptance as a viable desktop OS, is then reliant on the availability of key application for it, and companies won’t be willing to port their applications to Linux till until enough people adopt a Linux desktop. This is the reason why it is easier to find applications such as MATLAB, Pro/Engineer, and Maya for Linux, as they users of such software have a larger presence on Linux.
If you are familiar with Linux, you will most probably be aware of Wine (a recursive acronym for WINE Is Not an Emulator), the non-emulator which allows you to run Windows application on Linux. Wine is not an emulator, it instead simply adds the ability to run Windows applications -- albeit partially -- to Linux, by implementing the Windows API for Linux. CrossOver by Codeweavers is a commercial supported version of Wine that allows running of Windows application on Linux or Macintosh. Best of all, Codeweavers, the company behind CrossOver, contributes back to the Wine project.CrossOver Linux provides many advantages over Wine, which we shall cover in this review, and they make it worthy investment. If you have ever used Wine and found it worthy of your support, one way would be to buy a license for CrossOver, which will give you a brilliant product in addition to the satisfaction of contributing to the Wine project.

CrossOver As a GUI for Wine

Over the years, Wine has improved in performance and compatibility, and while getting an application to run is still a hit and miss affair, Wine is not stable enough that one can consider doing serious work on an application if it is supported. However, for many people getting an unsupported windows application to run with Wine is a daunting task, one that may require some amount of hacking. Not somethin, a new Linux user will find very alluring.
Here CrossOver solves the problem in two ways, firstly, it run a greater number of the applications that are popular, and secondly, it makes it simpler to run application which are not supported out of the box.
Many application expect certain libraries and dlls to be present on your system, which may be reasonable expectations from a Windows system, but might be absent in Wine / CrossOver. Installing Microsoft Office 2007 using Wine, for example, requires the presence of many original Windows dlls and fonts for which you need to install a number of runtime packages and libraries. None of this is obvious, and installing this manually would require some research and patience.
CrossOver on the other hand comes with a wizard interface that guides you through installing your copy of Microsoft Office, Photoshop, Quicktime, etc, from its installation CD or file. It even ensures that any files required to run that particular Windows application are installed, and if not, it downloads and installs them for you.
The list of officially supported applications is still rather limited, and contains only some of the most requested, and popular applications, however this time around, with CrossOver 9.0 Codeweavers have taken advantage of their large community of users, who are willing to experiment and hack up "recipes" for installing unsupported applications. As more users try out applications and submit the tricks needed to make them work, the application will be able to guide users through installing a growing number of applications without needing to have any knowledge of what goes on in the background.

Bottling

Now comes a feature of Codeweavers CrossOver that even Windows doesn't have: Bottles.
Windows is a fragile mess of dll dependencies, and Wine / CrossOver is an attempt to "emulate" that mess. Since we are running application in their non-native environment, and one that they are not aware of, we have to be more accomodating.
Installing an application might result in breaking other applications, and often we may be faced with scenarios where it is necessary to run multiple versions of the same application (such as Internet Explorer) on your computer. For this CrossOver has a feature called Bottles.
A Bottle is essentially a virtual Windows environment in which applications can be installed. With CrossOver, you can create multiple bottles running different versions of Windows from Windows 98, Windows 2000, Windows XP and Windows Vista. Think of this like the compatibility mode setting available in Windows, which allows running of applications designed for older versions of Windows. You can specify which version of Windows CrossOver will mimic while running your application.

Bottles are an important feature of CrossOver

By default when you are installing applications using the CrossOver Software Installer, it will create a new bottle for every new application that is installed; however you can manually override the bottle that should be used.
What this means is, that you can have Internet Explorer 6, Internet Explorer 7, and Internet Explorer 8 all installed on the same computer, and run them at the same time! Since they will be in different bottles they will not be aware of each other’s existence. In fact, you can have multiple copies of a bottle so you could test the application under different conditions. For instance, you can have one bottle with Flash 10 installed and another with Flash 10.1 installed.
It is possible to have the same functionality in Wine, however doing so is not as simple. With Wine using "bottles" (or "prefixes" as they are known for Wine) requires constant fuddling around with the command line, and are less powerful and flexible. Although GUI tools such as Q4Wine do exist to simplify the task.
You might wonder what the benefit of this might be -- why the hell would someone want to install Internet Explorer, (especially Internet Explorer 6) on a perfectly good Linux machine. The fact is, this might not be matter of "want" but of "need". For someone who is a web developer, running Linux, it is surely annoying to need to reboot your computer, or install Windows in a Virtual Machine every time you need to test how a website works for those using Internet Explorer on Windows. Not only is it time consuming to do so, it requires that you obtain a Windows License. While Microsoft does provide copies of VMs with different version of IE installed, they are time limited versions and not exactly friendly to install in Linux.
Bottles allow you to isolate changes very well, so if anything goes wrong, you can always delete the bottle and start again, without affecting applications installed in other bottles. You can open a bottle for testing and then delete it off once you are done.
Since CrossOver can be run from the command line and allows launching Windows exes by simply clicking on then, you need to set a default bottle which will be used in such instances. CrossOver has a rich collection of command line options, so for those who prefer that route the option is there.
A brilliant functionality CrossOver provides for bottles is that they can be packaged into a convenient archive which includes all the settings and installed applications. This is especially useful if you want to package all your bottles for reinstalling after a reformat, or moving to a different computer, for distributing an installed application to others, or simply for backup. An even better option for system administrators is available in the professional version of CrossOver which allows one to create a Linux rpm / deb package of the bottle applications! This way a system administrator can customize and configure a Windows application which doesn't run out-of-the-box, and simply distribute the rpm. Such rpms will be usable even with a Standard version of CrossOver, of course, as long as you have the requisite number of licenses for the application.
Another interesting option present in the professional version of CrossOver is the ability to have "managed bottles" which means that an application can be installed once by an admin, and shared with all users on the system, thereby saving space. This managed bottle can be used and modified by any user on the system while saving only the changes in their own accounts.

Integration

There is no doubt that using something like CrossOver or Wine will not give as stable and reliable performance as running the same application on a VM, however the kind of integration that one gets from running an application natively is something that VMs are only now inching towards.
Simple actions such as handling file associations, dragging dropping, copy paste are problematic when dealing with a VM. With Wine or CrossOver, this is not an issue, since both applications are running on the same system.
That said, there are bound to be problems in integration between Windows and Linux due to the differing paradigms. Linux file managers for example usually have a MIME-based system for file associations, while Windows uses file extensions.
Even so, CrossOver integrates well with the OS. Applications installed in the system neatly create icons in the KDE / Gnome menu under "Windows Applications" and on the desktop. Installed applications can handle file associations and can can handle drag drop and copy paste.
Windows applications launch when double clicked (if they are supported obviously), msi installers however, do not. CrossOver can install from msi files using the Software Installer though.

Extensibility with C4 XML profiles

One of the best features added in the 9th version of CrossOver Linux has to be the new C4 (Codeweavers CrossOver Compatibility Center) profiles feature. This allows third parties to write small XML scripts which can be used to install applications which are not officially supported by Codeweavers. These XML profile files can be used to install unsupported software using the Software Installer wizard interface. These XML files can be distributed as ".c4p" files and can use used with the Software Installer.

While creating such profiles can be a daunting task for an average computer user, community created profiles for popular applications means that you may find that a growing number of applications available for installation using the wizard. In fact some of the application which are unsupported in the release of CrossOver 9.0 have c4p profiles available via the Compatibility Center. One such example is Photoshop CS3.
The profile configuration system for CrossOver is advanced enough to support application dependencies, along with pre-install and post-install actions, and detecting the application installation CD to make the installation process as smooth for the end user.
An organization using CrossOver can take advantage of this features by providing employees profiles for commonly used application which are not supported in the Software Installer. While it is much simpler to just package the application in an archive or rpm / deb installer for distributing to end users, support for profiles is present in the standard version as well, unlike support for creating rpm / deb installers, any may be used to to much the same effect.
Currently though this only an alpha feature of the software and will display a warning when you try to install any application using profiles. The profiles available right now are also limited, and don't cover many applications, they are available as examples for third parties to create their own profiles.

CrossOver support

While it is difficult to rate and review the kind of support you get with a product, considering the complex nature of the product, and the fact that it will at its best can only accomplish a limited amount of what it has set out to do. It is nonetheless possible to enumerate the options available.
Since part of what you are paying for is software support, it is important to know how much you can get. With the wide array of applications available for Windows and the multitude of versions of each, and the stream of updates which follow, it is impossible for the people at Codeweavers to provide support for all. Don't expect Codeweavers to help you install that special Kundali software that only your local CyberCafewallah sells!
If you purchase CrossOver Standard, you are eligible to receive Level 3 support, which means you will get support "for installation issues or major show stopping issues" that you encounter while running or installing a supported applications if you are using one of their "tested distributions." The support expires after 6 months, during which you will also be eligible to receive any minor (v8 to v8.1) or major (v8 to v9) upgrades. There is no way to renew support once it expires, although you can simply repurchase the software.
Users of the Professional version, are eligible for Level 2 support. It is similar to Level 3 support, however Codeweavers will entertain problems you have while using the application on an unsupported distribution. Additionally, any Level 2 problems will eventually see a fix in a future version.
Level 1 support is the support level Codeweavers gives to customers who purchase a multi-user license for over 100 people.
Other than that, Codeweavers has a huge database of applications called Codeweavers CrossOver Compatibility Center (C4). It contains details information of how well applications intall and run on CrossOver along with information about bugs, tips and tricks for running / installing the applications, screenshots, and even forums for each applications.
Here registered members can also vote for which application they would like to see running on CrossOver, so that Codeweavers know how to prioritize fixes. They also maintain ranks of application based on how well they run, or voted, or pledges etc.
Pledges are another way of measuring the priority of an application. Pledges allow registered members to, in a way, put their money where their mouth is and declare how may licenses of CrossOver they will be willing to purchase, if the application they are pledging for is supported.
Overall, Codeweavers has found an excellent way to contribute to open source development, and towards increasing Linux adoption while still managing to make money. While the 6 month support might seem a little less, in the kind of dynamic situation that Wine is, it is to be expected. A CrossOver license in the end, is not that expensive. being a mere $39.95 (around Rs. 1900) for the standard, and $69.95 (around Rs. 3200) for Professional, and will discounts available for bulk purchases.

Conclusion

CrossOver is an impressive solution for running Windows applications on Linux, although it is far from perfect. The very premise of the application -- which is to be able to run all Windows applications flawlessly -- is something which it is still far from accomplishing at present. While this may be disappointing to some, it is something that CrossOver states very clearly. They make no false or exaggerated claims of what their application can accomplish.
Whatever CrossOver does try to accomplish, is something which is in within the purview of Wine as well. While CrossOver is a superset of Wine, it is worthwhile to note what elements it adds to its counterpart and then decide whether those are worth paying for.
Over and above being simply allowing Windows applications to run, CrossOver acts as a good bridge between the differing paradigms of Windows and Linux, with support for creating Linux packages out of Windows applications, and distributing them as easily, by creating virtual bottles, and automatically installing dependencies of applications. For those coming fresh from a Windows environment, many will be unable to figure out the often confusing steps required to run Windows applications.
For anyone needing a supported version of Wine, or a simple-to-use interface for installing and managing Windows applications, CrossOver if your best bet. If you wish to support Wine development, then any money spent on Codeweavers products is sure to end up promoting the development of Wine. If there are applications you need to run on Wine which aren't supported yet, pledging and voting for them is a good way of directing the development of Wine.
If however you need to run Windows applications on Linux and are not bothered by the added complexity of the commandline tools for configuring and running Windows applications, and are comfortable with installing 3rd party application to manage your installed applications and prefixes, you might be better off with the free open source Wine. Even so, CrossOver might feel like a worthy cause for investment to some; as it is a company which makes money while promoting a good cause and contributing to open source.Part 2Part 3