On Tue, 2007-12-04 at 17:58 +0100, Pavol Rusnak wrote:
Hello all!
Ubuntu came with nice feature called Migration Assistant. It helps user to migrate documents and settings from another OS present on system. Currently it supports Windows (XP and Vista) and Linux. We imagined that it would be nice feature to have also in SUSE, so I began investigating it.
MA is set of command line utilities [1] and GUI frontend. Ubuntu's frontend is tightly connected with their installer and can be seen for example here [2].
[1] http://launchpad.net/migration-assistant/ [2] http://www.michaellarabel.com/?k=blog&i=83
I built command line utilities in Build Service using some patches from Mandriva and me, but the hardest task was to implement GUI that can be used in SUSE. I was deciding between Qt application and YaST module. Finally I decided for second option, because that way it can be easily integrated into our installation process. After some hours and help from Martin Vidner (thanks!) I finished this YaST module and put it together with cmd-line tools into BuildService.
I'm aware that this YaST module has bugs in it (it was my first YaST module ever) and command line utils are not at their best also. :) But please, if you are interested in this tool (and have for example dual-boot with Windows or use more Linux instances on your computer), I would be really glad if you test this piece of software and I'll be looking forward to your feedback. Patches are of course welcome! :)
Sources are available from BuildService project home:prusnak:migration, where you can also find RPM packages built for your SUSE distribution:
https://build.opensuse.org/project/show?project=home%3Aprusnak%3Amigration http://download.opensuse.org/repositories/home:/prusnak:/migration/
One known bug and you probably should be aware of it: tools import data into /home/$USER , so YaST module should not be run as root. (Running as root will import data into /home/root). I will deal with this later and maybe solve this probably by adding combobox to select user in YaST when running module as root.
I would like to rewrite command line utilities from scratch, using C++ in future. Currently they are written in pure C and the code is pretty difficult to extend. I plan to use some kind of interfaces which will allow to write import plugins. Also support for migrating system wide settings could be nice (for example, various config files from /etc or registry, copying binary wifi driver from Windows into ndiswrapper), but MA can import only user settings right now. I'm open to any of your ideas! :)
I love it when people see a need and immediately set out and do something about it. Excellent work! --Jonathon Robison