software-alternatives-migration

Summary

This is a windows migration tool to migrate not settings, but programs. This program examines the uninstall information on the windows partition, just after the windows migration tool is run. It extracts the names of the applications that are installed on the windows OS, and requests alternatives available on linux from an external server (something like OSAlt.com or linuxeq.com). It then matches these results with the package database, and with a single check box, allows the user to select this program for installation. The OS installation progresses as normal, and when Ubuntu is installed, it installs the alternative programs as well. The user ends up with a system that not only looks and feels like their windows installation (because of the pre-existing windows migration tool) but also has the same capabilities, since the same types of programs are installed.

Rationale

We all know that there are great linux alternatives for software that people have for windows, but most new users who hear about this "Ubuntu Thing" don't. They just know that they can't use program X on linux. The hardy ones persevere, and that is when we get a new member of the ubuntu community. Many others just go back to windows, because they don't know that there are alternatives, or don't want to search for those alternatives.

This would examine the windows system that they are migrating from, and see which programs are installed. It would then contact an online database, and see what alternatives are available for those programs. If they are already on the Ubuntu standard installation, it would mark these as installed, but if they are not installed by default, it would have a check box to install the software easily and quickly once the rest of the system is setup, as the last step in installation.

Use cases

  • Joe, who has windows installed on his desktop at home, decides that he wants to try out this "Ubuntu Thing" he keeps hearing about. Not knowing anything about linux alternatives for windows software, he expects to be able do his bills like he does in windows with Quicken. He installs Ubuntu, which does not install any finance applications by default, and the installer sees he uses Quicken and asks if he would like to use a free equivalent program in Ubuntu. Joe says yes and finds the software he needs in the Office menu of his new Ubuntu system.
  • Fred, a business user, assumes that he won't be able to setup windows software in Linux. He decides to try out Ubuntu on an old computer to keep his main Windows machine isolated from the Internet and more secure. He installs it and is informed about the potential to run Windows programs on Linux via Wine, Crossover, etc. He investigates the websites given and after experimenting finds that he can use Ubuntu on all of his machines by running his legacy software using Crossover Office.

Scope

Design

The first screen will have a simple explaination of what the program is going to do, in non-geek terms. It will also explain that windows programs will not run on linux without some kind of an emulator, or application layer, and that there are situations that the program will not work at all. It will list these alternatives, referencing such sites as transgaming.com, codeweavers.com, and winehq.com ( think about VMware.com/paralells.com/win4lin.com as well). It will also ask if you want to install qemu (or something else like it) and wine. There will be check boxes for each of these programs.

The second screen is a loading screen where it gathers information about your windows system, and then contacts the server(s) to check on similar linux programs. It tells you what it is doing, and says that it is trying to connect to the internet. If there is no internet available, it says that it could not connect at this time, and refers you to the site for the frontend of the server (OSAlt.com, linuxeq.com, etc.) and says that you can look up software that you are looking for an alternative for here.

The third screen appears if the connection was successfully established. This screen is the main screen for your options. It shows a scrolling frame in the window that houses a list. That list is split into two sides, with entries running from the top to the bottom of the list, sectioned off by lines, or bars to indicate a different entry. In each entry, on the left side there is the name of a proprietary piece of software that is installed on the windows platform. On the right, in the same entry as the proprietary peice of software, is a list of one or more applications that can be installed out of the repository, which have similar or equivilent functionality as the proprietary application. They can be checked, and when checked will be installed on the first login to Ubuntu once installed.

Implementation

Requirements

  • The interface should be as simple as possible. See Design.
  • A database would have to be available that is community maintained, or at the very least, open for community contribution. Ideally this would be either Ubuntu Specific (removes the need to match up linux program names with Ubuntu Packages) or would be comprised of multiple sources (OSAlt.com and linuxeq.com spring to mind)
  • It should be programmed in Python, so as to be portable to other linux distributions, and have very little dependancies. This would also help in maintainability and integration with other parts of Ubuntu installation.
  • The program should automatically check if an alternative exists to an application installed under windows. It will return a checkbox list, and each of the check boxes will correspond with applications that can be installed from the repository. If the check box is checked, the item will install on the first login to the newly installed Ubuntu instance.
  • If an internet connection is not available, the program will refer the user to a frontend to the database it checks with, such as OSAlt.com or linuxeq.com, so that they can look up their programs on a machine with an internet connection.

Outstanding issues

  • Do we want to also check with WineHQ's database? We can sync up with the WineHQ application database, and check if the program is supported, and if it is silver or higher support, we can report back that it is known working in wine. We can also give a link to the wine page where the application is shown.

BoF agenda and discussion

Warbo: I'd also keep an eye on SeamlessWindowsIntegration since if implemented it would be a compelling choice for people switching to Ubuntu from Windows. Also, if that and WINE are taken into account then the given list could also include open source Windows software known to work in WINE but which does not exist for Linux, and perhaps even suggest non-free or commercial apps? (eg. 3D Studio Max could recommend Blender which is in the repos, but also Maya which is not) The user would be told that this software is non-free of course. (PS: I redid your Use Cases to show how this spec improves user's experience, rather than what the current problems are, and most were essentially the same as the first one Smile :) )


CategorySpec

software-alternatives-migration (last edited 2008-08-06 16:32:56 by localhost)