Platform Team/Guide/Sweets Usage
This is a trying to replace jhbuild for core development process. It is inspired by evidence and simplicity of activity development workflow.
Requirements
- Install
sweets
command. - Attach Platform and Core Bazaar repositories for one of supported GNU/Linux distributions (otherwise follow instructions).
- Download Sugar from Bazaar to install all sugar dependencies and sugar itself (to use by default):
sweets download sugar/emulator
Usage
Clone any glucose projects to ~/sweets
or ~/Activities
directory. While running sugar, these cloned projects will be used instead of installed packages.
To run sugar emulator:
sweets sugar/emulator
To run sugar session, instead of sugar
command, use:
sweets sugar
While launching, sweets
will check if cloned projects were built and run building otherwise. To rerun building, being within particular cloned repository, use:
sweets build -f
To rebuild with reconfiguring:
sweets build -ff
You can change python code in cloned projects without a need to run build command (the same .py files are used to run sugar, see implement option in [Build] section in recipe file for particular project), of course sugar itself should be restarted to take into account new .py code.
Current limitations
Most of current restrictions are conditioned by not using 0install and will be fixed while 0.92 sucrose release cycle. They are:
- sugar project should be cloned in any case,
- glucose needs to be patched. It is not in master, so use bazaar branches[3] that are synced with the trunk:
- http://git.sugarlabs.org/projects/sugar-base/repos/bazaar
- http://git.sugarlabs.org/projects/sugar/repos/bazaar
- http://git.sugarlabs.org/projects/sugar-toolkit/repos/bazaar
- http://git.sugarlabs.org/projects/sugar-presence-service/repos/bazaar
- http://git.sugarlabs.org/projects/sugar-artwork/repos/bazaar
- dependency solving is inefficient and temporary, it will be replaced by invoking 0install in further implementation,
- build time dependencies need to be installed manually
Fedora devel packages
sudo yum install autoconf automake libtool make intltool pygtk2-devel gtk2-devel GConf2-devel gnome-common icon-slicer icon-naming-utils xorg-x11-apps libSM-devel alsa-lib-devel
Debian/Ubuntu devel packages
sudo apt-get install build-essential intltool python-gtk2-dev libgtk2.0-dev libgconf2-dev icon-slicer icon-naming-utils x11-apps libsm-dev libasound2-dev libtool gnome-common
Not supported distributions
In addition to all core projects, clone Sugar specific dependencies to build them with sweets
:
See requires options in sweets.recipe
files for each cloned project to know what packages (except cloned projects) should be installed from native packages.