A very short update.

  • Things are progressing quite nicely at the moment.
  • cdecl is a wonderful little program.
  • MSN is quite tricky.  I spent a good hour trying to figure out where it stores its usernames.  I cannot find my account (Passport) in the registry or the filesystem.
  • I just commmited code for the switch from Mini-XML to libxml2.  While parsing html with it is no longer an issue (what was I thinking), mxml would bail out whenever it encountered XML that it didn’t like, namely the vCards Gaim stores for Jabber accounts.

Next stop, some work towards a Firefox to Firefox importer and code cleanup so I can roll a udeb for a 0.1 release.

4 Responses to “A very short update.”

  1. Samuel Cormier-Iijima Says:

    Nice work :-). I noticed your code for registry access was a little messed up. You should have a look at the code I’m using: https://svn.bountysource.com/migrate/trunk/src/ntreg/
    The API’s cleaner and it’s faster since it uses mmap. Might be nice if it’s not too big to put in the udeb…
    How much of your code do you think will be reusable outside of the d-i context?
    Cheers,
    Samuel

  2. Evan Says:

    Thanks!

    Does this use code from chntpw? I had looked at that originally, but Colin Watson pointed out that it’s not GPL-compatible. He also suggested samba4’s registry code, which I had planned to take another crack at removing from the samba tree after m-a stabilized. As you point out, the existing code is less than stellar and I still need to throw in 95/98-style registry viewing functions.

    I think everything except the d-i specfics (the -ask and -apply scripts as well as the eventual Ubiquity interface stuff) should be portable to other distros, if that’s what you’re asking. All you need to specify on the command line to get the search and import programs to run is a path and user to import from, the type of OS you’re importing from, the object you’d like to import, and a path and user to import that data to.

  3. Samuel Cormier-Iijima Says:

    I based my code off chntpw (not realizing that it wasn’t GPL), but it’s completely rewritten from scratch. I actually wrote a complete python implementation using struct, but I wanted to learn some of python’s internals so I ended up writing one in C and writing an interface :-), so it’s all original code. At this point I’m considering getting out my copy of Windows 98 and testing some stuff with that. Is being able to migrate from Win 95/98 part of your goal? I’m not sure how many people use it nowadays, it might be more worthwile to add Vista support. I was looking at IE7, which stores its bookmarks in the same way but uses a retarded OLE format for its live RSS feeds. I’m trying to reverse engineer it, Apache’s Jakarta POI didn’t quite work. Anyways, let me know what you think…

    As for the second part, I was wondering if it would be usable outside the installer as a tool that runs from an already-installed system… maybe migration-assistant could create a tarball of all docs/settings and have something run on next boot? I’m not too familiar with the d-i internals. Meh, whatever, keep me posted :-)

    Samuel

  4. Evan Says:

    Yeah, it shouldn’t be *too* hard to add 98 support as I imagine the only differences will be the in registry format and the locations of a few OS things. Of course I could end up being horribly wrong. During the school year I work at the campus helpdesk and while 98 machines are somewhat rare, there seem to be enough out there to warrant taking a stab at supporting them.

    Indeed, Vista support would be a good idea. The OLE format sounds scary, but at least we have a little time to work with that. Once I finish Windows XP, Linux, and Windows 98 support, I’ll give a hand in tackling that one.

    It should work fine on an already-installed system as that’s how I’m testing it at the moment. I think making it create tarballs is a bit outside the scope of the program, however a short wrapper script that uses os-prober, mount, and migration-assistant could easily achieve such a task:

    Detect the OSes using os-prober, mount them, feed the users plus the mountpoint and OS type to ma-search-users, a username returned from that plus the mounpoint and OS type to ma-search-items, and feed ma-import the result of that plus the username, OS type, path, the username you’re importing to, and the path you’d like to place all of that in. You can then do whatever you want with the resulting hierarchy.

    Importing from existing dual boot systems would be a nice thing to include in the examples folder or possibly as an extra executable in the package.

Leave a Reply

Just another WordPress weblog