Free software, open source, copyleft, technology, art, knowledge. Freedom.
2009-03-06
I’ve made a custom cross-compilation toolchain for ARM processors. It works either
as a standalone toolchain or within Scratchbox2.
http://zenvoid.org/software/cross-compiler/
Most precompiled toolchains were not suitable for my own purposes since I needed a very specific version of binutils and glibc, and trying to build CodeSourcery’s toolchains with their included script was too much masochistic.
The source code and build script is included, and unlike the build script
in CodeSourcery toolchains, this one actually works. It is meant to be
hacked, built from source code to create toolchains with custom patches
or with different tool and library versions.
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