<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sugarlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Estar</id>
	<title>Sugar Labs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sugarlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Estar"/>
	<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/go/Special:Contributions/Estar"/>
	<updated>2026-06-11T04:25:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild&amp;diff=21465</id>
		<title>Development Team/Jhbuild</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild&amp;diff=21465"/>
		<updated>2009-03-14T00:22:32Z</updated>

		<summary type="html">&lt;p&gt;Estar: /* Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Translations}}&lt;br /&gt;
&lt;br /&gt;
Sugar-jhbuild will automatically download the latest of Sugar&#039;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.&lt;br /&gt;
&lt;br /&gt;
==Compatible Platforms==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Distros supported by the development community are Debian unstable, Fedora Rawhide, Fedora 10, and Ubuntu 8.10. 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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Note that Debian Unstable and derived distros (e.g. Ubuntu Intrepid) contain a bug  in python-gnome that impedes running jhbuild &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To work around this use chrpath to remove the rpath setting from your system&#039;s gconf.so: &lt;br /&gt;
&lt;br /&gt;
  sudo aptitude install chrpath&lt;br /&gt;
  find /usr/lib/python-support/python-gnome2/python2.5/gtk-2.0 -name &amp;quot;*.so&amp;quot; | sudo xargs chrpath -d&lt;br /&gt;
&lt;br /&gt;
==Checkout sugar-jhbuild==&lt;br /&gt;
&lt;br /&gt;
In a suitable directory, execute&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.sugarlabs.org/sugar-jhbuild/mainline.git sugar-jhbuild&lt;br /&gt;
&lt;br /&gt;
==Build sugar base system and its dependencies==&lt;br /&gt;
&lt;br /&gt;
Change directory and start the build.&lt;br /&gt;
&lt;br /&gt;
 cd sugar-jhbuild&lt;br /&gt;
 ./sugar-jhbuild update&lt;br /&gt;
 ./sugar-jhbuild depscheck&lt;br /&gt;
 ./sugar-jhbuild build&lt;br /&gt;
&lt;br /&gt;
=== Dealing with dependencies ===&lt;br /&gt;
&lt;br /&gt;
At some point during running &#039;&#039;sugar-jhbuild update&#039;&#039; or &#039;&#039;sugar-jhbuild build&#039;&#039; you may be interrupted by an error listing some dependencies you don&#039;t have. The build will pause, and you&#039;ll see, among the text on your screen, something like this:&lt;br /&gt;
&lt;br /&gt;
 No package &#039;&amp;lt;packagename&amp;gt;&#039; found&lt;br /&gt;
&lt;br /&gt;
Usually this means it&#039;s looking for the &amp;lt;packagename&amp;gt;-dev. Install that package. (For instance, to fix a &amp;quot;No package &#039;libsoup2.4&#039; found&amp;quot; error, you&#039;d install libsoup2.4-dev.&lt;br /&gt;
&lt;br /&gt;
If that doesn&#039;t work, here are some further notes:&lt;br /&gt;
&lt;br /&gt;
* If you&#039;re given a list of packages that aren&#039;t installed, simply install them according to your distribution&#039;s package manager (yum, apt-get, etc.) and then try re-running the sugar-jhbuild command again.&lt;br /&gt;
* 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.&lt;br /&gt;
* You may have some issues with penguintv on ubuntu, just interrupt the pull with a CTRL+C, open a shell, repeat the command manually, and accept the certificate permanently.&lt;br /&gt;
* One other fix that I had to do was to export GTK2_RC_FILES=~/src/olpc/sugar-jhbuild/build/share/themes/sugar/gtk-2.0/gtkrc&lt;br /&gt;
and also symlink build/share/icons/sugar to build/share/icons/hicolor.  These two steps may not be necessary, but they made things work on my Ubuntu installation as of March 31, 2008.  [[User:Blaketh|Blaketh]] 03:08, 31 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
* hulahop stopped building because I had installed a more recent version of xulrunner on my machine. The workaround was to &amp;lt;code&amp;gt;rm -rf ~/sugar-jhbuild/source/hulahop&amp;lt;/code&amp;gt; and then run update and build again.&lt;br /&gt;
==== Debian ====&lt;br /&gt;
On Debian-based distros, you can use this invocation to install all dependencies:&lt;br /&gt;
&lt;br /&gt;
 ./sugar-jhbuild depscheck -s | sudo xargs aptitude -y install&lt;br /&gt;
&lt;br /&gt;
==== Fedora ====&lt;br /&gt;
&lt;br /&gt;
Fedora dependencies (to be installed before going through the jhbuild process) are [http://wiki.laptop.org/go/Sugar_on_Fedora#Step_1:_Install_the_build_prerequisites listed here].&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
&lt;br /&gt;
Ubuntu dependencies are (at least):&lt;br /&gt;
&lt;br /&gt;
python2.5-dev&lt;br /&gt;
&lt;br /&gt;
python-gnome2-dev&lt;br /&gt;
&lt;br /&gt;
python-gnome2-desktop-dev&lt;br /&gt;
&lt;br /&gt;
libgnomecups1.0-dev&lt;br /&gt;
&lt;br /&gt;
intltool&lt;br /&gt;
&lt;br /&gt;
libtool &lt;br /&gt;
&lt;br /&gt;
python-dev g++ &lt;br /&gt;
&lt;br /&gt;
libgtk2.0-dev &lt;br /&gt;
&lt;br /&gt;
python-gtk2-dev &lt;br /&gt;
&lt;br /&gt;
python-cairo-dev &lt;br /&gt;
&lt;br /&gt;
libcroco3-dev &lt;br /&gt;
&lt;br /&gt;
libgsf-1-dev &lt;br /&gt;
&lt;br /&gt;
libenchant-dev &lt;br /&gt;
&lt;br /&gt;
libfribidi-dev &lt;br /&gt;
&lt;br /&gt;
libboost-dev &lt;br /&gt;
&lt;br /&gt;
libxt-dev &lt;br /&gt;
&lt;br /&gt;
libexpat1-dev &lt;br /&gt;
&lt;br /&gt;
gettext &lt;br /&gt;
&lt;br /&gt;
libwv-dev &lt;br /&gt;
&lt;br /&gt;
zlib1g-dev &lt;br /&gt;
&lt;br /&gt;
gnome-common &lt;br /&gt;
&lt;br /&gt;
python-numpy &lt;br /&gt;
&lt;br /&gt;
libwnck-dev &lt;br /&gt;
&lt;br /&gt;
xserver-xephyr &lt;br /&gt;
&lt;br /&gt;
librsvg2-dev &lt;br /&gt;
&lt;br /&gt;
python-cjson &lt;br /&gt;
&lt;br /&gt;
gtk-doc-tools &lt;br /&gt;
&lt;br /&gt;
libglade2-dev &lt;br /&gt;
&lt;br /&gt;
libidl-dev &lt;br /&gt;
&lt;br /&gt;
libgconf2-dev &lt;br /&gt;
&lt;br /&gt;
libgnomevfs2-dev &lt;br /&gt;
&lt;br /&gt;
libpoppler-glib-dev &lt;br /&gt;
&lt;br /&gt;
icon-naming-utils &lt;br /&gt;
&lt;br /&gt;
icon-slicer &lt;br /&gt;
&lt;br /&gt;
libasound2-dev &lt;br /&gt;
&lt;br /&gt;
python-xapian &lt;br /&gt;
&lt;br /&gt;
libxapian15 &lt;br /&gt;
&lt;br /&gt;
libdbus-1-dev &lt;br /&gt;
&lt;br /&gt;
libdbus-glib-1-dev &lt;br /&gt;
&lt;br /&gt;
libloudmouth1-dev &lt;br /&gt;
&lt;br /&gt;
libavahi-gobject-dev &lt;br /&gt;
&lt;br /&gt;
python-avahi &lt;br /&gt;
&lt;br /&gt;
libpoppler-dev &lt;br /&gt;
&lt;br /&gt;
xulrunner-dev&lt;br /&gt;
&lt;br /&gt;
automake1.10&lt;br /&gt;
&lt;br /&gt;
==Run Sugar==&lt;br /&gt;
&lt;br /&gt;
This command launches the Sugar emulator:&lt;br /&gt;
&lt;br /&gt;
 ./sugar-jhbuild run&lt;br /&gt;
&lt;br /&gt;
To exit the emulator, press Alt-Q.&lt;br /&gt;
&lt;br /&gt;
== Running multiple instances==&lt;br /&gt;
To run multiple instances of sugar you can start it in the following way:&lt;br /&gt;
&lt;br /&gt;
 SUGAR_PROFILE=2 ./sugar-jhbuild run&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Run an individual activity ==&lt;br /&gt;
&lt;br /&gt;
Within sugar, e.g. in Terminal, this command launches an individual activity for testing:&lt;br /&gt;
&lt;br /&gt;
 sugar-launch [bundle name]&lt;br /&gt;
&lt;br /&gt;
You will see debug output appearing in Terminal.&lt;br /&gt;
&lt;br /&gt;
== Configure the mode and resolution of Sugar ==&lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;&#039;emulator.py&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 cd sugar-jhbuild&lt;br /&gt;
 cp install/share/sugar/shell/emulator.py install/share/sugar/shell/emulator.py.backup&lt;br /&gt;
 nano install/share/sugar/shell/emulator.py&lt;br /&gt;
&lt;br /&gt;
Find this piece of code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
    cmd = [ &#039;Xephyr&#039; ]&lt;br /&gt;
    cmd.append(&#039;:%d&#039; % display)&lt;br /&gt;
    cmd.append(&#039;-ac&#039;)&lt;br /&gt;
&lt;br /&gt;
     if gtk.gdk.screen_width() &amp;lt; 1200 or gtk.gdk.screen_height() &amp;lt; 900:&lt;br /&gt;
         cmd.append(&#039;-fullscreen&#039;)&lt;br /&gt;
     else:&lt;br /&gt;
         cmd.append(&#039;-screen&#039;)&lt;br /&gt;
         cmd.append(&#039;%dx%d&#039; % (1200, 900))&lt;br /&gt;
&amp;lt;/PRE&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Comment out the &#039;&#039;&#039;if&#039;&#039;&#039; and &#039;&#039;&#039;else&#039;&#039;&#039; instructions, and specify the screen resolution and mode you want (it&#039;s important to delete 4 spaces before the &amp;quot;cmd.append&amp;quot; lines):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
    cmd = [ &#039;Xephyr&#039; ]&lt;br /&gt;
    cmd.append(&#039;:%d&#039; % display)&lt;br /&gt;
    cmd.append(&#039;-ac&#039;)&lt;br /&gt;
&lt;br /&gt;
#    if gtk.gdk.screen_width() &amp;lt; 1200 or gtk.gdk.screen_height() &amp;lt; 900:&lt;br /&gt;
#        cmd.append(&#039;-fullscreen&#039;)&lt;br /&gt;
#    else:&lt;br /&gt;
    cmd.append(&#039;-screen&#039;)&lt;br /&gt;
    cmd.append(&#039;%dx%d&#039; % (800, 600))&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sugar will now run on a 800x600 window. This file may be replaced next time you update sugar-jhbuild, and you&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Other commands ==&lt;br /&gt;
&lt;br /&gt;
JHBuild has several other commands that can be useful for development. You can get an overview with:&lt;br /&gt;
&lt;br /&gt;
 ./sugar-jhbuild --help-commands&lt;br /&gt;
&lt;br /&gt;
A useful sequence of commands for building Sugar, from the [http://mailman.laptop.org/pipermail/sugar/2007-February/001352.html Sugar mailing list]: (Note that build will update first anyway, so run update separately if you want to see what changed more easily.)&lt;br /&gt;
&lt;br /&gt;
 ./sugar-jhbuild update&lt;br /&gt;
 ./sugar-jhbuild build&lt;br /&gt;
 ./sugar-jhbuild run&lt;br /&gt;
&lt;br /&gt;
=== If update and build don&#039;t work ===&lt;br /&gt;
&lt;br /&gt;
In May 2008 there were some changes that broke updates on sugar-jhbuild. A version from before this date cannot update or build after this date; the symptoms are various, but generally include errors which mention the &amp;quot;build-scripts&amp;quot; directory. You need to rebuild from scratch in a new jhbuild directory. Something like the following:&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 mv sugar-jhbuild sugar-jhbuild.old&lt;br /&gt;
 git-clone git://dev.laptop.org/sugar-jhbuild&lt;br /&gt;
 &lt;br /&gt;
then, to save bandwidth, move the tar files from your old version:&lt;br /&gt;
&lt;br /&gt;
 mkdir sugar-jhbuild/source&lt;br /&gt;
 mv sugar-jhbuild.old/source/*.tar* sugar-jhbuild/source&lt;br /&gt;
&lt;br /&gt;
then build:&lt;br /&gt;
&lt;br /&gt;
 cd sugar-jhbuild&lt;br /&gt;
 ./sugar-jhbuild build&lt;br /&gt;
&lt;br /&gt;
You may then also see some new dependencies; see the relevant instructions above. &lt;br /&gt;
&lt;br /&gt;
=== From within Sugar ===&lt;br /&gt;
Once you have Sugar running, here are some useful commands:&lt;br /&gt;
*&#039;&#039;&#039;Alt+Shift+F&#039;&#039;&#039; makes the frame appear and disappear&lt;br /&gt;
*&#039;&#039;&#039;Ctrl-Q&#039;&#039;&#039; quits an activity&lt;br /&gt;
*&#039;&#039;&#039;Alt+Shift+Q&#039;&#039;&#039; quits Sugar&lt;br /&gt;
*&#039;&#039;&#039;Alt+Shift+O&#039;&#039;&#039; opens the search&lt;br /&gt;
*&#039;&#039;&#039;Alt+Shift+R&#039;&#039;&#039; rotates the screen&lt;br /&gt;
&lt;br /&gt;
=== Creating an xsession for Sugar-jhbuild ===&lt;br /&gt;
Create the file /usr/share/xsessions/sugar-jhbuild.desktop with the following content:&lt;br /&gt;
&lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Name=Sugar jhbuild&lt;br /&gt;
 GenericName=Sugar&lt;br /&gt;
 Exec=/usr/bin/sugar-jhbuild&lt;br /&gt;
 Type=Application&lt;br /&gt;
&lt;br /&gt;
Create the file /usr/bin/sugar-jhbuild with the following content:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 export GTK2_RC_FILES=/home/walter/sugar-jhbuild/install/share/sugar/data/sugar-xo.gtkrc&lt;br /&gt;
 exec /home/walter/sugar-jhbuild/sugar-jhbuild run dbus-launch /home/walter/sugar-jhbuild/install/bin/sugar-shell&lt;br /&gt;
&lt;br /&gt;
where you substitute the path of wherever you installed sugar-jhbuild for &amp;quot;/home/walter&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Customize ==&lt;br /&gt;
&lt;br /&gt;
To customize the build create a configuration file, named &#039;&#039;.sugar.jhbuildrc&#039;&#039;, in your home directory.&lt;br /&gt;
&lt;br /&gt;
=== Write access to the repositories ===&lt;br /&gt;
&lt;br /&gt;
If you have write access to the repositories you can add this (if your login name happens to be marco):&lt;br /&gt;
 repos[&#039;gnome.org&#039;] = &#039;:ext:marco@cvs.gnome.org:/cvs/gnome&#039;&lt;br /&gt;
 repos[&#039;mozilla.org&#039;] = &#039;:ext:marco%gnome.org@cvs.mozilla.org:/cvsroot&#039;&lt;br /&gt;
 repos[&#039;dev.laptop.org&#039;] = &#039;git+ssh://marco@dev.laptop.org/git/&#039;&lt;br /&gt;
 repos[&#039;dev.laptop.org/projects&#039;] = &#039;git+ssh://marco@dev.laptop.org/git/projects/&#039;&lt;br /&gt;
&lt;br /&gt;
==Useful Internal Links==&lt;br /&gt;
* [[DevelopmentTeam/Understanding the Code|Understanding Sugar Code]]&lt;br /&gt;
* [[Taxonomy]] -- explains the components of Sugar (Glucose, Fructose, Sugar, Starches)&lt;br /&gt;
* [[Sugar Instructions]] -- how to actually use Sugar once you have it running&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://library.gnome.org/devel/jhbuild/unstable/ JHBuild manual]&lt;br /&gt;
* [http://www.redhatmagazine.com/2007/02/23/building-the-xo-introducing-sugar/ Red Hat Magazine article: Introducing Sugar]&lt;br /&gt;
* [http://learn.laptop.org/tinderbox/ Tinderbox] (see the &amp;quot;Sugar JHBuild&amp;quot; tab).  The old [http://dev.laptop.org/~cjb/sugar-tinder/ sugar-jhbuild tinderbox].&lt;br /&gt;
&lt;br /&gt;
[[Category:Installing Sugar]]&lt;br /&gt;
[[Category:Jhbuild]]&lt;/div&gt;</summary>
		<author><name>Estar</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild&amp;diff=21464</id>
		<title>Development Team/Jhbuild</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Development_Team/Jhbuild&amp;diff=21464"/>
		<updated>2009-03-14T00:21:23Z</updated>

		<summary type="html">&lt;p&gt;Estar: /* Dealing with dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Translations}}&lt;br /&gt;
&lt;br /&gt;
Sugar-jhbuild will automatically download the latest of Sugar&#039;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.&lt;br /&gt;
&lt;br /&gt;
==Compatible Platforms==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Distros supported by the development community are Debian unstable, Fedora Rawhide, Fedora 10, and Ubuntu 8.10. 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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Note that Debian Unstable and derived distros (e.g. Ubuntu Intrepid) contain a bug  in python-gnome that impedes running jhbuild &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To work around this use chrpath to remove the rpath setting from your system&#039;s gconf.so: &lt;br /&gt;
&lt;br /&gt;
  sudo aptitude install chrpath&lt;br /&gt;
  find /usr/lib/python-support/python-gnome2/python2.5/gtk-2.0 -name &amp;quot;*.so&amp;quot; | sudo xargs chrpath -d&lt;br /&gt;
&lt;br /&gt;
==Checkout sugar-jhbuild==&lt;br /&gt;
&lt;br /&gt;
In a suitable directory, execute&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.sugarlabs.org/sugar-jhbuild/mainline.git sugar-jhbuild&lt;br /&gt;
&lt;br /&gt;
==Build sugar base system and its dependencies==&lt;br /&gt;
&lt;br /&gt;
Change directory and start the build.&lt;br /&gt;
&lt;br /&gt;
 cd sugar-jhbuild&lt;br /&gt;
 ./sugar-jhbuild update&lt;br /&gt;
 ./sugar-jhbuild depscheck&lt;br /&gt;
 ./sugar-jhbuild build&lt;br /&gt;
&lt;br /&gt;
=== Dealing with dependencies ===&lt;br /&gt;
&lt;br /&gt;
At some point during running &#039;&#039;sugar-jhbuild update&#039;&#039; or &#039;&#039;sugar-jhbuild build&#039;&#039; you may be interrupted by an error listing some dependencies you don&#039;t have. The build will pause, and you&#039;ll see, among the text on your screen, something like this:&lt;br /&gt;
&lt;br /&gt;
 No package &#039;&amp;lt;packagename&amp;gt;&#039; found&lt;br /&gt;
&lt;br /&gt;
Usually this means it&#039;s looking for the &amp;lt;packagename&amp;gt;-dev. Install that package. (For instance, to fix a &amp;quot;No package &#039;libsoup2.4&#039; found&amp;quot; error, you&#039;d install libsoup2.4-dev.&lt;br /&gt;
&lt;br /&gt;
If that doesn&#039;t work, here are some further notes:&lt;br /&gt;
&lt;br /&gt;
* If you&#039;re given a list of packages that aren&#039;t installed, simply install them according to your distribution&#039;s package manager (yum, apt-get, etc.) and then try re-running the sugar-jhbuild command again.&lt;br /&gt;
* 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.&lt;br /&gt;
* You may have some issues with penguintv on ubuntu, just interrupt the pull with a CTRL+C, open a shell, repeat the command manually, and accept the certificate permanently.&lt;br /&gt;
* One other fix that I had to do was to export GTK2_RC_FILES=~/src/olpc/sugar-jhbuild/build/share/themes/sugar/gtk-2.0/gtkrc&lt;br /&gt;
and also symlink build/share/icons/sugar to build/share/icons/hicolor.  These two steps may not be necessary, but they made things work on my Ubuntu installation as of March 31, 2008.  [[User:Blaketh|Blaketh]] 03:08, 31 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
* hulahop stopped building because I had installed a more recent version of xulrunner on my machine. The workaround was to &amp;lt;code&amp;gt;rm -rf ~/sugar-jhbuild/source/hulahop&amp;lt;/code&amp;gt; and then run update and build again.&lt;br /&gt;
==== Debian ====&lt;br /&gt;
On Debian-based distros, you can use this invocation to install all dependencies:&lt;br /&gt;
&lt;br /&gt;
 ./sugar-jhbuild depscheck -s | sudo xargs aptitude -y install&lt;br /&gt;
&lt;br /&gt;
==== Fedora ====&lt;br /&gt;
&lt;br /&gt;
Fedora dependencies (to be installed before going through the jhbuild process) are [http://wiki.laptop.org/go/Sugar_on_Fedora#Step_1:_Install_the_build_prerequisites listed here].&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu ====&lt;br /&gt;
&lt;br /&gt;
Ubuntu dependencies are (at least):&lt;br /&gt;
&lt;br /&gt;
python2.5-dev&lt;br /&gt;
python-gnome2-dev&lt;br /&gt;
python-gnome2-desktop-dev&lt;br /&gt;
libgnomecups1.0-dev&lt;br /&gt;
intltool&lt;br /&gt;
libtool &lt;br /&gt;
python-dev g++ &lt;br /&gt;
libgtk2.0-dev &lt;br /&gt;
python-gtk2-dev &lt;br /&gt;
python-cairo-dev &lt;br /&gt;
libcroco3-dev &lt;br /&gt;
libgsf-1-dev &lt;br /&gt;
libenchant-dev &lt;br /&gt;
libfribidi-dev &lt;br /&gt;
libboost-dev &lt;br /&gt;
libxt-dev &lt;br /&gt;
libexpat1-dev &lt;br /&gt;
gettext &lt;br /&gt;
libwv-dev &lt;br /&gt;
zlib1g-dev &lt;br /&gt;
gnome-common &lt;br /&gt;
python-numpy &lt;br /&gt;
libwnck-dev &lt;br /&gt;
xserver-xephyr &lt;br /&gt;
librsvg2-dev &lt;br /&gt;
python-cjson &lt;br /&gt;
gtk-doc-tools &lt;br /&gt;
libglade2-dev &lt;br /&gt;
libidl-dev &lt;br /&gt;
libgconf2-dev &lt;br /&gt;
libgnomevfs2-dev &lt;br /&gt;
libpoppler-glib-dev &lt;br /&gt;
icon-naming-utils &lt;br /&gt;
icon-slicer &lt;br /&gt;
libasound2-dev &lt;br /&gt;
python-xapian &lt;br /&gt;
libxapian15 &lt;br /&gt;
libdbus-1-dev &lt;br /&gt;
libdbus-glib-1-dev &lt;br /&gt;
libloudmouth1-dev &lt;br /&gt;
libavahi-gobject-dev &lt;br /&gt;
python-avahi &lt;br /&gt;
libpoppler-dev &lt;br /&gt;
xulrunner-dev&lt;br /&gt;
automake1.10&lt;br /&gt;
&lt;br /&gt;
==Run Sugar==&lt;br /&gt;
&lt;br /&gt;
This command launches the Sugar emulator:&lt;br /&gt;
&lt;br /&gt;
 ./sugar-jhbuild run&lt;br /&gt;
&lt;br /&gt;
To exit the emulator, press Alt-Q.&lt;br /&gt;
&lt;br /&gt;
== Running multiple instances==&lt;br /&gt;
To run multiple instances of sugar you can start it in the following way:&lt;br /&gt;
&lt;br /&gt;
 SUGAR_PROFILE=2 ./sugar-jhbuild run&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Run an individual activity ==&lt;br /&gt;
&lt;br /&gt;
Within sugar, e.g. in Terminal, this command launches an individual activity for testing:&lt;br /&gt;
&lt;br /&gt;
 sugar-launch [bundle name]&lt;br /&gt;
&lt;br /&gt;
You will see debug output appearing in Terminal.&lt;br /&gt;
&lt;br /&gt;
== Configure the mode and resolution of Sugar ==&lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;&#039;emulator.py&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 cd sugar-jhbuild&lt;br /&gt;
 cp install/share/sugar/shell/emulator.py install/share/sugar/shell/emulator.py.backup&lt;br /&gt;
 nano install/share/sugar/shell/emulator.py&lt;br /&gt;
&lt;br /&gt;
Find this piece of code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
    cmd = [ &#039;Xephyr&#039; ]&lt;br /&gt;
    cmd.append(&#039;:%d&#039; % display)&lt;br /&gt;
    cmd.append(&#039;-ac&#039;)&lt;br /&gt;
&lt;br /&gt;
     if gtk.gdk.screen_width() &amp;lt; 1200 or gtk.gdk.screen_height() &amp;lt; 900:&lt;br /&gt;
         cmd.append(&#039;-fullscreen&#039;)&lt;br /&gt;
     else:&lt;br /&gt;
         cmd.append(&#039;-screen&#039;)&lt;br /&gt;
         cmd.append(&#039;%dx%d&#039; % (1200, 900))&lt;br /&gt;
&amp;lt;/PRE&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Comment out the &#039;&#039;&#039;if&#039;&#039;&#039; and &#039;&#039;&#039;else&#039;&#039;&#039; instructions, and specify the screen resolution and mode you want (it&#039;s important to delete 4 spaces before the &amp;quot;cmd.append&amp;quot; lines):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
    cmd = [ &#039;Xephyr&#039; ]&lt;br /&gt;
    cmd.append(&#039;:%d&#039; % display)&lt;br /&gt;
    cmd.append(&#039;-ac&#039;)&lt;br /&gt;
&lt;br /&gt;
#    if gtk.gdk.screen_width() &amp;lt; 1200 or gtk.gdk.screen_height() &amp;lt; 900:&lt;br /&gt;
#        cmd.append(&#039;-fullscreen&#039;)&lt;br /&gt;
#    else:&lt;br /&gt;
    cmd.append(&#039;-screen&#039;)&lt;br /&gt;
    cmd.append(&#039;%dx%d&#039; % (800, 600))&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sugar will now run on a 800x600 window. This file may be replaced next time you update sugar-jhbuild, and you&#039;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.&lt;br /&gt;
&lt;br /&gt;
== Other commands ==&lt;br /&gt;
&lt;br /&gt;
JHBuild has several other commands that can be useful for development. You can get an overview with:&lt;br /&gt;
&lt;br /&gt;
 ./sugar-jhbuild --help-commands&lt;br /&gt;
&lt;br /&gt;
A useful sequence of commands for building Sugar, from the [http://mailman.laptop.org/pipermail/sugar/2007-February/001352.html Sugar mailing list]: (Note that build will update first anyway, so run update separately if you want to see what changed more easily.)&lt;br /&gt;
&lt;br /&gt;
 ./sugar-jhbuild update&lt;br /&gt;
 ./sugar-jhbuild build&lt;br /&gt;
 ./sugar-jhbuild run&lt;br /&gt;
&lt;br /&gt;
=== If update and build don&#039;t work ===&lt;br /&gt;
&lt;br /&gt;
In May 2008 there were some changes that broke updates on sugar-jhbuild. A version from before this date cannot update or build after this date; the symptoms are various, but generally include errors which mention the &amp;quot;build-scripts&amp;quot; directory. You need to rebuild from scratch in a new jhbuild directory. Something like the following:&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 mv sugar-jhbuild sugar-jhbuild.old&lt;br /&gt;
 git-clone git://dev.laptop.org/sugar-jhbuild&lt;br /&gt;
 &lt;br /&gt;
then, to save bandwidth, move the tar files from your old version:&lt;br /&gt;
&lt;br /&gt;
 mkdir sugar-jhbuild/source&lt;br /&gt;
 mv sugar-jhbuild.old/source/*.tar* sugar-jhbuild/source&lt;br /&gt;
&lt;br /&gt;
then build:&lt;br /&gt;
&lt;br /&gt;
 cd sugar-jhbuild&lt;br /&gt;
 ./sugar-jhbuild build&lt;br /&gt;
&lt;br /&gt;
You may then also see some new dependencies; see the relevant instructions above. &lt;br /&gt;
&lt;br /&gt;
=== From within Sugar ===&lt;br /&gt;
Once you have Sugar running, here are some useful commands:&lt;br /&gt;
*&#039;&#039;&#039;Alt+Shift+F&#039;&#039;&#039; makes the frame appear and disappear&lt;br /&gt;
*&#039;&#039;&#039;Ctrl-Q&#039;&#039;&#039; quits an activity&lt;br /&gt;
*&#039;&#039;&#039;Alt+Shift+Q&#039;&#039;&#039; quits Sugar&lt;br /&gt;
*&#039;&#039;&#039;Alt+Shift+O&#039;&#039;&#039; opens the search&lt;br /&gt;
*&#039;&#039;&#039;Alt+Shift+R&#039;&#039;&#039; rotates the screen&lt;br /&gt;
&lt;br /&gt;
=== Creating an xsession for Sugar-jhbuild ===&lt;br /&gt;
Create the file /usr/share/xsessions/sugar-jhbuild.desktop with the following content:&lt;br /&gt;
&lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
 Name=Sugar jhbuild&lt;br /&gt;
 GenericName=Sugar&lt;br /&gt;
 Exec=/usr/bin/sugar-jhbuild&lt;br /&gt;
 Type=Application&lt;br /&gt;
&lt;br /&gt;
Create the file /usr/bin/sugar-jhbuild with the following content:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 export GTK2_RC_FILES=/home/walter/sugar-jhbuild/install/share/sugar/data/sugar-xo.gtkrc&lt;br /&gt;
 exec /home/walter/sugar-jhbuild/sugar-jhbuild run dbus-launch /home/walter/sugar-jhbuild/install/bin/sugar-shell&lt;br /&gt;
&lt;br /&gt;
where you substitute the path of wherever you installed sugar-jhbuild for &amp;quot;/home/walter&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Customize ==&lt;br /&gt;
&lt;br /&gt;
To customize the build create a configuration file, named &#039;&#039;.sugar.jhbuildrc&#039;&#039;, in your home directory.&lt;br /&gt;
&lt;br /&gt;
=== Write access to the repositories ===&lt;br /&gt;
&lt;br /&gt;
If you have write access to the repositories you can add this (if your login name happens to be marco):&lt;br /&gt;
 repos[&#039;gnome.org&#039;] = &#039;:ext:marco@cvs.gnome.org:/cvs/gnome&#039;&lt;br /&gt;
 repos[&#039;mozilla.org&#039;] = &#039;:ext:marco%gnome.org@cvs.mozilla.org:/cvsroot&#039;&lt;br /&gt;
 repos[&#039;dev.laptop.org&#039;] = &#039;git+ssh://marco@dev.laptop.org/git/&#039;&lt;br /&gt;
 repos[&#039;dev.laptop.org/projects&#039;] = &#039;git+ssh://marco@dev.laptop.org/git/projects/&#039;&lt;br /&gt;
&lt;br /&gt;
==Useful Internal Links==&lt;br /&gt;
* [[DevelopmentTeam/Understanding the Code|Understanding Sugar Code]]&lt;br /&gt;
* [[Taxonomy]] -- explains the components of Sugar (Glucose, Fructose, Sugar, Starches)&lt;br /&gt;
* [[Sugar Instructions]] -- how to actually use Sugar once you have it running&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://library.gnome.org/devel/jhbuild/unstable/ JHBuild manual]&lt;br /&gt;
* [http://www.redhatmagazine.com/2007/02/23/building-the-xo-introducing-sugar/ Red Hat Magazine article: Introducing Sugar]&lt;br /&gt;
* [http://learn.laptop.org/tinderbox/ Tinderbox] (see the &amp;quot;Sugar JHBuild&amp;quot; tab).  The old [http://dev.laptop.org/~cjb/sugar-tinder/ sugar-jhbuild tinderbox].&lt;br /&gt;
&lt;br /&gt;
[[Category:Installing Sugar]]&lt;br /&gt;
[[Category:Jhbuild]]&lt;/div&gt;</summary>
		<author><name>Estar</name></author>
	</entry>
</feed>