[Fuego] emdebian armhf toolchain installation bug

Tim.Bird at sony.com Tim.Bird at sony.com
Mon Mar 19 19:57:01 UTC 2018

There have been recent reports of a problem building the Fuego docker container
using the master branch of the Fuego code repository.

The bug has surfaced due to changes in upstream Debian repositories, that are
outside our control.

I really struggled with the correct solution for this, but ultimately decided to disable
the installation of the emdebian armhf cross toolchains in the initial docker build
of the fuego container.   This will lose a bit of convenience in the short run, and may
require some additional steps for people using Fuego with ARM target boards.
But I think in the long run this is the right approach.

The correct approach for any board under test with Fuego, is for the user to install
the correct toolchain for their board in the docker container.  We have historically
installed armhf cross toolchains from the emdebian project as a convenience
for Fuego users who were using Debian-based ARM boards.  However, the
embedian project seems to be unmaintained recently, and the armhf packages
are no longer compatible with other recently updated Debian packages.

I made a simple fix to comment out the default installation of the armhf toolchains.
See https://bitbucket.org/tbird20d/fuego/commits/6a3044227b61e6e477325d10de7ecadc8d3a3773
This should resolve the immediate issue of the Docker build failing.

However, it leaves some dangling issues that need to be resolved.

Two of the sample board files currently use "emdebian-armhf" for their PLATFORM
(which is the Fuego variable that defines the toolchain to use).  The boards affected
are the 'bbb' (BeagleBone Black) and 'qemu-arm' board.  There is a toolchain
install script in fuego-ro/toolchains, that is supposed to be used to install toolchains.
(appropriately called: install_cross_toolchain.sh)
However, that script also uses the emdebian packages, and has the same problem with
conflicts with other core Debian packages as does the line in the Dockerfile.

I think we need to find a solution for cross toolchains for Debian-based boards
that does not rely on the emdebian project.  I don't want to leave this as an exercise
for the user.

Please note that people with Yocto Project, buildroot, or OpenEmbedded-based distributions
should use the toolchains that came with their distribution, or that they built with their 
distribution of Linux, and install that inside the Docker container, following the instructions
at: http://fuegotest.org/wiki/Adding_a_toolchain

Possibly we can use the cross toolchains from the Debian unstable, as pointed out by
Guilherme Camargo.  However, I'd rather put that sequence into the install_cross_toolchain.sh
script, rather than in the Dockerfile for the initial Fuego container contents.

Fellow Fuegoans - let me know what you think.
 -- Tim

More information about the Fuego mailing list