ppa-installer-integration

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

  • Launchpad Entry: ppa-installer-integration

  • Packages affected: debian-installer, choose-mirror, apt-setup, libdebian-installer, debootstrap, cdimage and live CD scripts.

Summary

This spec summarize the changes that are required to these packages in order to be able to use more than one archive to perform installations, build CDs and live CD images. The reason is that it is very complex to perform certain tasks such as replacing the kernel in the installer. We want to ease the pain by allow the usage of multiple random archives in the installer with focus on PPA that will make it much easier to deploy a new set of packages.

Release Note

Added support to install from multiple archives to grab custom packages on the fly without the need of further changes and manual tweaking after the first install.

Rationale

The reason is that it is very complex to perform certain tasks such as replacing the kernel in the installer. We want to ease the pain by allow the usage of multiple random archives in the installer with focus on PPA that will make much easier to deploy new set of packages. This also applies to cdimage and live CD image build and to developers also to debootstrap where it is often convenient to be able to install custom packages from the beginning rather than having to spend admin time after the first bootstrap.

Use Cases

  • Fabio needs to test a full new kernel with different ABI from the one in the archive. Fabio uploads the new kernel to PPA that will make deb and udebs available. Fabio uploads a new d-i image to use the new kernel. The freshly built installer will use the new kernel and will be able to download proper udebs and debs from Fabio's PPA archive without any manual hacks. Fabio is satisfied to spend his time on testing more rather than having to hack random bits.
  • Company foo needs a set of packages installed by default to update certain applications. They will able to use PPA with the new installer features to do this in step rather than two or more saving an enormous amount of sysadmin time.
  • Colin is working on a new pkgsel version that adds a set of templates. Due to the limited debconf implementation in the installer, this operation would require a lot of manual tweaks and might not receive the amount of testing it deserves. With the new installer Colin is able to just upload pkgsel to any random archive and be able to use it immediately.
  • Some users do not live in "high-bandwidth" countries and often suffers for bad local mirrors. Having the possibility

to configure more than one mirror from the first install will help them if the local one is out-of-sync.

  • Similar use cases apply in building custom CD and custom livefs.

Implementation

  • All the packages affected need to grow the knowledge of multiple archives. See Code Changes for details.

Code Changes

  • libdebian-installer: needs to be able to merge installer/Packages files and grow the concept of grab the most updated rather than the first in the list. This is a difficult change that can possibly be avoided by passing to libdebian-installer an already merged Packages file. [the latter approach is taken in net-retriever 1.21ubuntu2]

  • choose-mirror should grow the possibility to loop by asking "Would you like to add another mirror? <yes/no>", if yes it should ask again what mirror.. and so on.

  • apt-setup needs to be able to understand multiple mirrors in a similar way as choose-mirror
  • debian-installer has already partial support for N mirrors, but it is complex to use. Find a way to simplify the process.
  • debootstrap needs to understand the concept of multiple mirrors to bootstrap

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during CD testing, and to show off after release.

This need not be added or completed until the specification is nearing beta.


CategorySpec

ppa-installer-integration (last edited 2008-08-06 16:19:06 by localhost)