Free software, open source, copyleft, technology, art, knowledge. Freedom.
2009-02-09
I was thinking about an automated method for rebuilding a subset of Ubuntu‘s packages. There are reasons for this, like optimized compiler flags for a particular software device or porting to alternative architectures. In particular, it would be interesting to provide a wider hardware support to Mer linux distribution.
So, my experiment started with a flexible script in Ruby that can be used to do the folowing:
At this point, with the help of reprepro, all required source packages can be automatically fetched and uploaded to a custom repository. It should be theoretically possible to compile everything by doing the following:
Manual interaction is expected to fix dependency loops and packages that need to be compiled within the real (not emulated) architecture. That’s the theory, and this is practice and conclusions:
Before starting the massive compilation, it would be better to wait until Jaunty is released. Jaunty is in development in this moment and its repository is broken, there are dependencies that can’t be compiled because the sources do not exist or the version in the repository is not compatible.
A dependency hell was somewhat expected, but I have to admit that I was surprised. In order to compile a minimal system, there are 43 required source packages. Including their dependencies, 626 source packages need to be compiled; among them, several different versions of the programming languages python, tcl, openjdk, mono, ruby; apache, emacs, kde 4, gnome and xorg, just to be able to boot and login into a shell. Not funny. Debian will probably have the same issue.
I suddently became interested in the base system used in fremantle, some packages could be imported into Mer to override some componentes of Ubuntu base system, but it should be done with care, nobody wants to bring back Maemo reduced funcionality. Very hard work ahead.

Unless otherwise stated, articles and their accompanying pictures are licensed under a Creative Commons Attribution 3.0 Spain License.
roberto@zenvoid.org
Comments
2009-02-13 @ 00:53
Hi,
i am one of the developers of the openSUSE buildservice. Although the name does not suggest it, we can handle all kinds of linux distros. I put complete ARM support inside.
With OBS, we can even build automated complete distros. Look here: http://en.opensuse.org/Build_Service
There is also as a test put maemo sdk inside: http://lizards.opensuse.org/2009/01/27/build-maemo-apps-with-opensuse-buildservice-it-works/
I held also a talk at FOSDEM about using OBS for cross development: http://en.opensuse.org/FOSDEM
Martin
2009-02-13 @ 10:59
Martin, thank you very much for your comment, OBS looks interesting. I will try it soon, it seems to be the perfect solution to compile mer (ubuntu+maemo) on the freerunner (armv4t), which was my main target.
2009-06-04 @ 18:00
Have you looked into using Gentoo and its portage/emerge package management tools?
From what you are doing on the Smartq5, it seems like a good way to leverage your work so other geeks can help you pull on the rope.
I would suggest trying to build a Gentoo cross-compilation environment on a bigger PC to speed everything along.
RSS feed for comments on this post.