Changes

5,959 bytes added ,  05:06, 15 December 2007
{{Translations}}
One of the easiest ways to install [[Sugar]] is to use [[sugar-jhbuild]].

Sugar-jhbuild will automatically download the latest of Sugar's dependencies as well as Sugar itself directly from their source repositories, rather than relying on source packages that may have become stale. Below are generic instructions on how to use sugar-jhbuild to get up and running with Sugar.

==Compatible Platforms==

sugar-jhbuild is quite demanding with regard to the packages and setup for the host Linux distribution. As a result there are only a few Linux Distributions which are known to work with it.

The [[:Category:Installing Sugar|installing Sugar]] wiki category collects the various articles which detail platform-specific considerations for installing Sugar.

=== On 32-bit Linux ===

As of 2007-12-13 the distributions known to be able to support sugar-jhbuild are:

* [[Sugar_on_Fedora_7|Fedora 7]]
* [[Sugar_on_Ubuntu_Linux|Ubuntu Feisty Fawn (or Greater)]].
* [[Sugar_on_Gentoo_Linux|Gentoo]] (with a trivial work-around)

At the moment, a Fedora 7 install with sugar-jhbuild is probably the most "sure" approach to getting a working full-speed (non-emulated) working environment for developing on Sugar with the latest libraries and solid upgrade path. As most of the core developers are working on Fedora boxes with sugar-jhbuild it is the most likely environment to be supported and continue to receive support.

=== On 64-bit Linux ===

As of 2007-12-13 it is possible to build Sugar on 64-bit Linux with trivial workarounds/fixes. This has been confirmed on Gentoo amd64 and Debian Lenny (with the caveats below).

Sugar seems to be working on Debian Lenny (2007-11-05), though Python 2.5, even when installed, is not detected. Comment out the line '''jhbuild.commands.run('sanitycheck', config, [])''', line 95 of the file main.py, to get it to install.

==Checkout sugar-jhbuild==

In a suitable directory, execute

git-clone git://dev.laptop.org/sugar-jhbuild

==Build sugar base system and its dependencies==

Change directory and start the build.

cd sugar-jhbuild
git-pull
./sugar-jhbuild update
./sugar-jhbuild build

For the base packages , you may be able to use the binary packages from your GNU distribution instead of building them from scratch. Check the [[:Category:Installing Sugar|Installing]] or [[:Category:Linux distributions|Linux]] categories for specific distro info.

You may have some issues with penguintv on ubuntu, just inturupt the pull with a CTRL+C, open a shell, repeat the command manualy, and accept the certificate permanently.

==Run Sugar==

This command launches the Sugar emulator:

./sugar-jhbuild run

To exit the emulator, press Alt-Q.

== Running multiple instances==
To run multiple instances of sugar you can start it in the following way:

SUGAR_PROFILE=2 ./sugar-jhbuild run

== Run an individual activity ==

Within the sugar shell (./sugar-jhbuild shell), this command launches an individual activity for testing (from the [http://mailman.laptop.org/pipermail/sugar/2007-March/001720.html mailing list]):

sugar-activity [bundle name]

== Configure the mode and resolution of Sugar ==

You can make Sugar run in a window as well as specify a resolution. Within the sugar-jhbuild directory, backup, then edit the python program file '''sugar-emulator''':

cp build/bin/sugar-emulator build/bin/sugar-emulator.backup
nano build/bin/sugar-emulator

Find this piece of code:

<PRE>
cmd = [ 'Xephyr' ]
cmd.append(':%d' % display)
cmd.append('-ac')

if gtk.gdk.screen_width() < 1200 or gtk.gdk.screen_height() < 900:
cmd.append('-fullscreen')
else:
cmd.append('-screen')
cmd.append('%dx%d' % (1200, 900))
</PRE>

Comment out the '''if''' and '''else''' instructions, and specify the screen resolution and mode you want (it's important to delete 4 spaces before the "cmd.append" lines):

<PRE>
cmd = [ 'Xephyr' ]
cmd.append(':%d' % display)
cmd.append('-ac')

# if gtk.gdk.screen_width() < 1200 or gtk.gdk.screen_height() < 900:
# cmd.append('-fullscreen')
# else:
cmd.append('-screen')
cmd.append('%dx%d' % (800, 600))
</PRE>

Sugar will now run on a 800x600 window. This file may be replaced next time you update sugar-jhbuild, and you'll have to do this again.

== Other commands ==

JHBuild has several other commands that can be useful for development. You can get an overview with:

./sugar-jhbuild --help-commands

A useful sequence of commands for building Sugar, from the [http://mailman.laptop.org/pipermail/sugar/2007-February/001352.html Sugar mailing list]:

./sugar-jhbuild update
./sugar-jhbuild build
./sugar-jhbuild run

=== From Within Sugar ===
Once you have Sugar running, here are some useful commands:
*'''Alt+F''' makes the frame appear and disappear
*'''Alt+C''' quits an activity
*'''Alt+0''' brings up the developer's console
*'''Alt+Q''' quits Sugar

== Customize ==

To customize the build create a configuration file, named .olpc.jhbuildrc, in your home directory.

=== Write access to the repositories ===

If you have write access to the repositories you can add:
repos['gnome.org'] = ':ext:marco@cvs.gnome.org:/cvs/gnome'
repos['mozilla.org'] = ':ext:marco%gnome.org@cvs.mozilla.org:/cvsroot'
repos['dev.laptop.org'] = 'git+ssh://marco@dev.laptop.org/git/'
repos['dev.laptop.org/projects'] = 'git+ssh://marco@dev.laptop.org/git/projects/'

==Useful Internal Links==
* [[Understanding_sugar_code|Understanding Sugar Code]]
* [[Sugar_Components|Sugar Components]]

==External links==

* [http://www.gnome.org/~jamesh/jhbuild.html JHBuild manual]
* [http://www.redhatmagazine.com/2007/02/23/building-the-xo-introducing-sugar/ Red Hat Magazine article: Introducing Sugar]
* [http://learn.laptop.org/tinderbox/ Tinderbox] (see the "Sugar JHBuild" tab). The old [http://dev.laptop.org/~cjb/sugar-tinder/ sugar-jhbuild tinderbox].

[[Category:Installing Sugar]]
Anonymous user