Difference between revisions of "Development Team/Jhbuild"

From Sugar Labs
Jump to navigation Jump to search
(added "Configure the mode and resolutions of Sugar" hack, to make Sugar run in different resolutions and in a window)
(5 intermediate revisions by the same user not shown)
Line 10: Line 10:
  
 
  git-clone git://dev.laptop.org/sugar-jhbuild
 
  git-clone git://dev.laptop.org/sugar-jhbuild
 
If you need to update sugar-jhbuild to a new version later, use
 
 
git pull
 
 
in the same directory.
 
  
 
==Build sugar base system and its dependencies==
 
==Build sugar base system and its dependencies==
Line 22: Line 16:
  
 
  cd sugar-jhbuild
 
  cd sugar-jhbuild
 +
git pull
 
  ./sugar-jhbuild update
 
  ./sugar-jhbuild update
 
  ./sugar-jhbuild build
 
  ./sugar-jhbuild build
Line 45: Line 40:
  
 
  sugar-activity [bundle name]
 
  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:
 +
 +
<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.
  
 
== Other commands ==
 
== Other commands ==
Line 67: Line 99:
 
  repos['gnome.org'] = ':ext:marco@cvs.gnome.org:/cvs/gnome'
 
  repos['gnome.org'] = ':ext:marco@cvs.gnome.org:/cvs/gnome'
 
  repos['mozilla.org'] = ':ext:marco%gnome.org@cvs.mozilla.org:/cvsroot'
 
  repos['mozilla.org'] = ':ext:marco%gnome.org@cvs.mozilla.org:/cvsroot'
  repos['git.laptop.org'] = 'git+ssh://dev.laptop.org/git/artwork'
+
  repos['dev.laptop.org'] = 'git+ssh://marco@dev.laptop.org/git/'
 +
repos['dev.laptop.org/projects'] = 'git+ssh://marco@dev.laptop.org/git/projects/'
  
 
==External links==
 
==External links==
Line 73: Line 106:
 
* [http://www.gnome.org/~jamesh/jhbuild.html JHBuild manual]
 
* [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://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]]
 
[[Category:Installing Sugar]]

Revision as of 21:01, 25 August 2007

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.

Note: Some Linux distributions may need or have special procedures; you can check the pages on installing Sugar to see if they are available.

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 Installing or Linux categories for specific distro info.

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 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:

    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:

    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.

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:

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

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/'

External links