Platform Team/Guide/Sweets Usage: Difference between revisions

No edit summary
Line 1: Line 1:
This is a trying to replace jhbuild for core development process. It is inspired by evidence and simplicity of activity development workflow.
This guide describes how to use [[Platform_Team/Doers_environment|Doers environment]] for developing core modules.


== Requirements ==
== Requirements ==


* [[Platform_Team/Guide/sweets_command#Install|Install]] {{Code|sweets}} command.
* Install PackageKit and PackageKit authentication agent from native packages. On Debian based systems, these packages are {{Code|packagekit}} and {{Code|packagekit-gnome}} (for Gnome Desktop Environment).
* [[Platform_Team/Guide/sweets_command#Native_package_repositories|Attach]] ''Platform'' and ''Distribution'' Bazaar repositories for one of [https://bazaar.sugarlabs.org/project/repositories?project=Platform supported] GNU/Linux distributions (otherwise follow [[#Not_supported_distributions|instructions]]).
* PackageKit authentication agent should be launched to let {{Code|sweets}} command install dependencies. Usually it is being started after being logged in to DE session (it isn't for Sugar session).
* Download Sugar from Bazaar to install all sugar dependencies and sugar itself (to use by default):
* Download and launch [http://download.sugarlabs.org/packages/0sugar/sweets.sh self-extracted installer].
sweets download sugar/emulator
* Installer will add {{Code|~/.local/bin}} directory to the {{Code|PATH}}. So, relogin from X session to take into account new {{Code|PATH}}.


== Usage ==
== Clone the sources ==


Clone any glucose projects to {{Code|~/sweets}} or {{Code|~/Activities}} directory. While running sugar, these cloned projects will be used instead of installed packages.
To checkout sugar project sources:


To run sugar emulator:
  sweets --deep clone sugar
  sweets sugar/emulator


To run sugar session, instead of {{Code|sugar}} command, use:
Where {{Code|--deep}} says {{Code|sweets}} process all dependencies.
sweets sugar


While launching, {{Code|sweets}} will check if cloned projects were built and run building otherwise. To rerun  building, being within particular cloned repository, use:
Each project will be placed to to default {{Code|~/sweets}} directory. These are regular sources clones with one exception, each project contains [[Platform Team/Recipe Specification|sweets.recipe]] spec file.
sweets build -f
Projects might be closed in regular way, {{Code|sweets clone}} is just convenient method since some of projects are gitorious clones.


To rebuild with reconfiguring:
== Launch sugar ==
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 [[Platform_Team/Recipe_Specification|implement]] option in {{Code|sweets.recipe}} file for particular project), of course sugar itself should be restarted to take into account new .py code.
To launch sugar session:


== Current limitations ==
sweets sugar


Most of current restrictions are conditioned by not using 0install and will be fixed while 0.92 sucrose release cycle. They are:
or to run from Xephyr:


* ''sugar'' project should be cloned in any case,
sweets sugar:emulator
* 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 ===
During the first launch, sources will be build. To rebuild them at any time:
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 ===
  sweets -ff make ''sweet''
  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 ===
== Current limitations ==
 
In addition to all core projects, clone Sugar specific dependencies to build them with {{Code|sweets}}:
 
* http://git.sugarlabs.org/projects/pyxpcom
* http://git.sugarlabs.org/projects/hulahop/repos/bazaar


See [[Platform_Team/Recipe_Specification|requires]] options in {{Code|sweets.recipe}} files for each cloned project to know what packages (except cloned projects) should be installed from native packages.
* glucose needs to be patched, thus these are gitorious forks.
* packages cannot be build from sources without cloning
* for now, {{Code|sweets}} knowns only about glucose dependencies to install them from native packages in Debian, Ubuntu, Fedora, Mandriva, openSUSE and Gentoo.