[Soc-coordination] Report #4 - Automated Multi-Arch Cross-Building and Bootstrapping

Gustavo Alkmim alkmim at lrc.ic.unicamp.br
Mon Aug 1 16:38:03 UTC 2011


Project: Automated Multi-Arch Cross-Building and Bootstrapping
Report #4 - Jul 4th to Aug 1th

In the beggining of the month I started to solve the glib2.0/gamin loop of
armel architecture using my amd64 computer. Firstly I used the debootstrap
command to create a chroot system to be the host system and then I installed
the essential packages needed to build packages from sources on the host
system. After that I got the sources of the glib2.0 and gamin packages.
Analyzing the descriptions of these packages, I supposed that glib2.0 may be
compiled without the gamin package. So I modified the control file of the
glib2.0 package and change the build-dep field in order to be able to
compile the glib2.0 without the gamin package.

In order to solve the cycles we should do a staged build. This is useful to
solve cycle dependencies because in a stage 'n' we may build packages
without some dependencies in order to break the cycle. Usually we just need
to build in one stage but is possibly to need more than one stage. After
build all the stages, the system builds all packages using the normal
dependencies. So I should insert I field on the control file called
build-depN which informs the build-dependencies of the build stage N. The
auto-bootstrap tool should read the control file of each package and be able
to analyze correctly the build-depN field.

While I was trying to solve the glib2.0/gamin loop of the armel
architecture, I discovered that I should install on the host system a set of
tools to cross build/compile the sources for the build system using the host
system. Remember that the host system is diferent of the build system. In my
case, the host system is an amd64 system and the build system is an amel
system. These tools are going to compile the sources on the host system and
create a binaries that are going to be installed on the build system.

So I spent a lot of time trying to build and install the cross-build tools
on the host system since it is a very hard task. In a conversation with
Wookey he showed me a toolbox from emdebian that I should use instead of
build a toolbox from scratch. After I installed this toolbox on the host
system, I was able to built a lot of bootstrap needed packages for the armel
architecture.

While I was building these packages I found a lot of problems on the sources
that cause problems while cross-compiling even if it isn't part of a cycle
and I did some patches for these sources to solve these problems. This was a
very hard task becouse we don't have so much documentations about it on the
internet and many patchs I found was for another linux distribution instead
of Debian.

After a conversation with Wookey, we conclude that I need to concentrate my
efforts on patch the cycles dependencies involved on the bootstrap packages
instead of concetrate on the automaterd cross-build tool. So, On the next 2
weeks I'm going to patch the sources of the bootstrap needed packages in
order to break the cycles dependencies that involves these packages.

Unfortuntly I couldn't go to the DebConf 11 but my mentor (Wookey) was
there. I'm hopeful to go on a next oportunity.

Cheers,

Gustavo Alkmim
Master Student at Unicamp/Brazil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/soc-coordination/attachments/20110801/834e1dc0/attachment.html>


More information about the Soc-coordination mailing list