Public bug reported: [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/dist-upgrade` will remove "phased-dep" to install "breaks-phased-dep".
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 insertinstalledpackage 'phased-dep' 'all' '1' insertinstalledpackage 'breaks-phased-dep' 'all' '1' insertpackage 'unstable-updates' 'breaks-phased-dep' 'all' '3' 'Breaks: phased-dep (<< 3)' insertpackage 'unstable-updates' 'phased-dep' 'all' '3' 'Phased-Update-Percentage: 0' 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. ** Affects: apt (Ubuntu) Importance: Medium Status: Triaged ** Affects: update-manager (Ubuntu) Importance: Undecided Status: New ** Affects: update-manager (Ubuntu Focal) Importance: Undecided Status: New ** Affects: apt (Ubuntu Jammy) Importance: Undecided Status: New ** Affects: update-manager (Ubuntu Jammy) Importance: Undecided Status: Won't Fix ** Affects: apt (Ubuntu Noble) Importance: Undecided Status: New ** Affects: update-manager (Ubuntu Noble) Importance: Undecided Status: Won't Fix ** Affects: apt (Ubuntu Oracular) Importance: Undecided Status: New ** Affects: update-manager (Ubuntu Oracular) Importance: Undecided Status: Won't Fix ** Affects: apt (Ubuntu Plucky) Importance: Medium Status: Triaged ** Affects: update-manager (Ubuntu Plucky) Importance: Undecided Status: Won't Fix ** Changed in: apt (Ubuntu) Status: New => Triaged ** Changed in: apt (Ubuntu) Importance: Undecided => Medium ** Description changed: [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/dist-upgrade` will remove "phased-dep" to install "breaks-phased-dep". 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 insertinstalledpackage 'phased-dep' 'all' '1' insertinstalledpackage 'breaks-phased-dep' 'all' '1' insertpackage 'unstable-updates' 'breaks-phased-dep' 'all' '3' 'Breaks: phased-dep (<< 3)' insertpackage 'unstable-updates' 'phased-dep' 'all' '3' 'Phased-Update-Percentage: 0' setupaptarchive testsuccessequal "Reading package lists... Building dependency tree... Calculating upgrade... The following packages have been kept back: - breaks-phased-dep + 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. ** Also affects: update-manager (Ubuntu) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Jammy) Importance: Undecided Status: New ** Also affects: update-manager (Ubuntu Jammy) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Plucky) Importance: Medium Status: Triaged ** Also affects: update-manager (Ubuntu Plucky) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Focal) Importance: Undecided Status: New ** Also affects: update-manager (Ubuntu Focal) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Oracular) Importance: Undecided Status: New ** Also affects: update-manager (Ubuntu Oracular) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Noble) Importance: Undecided Status: New ** Also affects: update-manager (Ubuntu Noble) Importance: Undecided Status: New ** No longer affects: apt (Ubuntu Focal) ** Changed in: update-manager (Ubuntu Jammy) Status: New => Won't Fix ** Changed in: update-manager (Ubuntu Noble) Status: New => Won't Fix ** Changed in: update-manager (Ubuntu Oracular) Status: New => Won't Fix ** Changed in: update-manager (Ubuntu Plucky) Status: New => Won't Fix -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to apt in Ubuntu. https://bugs.launchpad.net/bugs/2098140 Title: Breaks: phased-dep (<< phasing version) removes phased-dep Status in apt package in Ubuntu: Triaged Status in update-manager package in Ubuntu: New Status in update-manager source package in Focal: New Status in apt source package in Jammy: New Status in update-manager source package in Jammy: Won't Fix Status in apt source package in Noble: New Status in update-manager source package in Noble: Won't Fix Status in apt source package in Oracular: New Status in update-manager source package in Oracular: Won't Fix Status in apt source package in Plucky: Triaged Status in update-manager source package in Plucky: Won't Fix 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/dist-upgrade` will remove "phased-dep" to install "breaks-phased-dep". 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 insertinstalledpackage 'phased-dep' 'all' '1' insertinstalledpackage 'breaks-phased-dep' 'all' '1' insertpackage 'unstable-updates' 'breaks-phased-dep' 'all' '3' 'Breaks: phased-dep (<< 3)' insertpackage 'unstable-updates' 'phased-dep' 'all' '3' 'Phased-Update-Percentage: 0' 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. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/2098140/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp