Upgrade pre-requisites (workshop)

Launchpad specification: Upgrade pre-requisites

Background

Currently the release-upgrader is lacking a good way to download additional components that it requires to function. This is important to ensure that bugfixes for core components are available or to add functionality. It is important for this goal that it is possible to cancel a upgrade (before the final confirmation) and that the system state is not modified. I propose two new features: pre-requisites from $distro-updates and pre-requisites from dist-upgrader-$arch. Add a configuration option to the config file that allows specifying a package and a version (in the dpkg syntax) and a optional distro-component (default is $distro-updates). The release-upgrader will ask the user to install/upgrade the missing package. This conflicts with the goal that a cancelled upgrade does not alter the system so it should be used with caution. Additionally there should be support to install for udeb-style debs to enhance the functionality of the upgrader. Those debs have limited functionality, e.g. maintainer scripts are not allowed and the root is something like /usr/lib/release-upgrader. These debs should be hosted on archive.ubuntu.com (and its mirrors) in a directory structure modelled after the debian-installer/ dir to avoid clashing with the main archive. They should have their own section "release-upgrader". This requires support from the soyuz team.

Agenda