Breaks: phased-dep (<< phasing version) removes phased-dep
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| apt (Ubuntu) |
Triaged
|
Medium
|
Unassigned | ||
| Jammy |
New
|
Undecided
|
Unassigned | ||
| Noble |
New
|
Undecided
|
Unassigned | ||
| Oracular |
Won't Fix
|
Undecided
|
Unassigned | ||
| Plucky |
Won't Fix
|
Medium
|
Unassigned | ||
| update-manager (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
| Focal |
New
|
Undecided
|
Unassigned | ||
| Jammy |
Won't Fix
|
Undecided
|
Unassigned | ||
| Noble |
Won't Fix
|
Undecided
|
Unassigned | ||
| Oracular |
Won't Fix
|
Undecided
|
Unassigned | ||
| Plucky |
Won't Fix
|
Undecided
|
Unassigned | ||
Bug Description
[Impact]
If two intertwined updates are being released, call them "breaks-phased-dep" and "phased-dep", version 2; both are installed in version 1; and "breaks-phased-dep" is available to install (e.g. fully phased), then `apt full-upgrade/
The expected behavior is that "breaks-phased-dep" is kept back as the new version of the dependency is not yet ready.
[Test plan]
Regression test suite, with the addition of new test:
# Test case breaks-phased-dep: A released update breaks installed version of phased-dep
insertinstalled
insertinstalled
insertpackage 'unstable-updates' 'breaks-phased-dep' 'all' '3' 'Breaks: phased-dep (<< 3)'
insertpackage 'unstable-updates' 'phased-dep' 'all' '3' 'Phased-
setupaptarchive
testsuccessequal "Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages have been kept back:
breaks-phased-dep
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded." aptget dist-upgrade
[Where problems could occur]
here be dragons
[Details]
This should also affect the original implementation in update-manager. Basically both implementations work by first calculating the full upgrade, and then reverting any upgrades to phased packages using MarkKeep.
However; in case of a Breaks, the phased package at this point is marked "remove" and not "upgrade", so the keep back logic does not trigger.
| Changed in apt (Ubuntu): | |
| status: | New → Triaged |
| importance: | Undecided → Medium |
| description: | updated |
| no longer affects: | apt (Ubuntu Focal) |

update-manager has the code everywhere, but starting from jammy, apt is already keeping back phased updates, so it should not be triggered anymore (just nobody removed the duplicated logic :D)