Difference between revisions of "Development Team/Jhbuild"
Sascha silbe (talk | contribs) (mention the need to run "sugar-jhbuild depscheck" regularly more clearly; remove obsolete instructions) |
Sascha silbe (talk | contribs) (→Other commands: fix subsections) |
||
Line 115: | Line 115: | ||
./sugar-jhbuild run | ./sugar-jhbuild run | ||
− | + | == If build breaks after an update == | |
The packages in sugar-jhbuild are the latest development versions, so you not only get the latest features, but also the latest breakages. The dependencies may change often, too, so be sure to run | The packages in sugar-jhbuild are the latest development versions, so you not only get the latest features, but also the latest breakages. The dependencies may change often, too, so be sure to run | ||
Line 123: | Line 123: | ||
If your problem persists for more than a day (and even though you installed all missing packages), please [http://dev.sugarlabs.org/newticket?component=sugar-jhbuild&version=Git%20as%20of%20bugdate&type=defect&summary=%3cPlease%20enter%20short%20summary%20of%20your%20problem%20here%3e&description=%3cplease%20copy%20exact%20error%20message%20and%20additional%20information%20here%3e file a bug report]. | If your problem persists for more than a day (and even though you installed all missing packages), please [http://dev.sugarlabs.org/newticket?component=sugar-jhbuild&version=Git%20as%20of%20bugdate&type=defect&summary=%3cPlease%20enter%20short%20summary%20of%20your%20problem%20here%3e&description=%3cplease%20copy%20exact%20error%20message%20and%20additional%20information%20here%3e file a bug report]. | ||
− | + | == From within Sugar == | |
Once you have Sugar running, here are some useful commands: | Once you have Sugar running, here are some useful commands: | ||
*'''Alt+Shift+F''' makes the frame appear and disappear | *'''Alt+Shift+F''' makes the frame appear and disappear | ||
Line 130: | Line 130: | ||
*'''Alt+Shift+O''' opens the search | *'''Alt+Shift+O''' opens the search | ||
*'''Alt+Shift+R''' rotates the screen | *'''Alt+Shift+R''' rotates the screen | ||
− | |||
− | |||
== Customize == | == Customize == |
Revision as of 13:37, 15 April 2009
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 jhbuild to get up and running with Sugar.
Compatible Platforms
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.
See the distribution specific instructions for information about whether your distribution is currently supported. Other distros which have a recent-enough release (e.g. including the latest stable GNOME release) can be supported if someone is willing to maintain the dependencies for that distro release (in config/sysdeps).
Check distro-specific instructions
Many distributions have some quirks that need to be catered for and there are different package managing tools in use, so please check the page for your distribution before proceeding:
Check out sugar-jhbuild
In a suitable directory, execute
git clone git://git.sugarlabs.org/sugar-jhbuild/mainline.git sugar-jhbuild
Build sugar base system and its dependencies
Change directory and start the build.
cd sugar-jhbuild ./sugar-jhbuild update ./sugar-jhbuild depscheck ./sugar-jhbuild build
Dealing with dependencies
sugar-jhbuild depscheck will print a list of required packages. They are part of the distribution you're using and should be installed using your favourite package manager (e.g. aptitude/synaptic for Debian, yum for Fedora). If you notice that there's a package missing from the depscheck output (i.e. it's required for Sugar to work properly and not installed, but depscheck does not mention it), please file a bug report (login required first, but currently no automatic redirection to login page) against the sugar-jhbuild Component in the Sugar Labs bug tracker.
Some tips:
- hulahop stopped building because I had installed a more recent version of xulrunner on my machine. The workaround was to
rm -rf ~/sugar-jhbuild/source/hulahop
and then run update and build again.
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
This will create a new profile in ~/.sugar/, i.e. ~/.sugar/2/. You will find logs and configuration for this instance here. The default profile is ~/.sugar/default/
Run an individual activity
Within sugar, e.g. in Terminal, this command launches an individual activity for testing:
sugar-launch [bundle name]
You will see debug output appearing in Terminal.
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/install/share/sugar/shell directory, backup, then edit the python program file emulator.py:
cd sugar-jhbuild cp install/bin/sugar-emulator install/bin/sugar-emulator.backup nano install/bin/sugar-emulator
Find this piece of code:
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))
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):
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))
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. Also note that 800x600 is not an optimal resolution for the window, because the activity circle will be vertically off center. 1024x768 is a more useable resolution.
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 Sugar mailing list: (Note that build will update first anyway, so run update separately if you want to see what changed more easily.)
./sugar-jhbuild update ./sugar-jhbuild build ./sugar-jhbuild run
If build breaks after an update
The packages in sugar-jhbuild are the latest development versions, so you not only get the latest features, but also the latest breakages. The dependencies may change often, too, so be sure to run
./sugar-jhbuild depscheck
regularly and install the missing packages.
If your problem persists for more than a day (and even though you installed all missing packages), please file a bug report.
From within Sugar
Once you have Sugar running, here are some useful commands:
- Alt+Shift+F makes the frame appear and disappear
- Ctrl-Q quits an activity
- Alt+Shift+Q quits Sugar
- Alt+Shift+O opens the search
- Alt+Shift+R rotates the screen
Customize
To customize the build create a configuration file, named .sugar.jhbuildrc, in your home directory.
Write access to the repositories
If you have write access to the repositories you can add this (if your login name happens to be marco):
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
- Taxonomy -- explains the components of Sugar (Glucose, Fructose, Sugar, Starches)
- Sugar Instructions -- how to actually use Sugar once you have it running
External links
- JHBuild manual
- Red Hat Magazine article: Introducing Sugar
- Tinderbox (see the "Sugar JHBuild" tab). The old sugar-jhbuild tinderbox.