ARMXdebCrossCompilationEnvironment

Summary

Provide a new xdeb tool to easily cross-build a set of packages.

Release Note

If we have ARM specific release notes: A new xdeb tool allows easy cross-compilation of a set of packages.

Rationale

When repeatedly working on a package or a small set of packages, it is useful to have the fastest develop/build/deploy cycles as possible. On ARM, this still means cross-compilation.

User stories

Rob would like to work on GStreamer plugins for his ARM !SoC, he needs to rebuild repeatedly a library and a plugins package and he would like to take advantage of his fast x86 desktop for rebuilds, but he doesn't want to rebuild all recursive build-deps of these packages before being able to work.

Assumptions

No build-deps loops between the packages to rebuild.

Design

An existing almost complete implementation exists in the form of chromiumos-build, but it's a bit picky about build-deps loops.

Implementation

Rebrand chromiumos-build to xdeb.

Change the logic of xdeb to graph the build-deps of the packages which should be rebuilt instead of all packages.

Test/Demo Plan

Cross-rebuild a couple of gstreamer packages, in the right order, for armel.

Unresolved issues

Build-deps loops are not handled between packages to rebuild.

BoF agenda and discussion

Discussion

  • Allows cross building of one or many packages.
  • Based on Googles chromeos-build tool (built on dpkg-cross).
  • Google wanted to take Ubuntu ARM packages and cross-build them on x86.
  • Google switched to portage (Gentoo) but xdeb is still valid for Ubuntu.
  • The tool cannot cope with dependency build loops ATM.
  • xdeb is something to use now but could be replaced by multiarch later.
  • chromeos-build needs rebranding and dependency loops need handling.
  • pbuilder-cross could be extended to build multiple packages.
  • multiarch meta data may need extending.
  • gstreamer packages need testing with this tool as vendors mainly cross build these.
  • https://wiki.ubuntu.com/MultiarchSpec is a good example of a multi-arch document that came from a UDS session.

Actions

  • rebrand
  • extend to compute build-dep loops
  • testing against a subset of packages (gstreamer e.t.c)
  • make sure xdeb keeps native builds
  • [optional] pbuilder integration


CategorySpec

Specs/M/ARMXdebCrossCompilationEnvironment (last edited 2010-05-25 13:16:49 by serris)