Features/GTK3/Development
Jump to navigation
Jump to search
This page includes repo details and how to get sugar-jhbuild set up with the GTK3 work.
Repos
- http://git.sugarlabs.org/sugar-toolkit-gtk3 - branch 'master': this is the GTK3 port of sugar-toolkit
- http://git.sugarlabs.org/sugar-toolkit - branch 'master': the GTK2 version of sugar-toolkit needs a handful of structure changes prompted by our GTK3 work. They have been committed here.
- http://git.sugarlabs.org/sugar - branch 'master': we are not (yet) porting the sugar shell to GTK3, but a handful of structural changes were needed.
- http://git.sugarlabs.org/sugar-artwork - branch 'master': mainline sugar-artwork repo containing the new theme work (folder gtk3)
- http://git.sugarlabs.org/browse - branch 'master': Browse port to GTK3
- http://git.sugarlabs.org/read - branch 'master': Read port to GTK3
- http://git.sugarlabs.org/hello-world - branch 'master': hello-world ported to GTK3
- http://git.sugarlabs.org/~walter/abacus/abacus-gtk3 - branch 'abacus-gtk3': Abacus ported to GTK3 and to use cairo for drawing
jhbuild setup
Start with a working "normal" sugar-jhbuild installation.
Compile/install a fixed pygobject with this chain-up fix. F16 build available from http://koji.fedoraproject.org/koji/taskinfo?taskID=3473257
Apply this patch to sugar-jhbuild: http://dev.laptop.org/~dsd/20111029/sugar-jhbuild-sugar-toolkit-gtk3.patch and build the new GTK3 based sugar toolkit:
./sugar-jhbuild build sugar-toolkit-gtk3
The sugar-toolkit gtk2 version needs some modifications for some restructuring that gtk3 work has prompted. Check out our branch where this happens;
cd source/sugar-toolkit git remote add -f gtk2-mods-for-gtk3 git://git.sugarlabs.org/~erikos/sugar-toolkit/sugar-toolkit-gtk3.git git checkout -b gtk2-mods-for-gtk3 gtk2-mods-for-gtk3/sucrose-0.94 make install cd ../..
And similarly for sugar:
cd source/sugar git remote add -f erikos-gtk3 git://git.sugarlabs.org/~erikos/sugar/sugar-gtk3.git git checkout -b gtk3 erikos-gtk3/master make install cd ../..
And for sugar-artwork:
cd source/sugar-artwork git remote add -f erikos-gtk3 git://git.sugarlabs.org/~erikos/sugar-artwork/gtk3.git git checkout -b gtk3 erikos-gtk3/master make install cd ../..
Pending upstream work
All of these have been worked around (or will be worked around) for now, at the sugar level.
- gobject introspection bindings for librsvg: https://bugzilla.gnome.org/show_bug.cgi?id=663049 Solved: fix has been pushed to librsvg master in http://git.gnome.org/browse/librsvg/, is in 2.35.0
- related gobject-introspection fix for libxml2 https://bugzilla.gnome.org/show_bug.cgi?id=663048 Solved: fix has been pushed to gobject introspection 42e9ea858c454646ecf5d4b9579ea7a2ce4192fd
- enable GDK introspection access to X11 window properties: https://bugzilla.gnome.org/show_bug.cgi?id=663261. current workaround patch in sugar-toolkit (Raul)
- extend gio mime type API so that we can drop our xdgmime copy (e.g. need to be able to get default file extension for a given mime type)
- chaining up in vfuncs: https://bugzilla.gnome.org/show_bug.cgi?id=662994 Solved: fix has been pushed to pygobject master http://git.gnome.org/browse/pygobject/commit/?id=2fd3aa9d4ca0906a5e609845ee500ba72e358f94
- implementing GtkContainer::forall: https://bugzilla.gnome.org/show_bug.cgi?id=644926, also needs https://bugzilla.gnome.org/show_bug.cgi?id=663052
- missing parts in pango introspection, 646788 does contain what we need (there are quite a few introspection related pango bugs open atm, from a quick look I found https://bugzilla.gnome.org/show_bug.cgi?id=660070, https://bugzilla.gnome.org/show_bug.cgi?id=627973, https://bugzilla.gnome.org/show_bug.cgi?id=645792, https://bugzilla.gnome.org/show_bug.cgi?id=645871, https://bugzilla.gnome.org/show_bug.cgi?id=646788 even with patches attached already for a while)