Free software, open source, copyleft. 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