Architecture Cross-Grading Support in Debian
Description of the project:
Debian is well-known for its wide support for multiple architectures. We build the vast majority of our packages for all our architectures, and adding extra libraries or programs for another architecture is easy, supported directly by the packaging system. It's often even possible to directly run programs from an incompatible architecture by using qemu-user-static on a Debian system. (Ask me more about this at some point!)
However, despite all of this support it's still quite hard to do one thing in Debian - cross-grade a system from one architecture to another. Due to this, lots of people are still running older 32-bit "i386" systems on top of 64-bit hardware (as an example). It is possible to cross-grade, but it's currently a very risky manual process - it's not for the faint-hearted. This project would involve developing (and testing!) tools to make cross-grading a supported Debian feature.
Confirmed Mentor: SteveMcIntyre
How to contact the mentor: 93sam@debian.org, or Sledge on IRC
Confirmed co-mentors: Phil Hands, phil@hands.com or fil on IRC
Deliverables of the project:
- A tool to evaluate how feasible a cross-grade is (check for disk space, package availability, etc.).
- A tool to actually perform the cross-grade - keeping system and user configuration as much as possible. (Guillem: ISTM the bulk of this would ideally be done within apt and at most this tool would be a very thin wrapper over apt itself.)
Desirable skills:
- Debian
- Basic Unix/Linux skills - tracking things like users, groups, etc.
- A scripting language - python?, perl?, ruby?
- An understanding of how to use VMs for testing will be a great help!
What the intern will learn: Detailed insight into how a Debian system works, with background knowledge of potentially all kinds of technologies - storage and filesystem setups, authentication, VMs, qemu emulation.
Application tasks: Demonstrate how to set up and run a foreign-architecture binary on your existing system. Hint: busybox-static is an easy test case.
Related projects: cross-grading wiki page, kilobyte's crossgrade script
Mentors affiliation with Debian: DD