Bootstrappable packages through cyclic build-deps

Registered by Wookey on 2011-05-25

In order to build sets of packages from scratch (as is needed for a new arch or flavour or on arches not capable of native building) cyclic build-dependencies need to be broken by providing 'staged' or 'minimal' builds of packages which simplify the dependency network into a tree. Cross-building also simplifies things greatly because many architecture-independent tools are provded on the build machine (especially doc-generation tools).

Blueprint information

Status:
Started
Approver:
None
Priority:
Medium
Drafter:
Wookey
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
Accepted for 11.11
Implementation:
Slow progress
Milestone target:
milestone icon backlog
Started by
Wookey on 2012-05-15

Related branches

Sprints

Whiteboard

Using aarch64 bootstrap as example, get this to a state of useability in Debian/Ubuntu
Use this blueprint to track status
dpkg bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=661538

(?)

Work Items

Work items:
Patch dpkg-checkbuilddeps to check bootstrap dependencies: DONE
Patch dpkg-buildpackage to take and use - DEB_BUILD_PROFILE=stageN option: DONE
Push dpkg bootstraping fixes to Debian: INPROGRESS
Push dpkg bootstrapping fixes to Ubuntu: TODO
Agree build-profile syntax on debian-devel: INPROGRESS
Patch apt for build-profile support: DONE
Patch dpkg to mark stage-built packages in headers: DONE
Publish cyclic dependency loops: DONE
Fix 20 involved packages in most important loop: INPROGRESS
Update perl cross-build patch to 5.14: INPROGRESS
Add bootstrap patch to rsyslog: TODO
Mulitarch perl: INPROGRESS
Multiarch Python: DONE
Multiarch tcl cross-config script: DONE
Define mechanism for build-deb cross-name translation: TODO
Demonstrate bootstrapped build: INPROGRESS
Add checks avoiding accidentally uploading bootstrap packages to archive: TODO
Write automated bootstrap sequencing tool (dimstrap): DONE
Set up automated bootstrapping runs and logs for QA: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.