[Sugar-devel] Easy development process of core sugar components
Aleksey Lim
alsroot at member.fsf.org
Fri Oct 22 11:43:02 EDT 2010
Hi all,
This is a trying to replace jhbuild. For example, for me it was all time
needless obscured, i.e., it somewhat `git clone` to somewhere, somehow
built it and somehow run it, and all this only for 4-5 core projects
(its deps might be installed from official or custom repos).
New workflow is inspired of evidence and simplicity (in workflow, not
in how it works under-the-hood) by activity development workflow.
What you need are:
* in most cases (except fc14) you need additional run-time dependencies,
attach Platform and Core repositories and install sugar
`sweets download sugar/emulator` (to install all required deps and
glucose for usage by default) from Bazaar
* git clone glucose project to ~/sweets (or to ~/Activities)
* check what will happen while building by looking to spec file -
sweets.recipe[2] (i.e., an analog of activity.info)
* run `sweets build` being within git cloned directory to build it
* from any place in fs, call `sweets <sweet-value-from-recipe>`
to launch it (build phase might be omitted, sweets will check if
build already happened and start building otherwise)
* you can change python code in cloned projects w/o need to run build
command (the same .py files are used to run sugar, see "implement"
option in Build section in recipe file), of course sugar itself should
be restarted to take into account new .py code
* the same for all glucose project (if component was not cloned,
installed version will be used)
Current limitations:
* to use new scheme, glucose needs to be patched. It is not in master,
so use bazaar branches[3] that any synced w/ trunk
* dependency solving is inefficient and temporary, it will be replaced
by invoking 0install in further implementation
* build time dependencies need to be installed manually, auto-install will
be supported later, by 0install (here 0install means not only fetching
custom builds but, most likely, ask 0install what native packages
should be installed by PackageKit)
* fedora based systems:
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 based systems:
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
[1] http://lists.sugarlabs.org/archive/sugar-devel/2010-October/028108.html
[2] http://wiki.sugarlabs.org/go/Activity_Team/Zero_Sugar/Recipe_Specification#.5BBuid.5D
[3] git://git.sugarlabs.org/sugar-base/bazaar.git
git://git.sugarlabs.org/sugar/bazaar.git
git://git.sugarlabs.org/sugar-toolkit/bazaar.git
git://git.sugarlabs.org/sugar-presence-service/bazaar.git
git://git.sugarlabs.org/sugar-artwork/bazaar.git
--
Aleksey
More information about the Sugar-devel
mailing list