UpdateManagerArchDependent
|
Size: 2264
Comment:
|
Size: 2579
Comment: review comments
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 11: | Line 11: |
| The current dist-upgrader is architecture independant. It only contains python-code. To be more flexible in the future we want to change this to allow architecture depeandant code too. | 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. |
| Line 15: | Line 15: |
| The current pure python implementation makes it impossible to backport selected parts of the target distribution (e.g. dpkg, libapt). | The current pure Python implementation makes it impossible to backport selected parts of the target distribution (e.g. dpkg, libapt). |
| Line 20: | Line 20: |
| ''ColinWatson: Please make use cases positive, not negative, so that they can be satisfied. Historical context should go in the Rationale.'' | |
| Line 23: | Line 24: |
| 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. | 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. |
| Line 28: | Line 29: |
| - 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 "edgy/dist-upgrader/binary-$arch/$version" (+ keeping a current symlink) - change the dist-upgrader to check/use the backports in the tarbal - 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/edgy/upgrade.sh) to place the tarball into the CDROM_ROOT/dists/stable/dist-upgrader/binary-$(arch) subdir |
* 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 |
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: https://blueprints.launchpad.net/distros/ubuntu/+spec/dist-upgrader-arch-any
Packages affected: update-manager, soyuz
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
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.
UpdateManagerArchDependent (last edited 2008-08-06 16:16:19 by localhost)