jeudi 27 mai 2010

0install (Zero-install) for OOo4Kids

Many thanks to Aleksey Lim who adapted OOo4Kids to the Zero Sugar Distribution system ***.

To explain everything, Aleksey wrote a dedicated page on the OOo4Kids Wiki

What you have to do is just follow the instructions (and report us feedback), and you should be able to install OOo4Kids using this nice system. A lot of locales are possible, and the theorical number is high (around 117), but the localization is currently done for 12 or 13 locales only at the moment.

*** the initial mail

lundi 16 novembre 2009

First installer for the XO

After a day full of hard work, we are finally able to provide the first installer of OOo4Kids on the XO. Everything is detailed here. Please be aware that it is still a "beta" version: it does not yet every details for an official XO activity and can be pretty unstable. It still works pretty well. The .xo archive weight 113~Mbs. To install it, download it and use the "sugar-install-bundle" command in the XO's terminal.

Thanks a lot to Eric Bachard who helped us a lot putting the new organization of the installation set in place.

Enjoy !

vendredi 6 novembre 2009

Progress

Some progress have ben made since last time.

-X window properties are now correctly set, and are directly inserted inside the source code of OOo4Kids
-The organization of the files of the installation set has been remade to fit correctly into Sugar's bundle. Theoretically, it works, but we haven't been yet able to build OOo4Kids entirely on Sugar (which is the only OS yet that is unable to build it, we are currently working on the issue). Many thanks to Stephan Bergmann for all the tips he gave us on this subject and Eric Bachard who did most of the work!

Next step will be linking OOo4Kids with the journal and forbidding him to right anywhere in the system.

Work on the performances is still going on. One of the point that will probably be fixed is the limitation of the size of a few libraries, which are loaded during launch despite being useless at this point of the execution.

mardi 13 octobre 2009

First use of Sugar Coating.

In order to be able to do a good job porting OOo4Kids on Sugar, we tried to try it out with one project we've done during school. Nothing big, only a "Raytracer" that draws a Sphere in 3D (that does far much than that, but we will only use this fonction for now).

First, we made a proper compilation on the XO-1 (recompilation of our libs and the project itself, not that hard) and then tried to add it to the activities (and by the way adding our activity to the journal) of Sugar using the HelloWorldActivity as a sample, that worked but we had a problem: it opened a window for the activity and one another for our Raytracer, so that was quite a mess.

Then we tried the Sugar Coating method (by the way, thank to the Sugar-labs who gave us this hint on #sugar). The sugar coating is a method that adds a Linux binary to Sugar Activities (available on http://wiki.sugarlabs.org/go/Running_Linux_Applications_Under_Sugar and on http://www.catmoran.com/olpc/sug). We that followed what the script was telling us to do and the first problem was solved but the Sugar coating doesn't handle the journal and the toolbox, so we will have to take that from the HelloWorldActivity tutorial and add it to the Sugar Coating.

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.

mercredi 7 octobre 2009

First Step: Sugarizing Hello World

Everything related to Sugar's activities is located in /home/olpc/Activity . Each folder represents one activity and everything that is related to it is present in the proper folder.



Example in HelloWorldActivity.activity:



Once everyfile is in it's due place (follow the tutorial shown on the previous post for more details), one needs to restart Sugar by pressing ctrl+alt+erase. The activity won't appear on the desktop... yet.

But if you go check in the activity list...





... and click the little star, then the icon will automatically be added to the circle on the desktop.



From here on, you can freely launch the HelloWorld Activity, and have proper entries inside the journal each time you end this activity.

If you followed the tutorial, you might think: "Yeah, this doesn't seem that hard." Unfortunately, HelloWorld being the smallest application ever (here, consisting on one tiny, tiny little .py file), this of course was pretty quick and easy to do. Now for something like OOo4Kids, this will be much, much harder, for many reasons, and not only because of it's size.

Prologue: Work Environment


Time to take care of the most important part of our training period: making OOo4Kids run on a XO. And, more than that, make it compatible with every Sugar application such as the journal and the desktop... Because of course, a mere recompilation of OOo4Kids on Sugar would fix the first issue pretty easily, which is not much fun.

So, how do one sugarize an application, and what does it gives in the end? Let's start with sugarizing HelloWorld. A fully documented and described tutorial is available here ( http://wiki.laptop.org/go/Activity_tutorial ). It works perfectly fine and gives a nice result - I will just allow myself to do a "step-by-step howto" with some images.

First, we will need to open a terminal to be able to navigate in the systeme. The most simple is to use the terminal activity...



... but a /dev/tty2 is fine too (open it by pressing ctrl+alt+group/neighborhood, return to sugar by pressing ctrl+alt+home)


Most of the work will be done using the terminal, until OOo4Kids runs fine on the XO.