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