Rapid archive bringup for new hardware

Registered by Jeremy Kerr

Discussion on how we can do a quick (and possibly dirty) archive build for new hardware.

The port may require new patches to the toolchain and/or kernel. Cross compiling is essential, as the new hardware may not be available.

Most other packages will remain as-is, but may need a recompile with the new toolchain. We should be fine with a very minimal initial package set. Perhaps minbase?

Support for "rapid bringup" archives will be variable. The general use-case will be for proof-of-concept code while full support for an official archive is in progress.

Blueprint information

Status:
Not started
Approver:
Steve Langasek
Priority:
Medium
Drafter:
Jeremy Kerr
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

This probably ties into https://blueprints.launchpad.net/ubuntu/+spec/foundations-r-improve-cross-compilation, for which we have a separate session.

The port may require new patches to the toolchain and/or kernel. Cross compiling is
essential, as the new hardware may not be available.

Most other packages will remain as-is, but may need a recompile with the new toolchain.
We should be fine with a very minimal initial package set; perhaps minbase?

Support for "rapid bringup" archives will be variable. The general use-case will be for
proof-of-concept code while full support for an official archive is in progress.

dose3 provides a very useful tool for doing bootstrap build ordering, undstanding both the cross and native cases. It provides a basis for ordering the builds, which would allow automation of bootstraps.

Two distinct styles
 * arch bringup
 * bootstrap from an existing architecture
  - but cross is still interesting, due to machine availability, etc

Last example was from ppc64 bringup

old-style: dak & wanna-build
 * 3 buildds, brought up main in under a week
 * done by LaMont+Adam+Colin (LaMont set up infrastructure)

method "these days"
 * packaged buildd stuff (from the sbuild folks)
 * reprepro for archive setup

other tools
 * mini-dak, on debian-ports.org
  - doesn't require source package uploads?

existing docs
 * package bootstrap instructions on Canonical wiki: https://wiki.canonical.com/InformationInfrastructure/OSA/BootstrappingPackages
 * http://wiki.debian.org/DebianBootstrap
 * would form some initial instructions to be ported to wiki.u.c

Issues
 * will be blocked by existing cross-compilation issues

== Overall plan ==

Start a step-by-step guide for cross bootstrap instructions.

 * use this to document our best-practices for archive bringup
  * will help with UE bus factor

 * aim for accessibility for folks not familiar with general
   archive / bootstrap process & tools

 * link to general cross compilation pages from
    foundations-r-improve-cross-compilation-latest

 * success criteria: HWE engineer can pick up the instructions and perform a bootstrap

(?)

Work Items

Work items:
[jk-ozlabs] start wiki bootstrap instructions on ubuntu wiki, notify adconrad & cjwatson: TODO
[adconrad] provide details in wiki about when this should & shouldn't be done: TODO
[adconrad] braindump bootstrap knowledge to wiki notes: TODO
[cjwatson] braindump bootstrap knowledge to wiki notes: TODO
[cjwatson] coerce LaMont into providing input to bootstrap instructions: TODO
[jk-ozlabs] see what raspbian have done w.r.t. their bringup: TODO
[jk-ozlabs] "user testing" on the document we produce: TODO