Status report

Milan Mitrovic milhouse at
Tue Aug 2 21:35:04 CEST 2005

Hello everyone!

I completely missed Dirk's e-mail where he asked us to write weekly reports to 
the mailing list. I communicated with my mentors privately so far (and not 
frequently), but they recently pointed out that e-mail, so here it is.

I'm working on Kamion, a user state migration tool for KDE. First, here is a 
short intro on what it is supposed to do.

The main goal of Kamion is to be as user friendly as possible. For the end 
user, Kamion should present a checklist of resources available on the 
account, and let him select what he wishes to move. The resources are then 
packed into a .kamion file and ready for transport. On the target account, 
the resources are extracted, and again presented as a checklist for the user, 
and finally installed. Thats it for the user part.

To enable developers to add resources for their apps easily, the resource 
definitions are stored in xml files. Kamion basicly parses the definition 
files, locates the resources for the account, packs/unpacks them, and copies 
(merges) them to the new account.

Here is a description of the xml format.

  <name>E-Mail</name> -- The name that the user will see
  <app>kmail</app> -- The app that this resource is for
  <version>1.*</version> -- The versions of the app that are compatible
  <icon>kontact_mail</icon> -- The standard kde icon to use
  <data> -- Here is the actual data definition
    <file>/path/to/file</file> -- you can move files
    <tree>/path/to/dir</tree> -- trees
    <config>/path/to/configfile</config> -- or config files (merge)
    <file><config-entry file="/some/config/file" group="name" key="name"
      mask="mask"></file> -- you can read a path from some config file
      -- group and key are regexps, so you can select multiple values
      -- this will expand into multiple files
      -- mask is a regexp to match against the value (extract a substring)
    <config>/some/config/file</config> -- take this file
    <config group="foo" exclude="true">/some/config/file</config>
      -- exclude this group
    <config group="foo" key="bar">/some/config/file</config>
      -- but add this key
      -- any reasonable combination of include/exlude conf/group/key works
    <config>@data/kmail/somefile</config> -- you can use KStandardDirs
      -- standard resources as variables with @ as the first char
      -- @home also works
    <file>@data/<config-entry ...>/some/path/<config-entry ...>/filename</file>
      -- you can also do stuff like this, with as many config-entries 
      -- returning as many values as you like
  <optional> -- an option for this resource (any number of these)
    <name>Convenient option</name> -- name that will be shown for the option
      <config group="foo">/some/file</config> -- add this group
        -- overrides the setting in the main data
        -- definition if the option is selected

As for the week for week status report, I can't really remember what I've done 
exactly when, so you'll only get the current status.

The parser is completely finished, and I'm currently working on packaging. As 
I was somewhat shortsighted in the last weeks |) I have to do a little 
refactoring now. I expect to finish this and have packaging mostly working by 
the end of the week.

That's about it.

Milan Mitrovic
|  roses are #FF0000  |
| violets are #0000FF |
|     all my base     |
|  are belong to you  |

More information about the Kde-soc mailing list