Hello,<br><br>I was curious about what it would take to port enough of the GNOME libraries to android to be able to run the current Sugar implementation there. I'm not planning to work on it, but I thought it would be useful to post some notes on what I found.<br>
<br>The way people are building android derivatives is to create a custom manifest<br><br><a href="http://phablet.ubuntu.com/gitweb?p=CyanogenMod/android.git;a=blob;f=default.xml;hb=refs/heads/phablet-10.1">http://phablet.ubuntu.com/gitweb?p=CyanogenMod/android.git;a=blob;f=default.xml;hb=refs/heads/phablet-10.1</a><br>
<br>And then fork all the repository which needs modifications<br><br><a href="http://phablet.ubuntu.com/gitweb">http://phablet.ubuntu.com/gitweb</a><br><br>Then there are basically two possible approaches to run linux libraries<br>
<br>1 Port them to use bionic (the Android libc library) and adapt the build system to follow Android conventions.<br><br>Collabora has done some work on the GNOME libraries<br><br><a href="http://cgit.collabora.com/git/android/">http://cgit.collabora.com/git/android/</a><br>
<br>And wrote a tool to generate an android makefile from an autotools based buildsystem<br><br><a href="http://cgit.collabora.com/git/android/androgenizer.git/">http://cgit.collabora.com/git/android/androgenizer.git/</a><br>
<br>Still it's a painful process<br><br><a href="http://lwn.net/Articles/510465/">http://lwn.net/Articles/510465/</a><br><br>This is also the approach Firefox OS has taken, but it's way easier for them because most of their code is cross platform.<br clear="all">
<br>2 Install libraries built for linux arm in a chroot.<br><br>The issue then is how to link to system libraries, built with bionic. A pretty smart hack has been developed to make this possible<br><br><a href="https://github.com/libhybris/libhybris">https://github.com/libhybris/libhybris</a><br>
<br>Ubuntu touch is using that for a few libraries, including surface_flinger (graphics).<br><br><a href="https://github.com/f69m/ubuntu-phablet_libhybris/tree/master/compat">https://github.com/f69m/ubuntu-phablet_libhybris/tree/master/compat</a><br>
<br>Now Ubuntu is developing it's own graphic stack, mir. Porting gtk3 to it is planned for the end of this year (I'm curious to see if the gtk hackers will take those patches though).<br><br>Fortunately the libhybris maintainer claims to have ported Wayland to Android, using the library. <br>
<br><a href="http://mer-project.blogspot.fi/2013/04/wayland-utilizing-android-gpu-drivers.html">http://mer-project.blogspot.fi/2013/04/wayland-utilizing-android-gpu-drivers.html</a><br><br>No source code yet but he intends to release it at some point.<br>
<br>Gtk3 has a Wayland backend. The window management bits in Sugar would need to be ported to it (it would make sense anyway at some point, GNOME is being ported).<br><br>So... Maybe Ubuntu touch (or something like it) + Wayland Android + Sugar Wayland == Sugar on Android.<br>
<br>-- <br>Daniel Narvaez<br>