lundi 12 octobre 2009

Second Step: Roadmap for OOo4Kids

As we said, OOo4Kids has a few elements that will make the sugarization harder than in HelloWorld's case. The two most important are:
-Really heavy in term of size (not even counting the sources);
-C/C++, not directly compatible with the sugar special elements (the journal for exemple).
Therefore, we will need to make sure few things are done for everything to work properly. Here is a rough roadmap of everything that will be needed:

Step 1 - get a Sugar-compatible executable.
The best way to do this would be to recompile it using Sugar on a Stick. There is also the possibility of using the Sugar Coating method, even though it might have an impact over the performances.

Step 2 - Establishing the Bundle
We will need to prepare the OOo4Kids.activity directory that will contain everything that is related to the program. Every requirement is detailed here. There are many files to fill, but nothing too difficult.

Step 3 - Organisation of OOo4Kids' libraries
The organisation of OOo4Kids' libraries, images, scripts... will have to be modified in order to "fit" in the bundle. It will need to be a bit different than a classic installation because of the whole concept of Bundle.

Step 4 - Linking OOo4Kids to the journal
For OOo4Kids to become a real XO activity, it needs to be working tgether with the journal. Unfortunately, as the journal as been thinked in python, it seems according to the documentation that the only way of interacting with the journal is, of course, using python methods. We will have to think of a workaround to make things work properly.

Step 5 - Little Details

Almost done: what's left is building the MANIFEST file (find . -type f | sed 's,^./,,g' > MANIFEST ), restarting Sugar, and make sure everything works fine.

2 commentaires:

  1. Hi, congratulations on your progresses. Some remarks I would like to make:

    > -C/C++, not directly compatible with the sugar special elements (the journal for exemple).

    The python API is only a convenience for making easier to write relatively simple activities. You still can do everything that python activities do in C++ by using the D-Bus APIs. Bert Freudenberg is the main engineer behind eToys' sugarization and has documented these APIs here:

    http://wiki.laptop.org/go/Low-level_Activity_API

    eToys has 0 lines of Python and integrates very well in Sugar.

    > Step 1 - get a Sugar-compatible executable.

    Sugar is not a runtime environment, so "Sugar-compatible" doesn't apply to executables. You can see Sugar as equivalent to GNOME or KDE, the executables that can run on those environments depend on the OS they run on, not on the desktop environment.

    For example, if you want your executable to run on OLPC's 8.2 release, you want to build it in Fedora 9. If you want it to run on SoaS Strawberry, then you have to build it on Fedora 11. If you want to run it on the existing Gdium release, then in Mandriva 2008.1 for MIPS, etc.

    > There is also the possibility of using the Sugar Coating method, even though it might have an impact over the performances

    I don't think it will have any impact in performance, but I think that it will be cleaner if you just do what libsugarize does in your executable. It just sets some X window properties, you have more details in the wiki page mentioned above.

    > http://wiki.sugarlabs.org/go/Development_Team/Alman%5C_ac/Activity_Bundles

    There's a typo in the link

    > Step 4 - Linking OOo4Kids to the journal

    Hope the documentation in the wiki is enough, if it isn't don't hesitate in asking. I don't think you will need any workarounds.

    Good luck!

    RépondreSupprimer
  2. Hello tomeu, thanks a lot for your comment and your indications, it will help us a lot. It also seems we were mistaken when reading the documentation, now it's much better. I corrected the typo. Please continue to keep an eye on our progress to guide us if we make any mistake !

    RépondreSupprimer