UpdateManagerArchDependent

Differences between revisions 3 and 4
Revision 3 as of 2006-12-07 15:07:04
Size: 2579
Editor: 82-69-40-219
Comment: review comments
Revision 4 as of 2006-12-07 15:08:45
Size: 2632
Editor: 82-69-40-219
Comment: "dependant" is a noun; "dependent" is an adjective
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from UpdateManagerArchDependant

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.

Summary

The current dist-upgrader is architecture independent. It only contains Python code. To be more flexible in the future we want to change this to allow architecture dependent code too.

Rationale

The current pure Python implementation makes it impossible to backport selected parts of the target distribution (e.g. dpkg, libapt).

Use cases

  1. Ian implements a new dpkg field "Breaks" for edgy. The apt in dapper that will perform the dapper->edgy upgrade does not know about this field and breaks.

    • ColinWatson: Please make use cases positive, not negative, so that they can be satisfied. Historical context should go in the Rationale.

Scope

The upload handler in Launchpad needs to be modified to place arch=any packages into the right directory. Update-manager needs to be modified to support fetching the right package.

Design

The required steps are:

  • add new "UpgradeToolBaseURI" key to the meta-release file at http://changelogs.ubuntu.com/meta-release that contains the base-path to the upgrader

  • change DistUpgradeFetcher.py in update-manager--dapper to honor the new UpgradeToolBaseURI from the meta-release file and add "binary-$(dpkg --print-architecture)/current" to it

  • patch Soyuz to accept raw-dist-upgrade uploads that are not arch==all and move them to "$(dist)/dist-upgrader/binary-$arch/$version" (+ keeping a current symlink)
    • ColinWatson: My reading of the Soyuz code in question is that it already allows this; "all" isn't mentioned anywhere. Please double-check with the Soyuz team.

  • change the dist-upgrader to check/use the backports in the tarball
  • change the build system of the dist-upgrader to make sure to include the right backported binary bits
  • change the update-notifier dist-upgrader on cdrom detection to search for CDROM_ROOT/dists/stable/dist-upgrader/binary-$(arch)
  • change the CD build script (tools/$(dist)/upgrade.sh) to place the tarball into the CDROM_ROOT/dists/stable/dist-upgrader/binary-$(arch) subdir

Implementation

No implementation work was done yet.


CategorySpec

UpdateManagerArchDependent (last edited 2008-08-06 16:16:19 by localhost)