Emdebian Developer Guide

This is intended to provide tips and status information on the emdebianisation of Debian packages, problems encountered, solutions found and details of problematic packages. In due course, the advice here will be distilled into a dedicated Developer Guide and into the currently unformed Emdebian Policy documentation.

Anything that expands or clarifies issues in the emdebian-tools manpages can also be added here.

See also EmdebianQuickStart and ["Embedded_Debian"].

Cache Files

Packages consisting of compiled C code and using the autotools can support a cache file of values to help the ./configure script to identify settings for the target that differ from the architecture performing the build. Cache files can also be used to provide the answer when letting ./configure calculate the result would end in failure. Typically, this is due to ./configure trying to compile a test program on the build architecture using the target compiler - resulting in trying to run an arm binary on, say, amd64. To prevent such disasters, the value that the test program is trying to calculate can be provided in a cache file and autotools will skip the test program.

Currently, values for these cache files need to be elucidated the hard way: Let the build fail, work out where it failed, find the cache variable that would prevent the failing code from being run and then look up the value for that variable in the build logs of the native build in Debian.

Problematic packages

  1. GnuPG. /usr/arm-linux-gnu/include/sys/types.h:72: error: two or more data types in declaration specifiers
  2. attr. libtool error - unable to infer tagged configuration.
  3. acl. libtool error - unable to infer tagged configuration.

Incomplete build logs

It would be useful to have a place for incomplete build-logs - failure logs - but this service is not currently available on the emdebian server.

apt-cross

Until an equivalent to pbuilder is available for cross-building, the build host will need to install cross versions of the -dev packages required by the package being built. apt-cross -v -i libfoo-dev.

Status Table

A [http://buildd.emdebian.org/svn/file/current/emdebian/trunk/logs/buildstatus buildstatus] script is available in SVN which will update your emdebian working directory and then count the number of packages where work has started, show how many patches are present for each and whether a build log was found. Build logs are present even if the build failed so this is only indicative of whether a build has been attempted. The final arbiter of whether a build was successful is the presence of a build log in SVN and the presence of a package in the Emdebian target repository. Unfortunately, I haven't yet found a quick way of checking SVN for build logs - using svn list took too long.


CategoryEmdebian