[Bug 2048529] Re: Is do-release-upgrade too aggressively removing transitionals?
Christian Ehrhardt
2048529 at bugs.launchpad.net
Wed Jan 10 08:28:51 UTC 2024
FYI: Updated the description and bug states as it is now a question
mostly to the intention/design of ubuntu-release-upgrader.
** Description changed:
+ It seems do-release-upgrade on long term multiple upgrades might
+ unintentionally remove things a bit too aggressive if they have changed
+ to be transitionals.
+
+
+ Example Scenario:
+ - LTS = src:foo v1 creates package bin:bar v1
+ - LTS+1 = src:foo v2 creates transitional:bar v2 depending on bin:newbar v2
+ - LTS+2 = src:foo v3 no more creates the transitional:bar
+
+ Expectation:
+ - LTS -> LTS+1 switches to transitional:bar v2 which pulls in bin:newbar
+ - LTS+1 -> LTS+2 keeps transitional:bar v2 around pulling in bin:newbar still
+ - apt dist-upgrade (even with apt autoremove) behaves this way
+
+ What happens:
+ - LTS -> LTS+1 switches to transitional:bar v2 which pulls in bin:newbar v2
+ - LTS+1 -> LTS+2 suggests to remove transitional:bar v2 in the section "Remove (was auto installed)"
+ - If "y" is given, then the former functionality stops working
+
+ To be fair, all of this is behind a question, with a default not to do so, like:
+ ```
+ 39 packages are going to be removed.
+ ...
+ Continue [yN]
+ ```
+
+ Question to update-release-manager:
+ - Is this intentionally more aggressive than dist-upgrade + autoremove?
+ - If so, what should packages or admins do to avoid that (other than saying "n" at the "Remove (was auto installed)" question?
+
+
+ ----------
+
+ ###
+
+ This was initially reported and checked for libvirt (below) but should
+ be a generic behavior
+
+ ###
+
# History
In debian/1.2.10-1 7ca6a8a libvirt-bin was changed to be a transitional.
This will need to be retained until an LTS change happens so for Ubuntu this was kept and up until Xenial libvirt-bin was a package with content.
Then it followed Debian
Later in yakkety yak and later it got changed to be a transitional in 1.3.1-2
Since we'd need to wait for an Ubuntu LTS 1.3.3-2ubuntu1 kept libvirt-bin (the transitional) around this stayed another while.
Then post Bionic we dropped even that and libvirt-bin was no more (no
package, no transitional, no nothing).
# Problem
This is kind of how transitions work, but now we've got a report that if
people installed e.g. on Xenial and just `apt install libvirt-bin` to
get virsh and other things back then. And upgrade through to e.g. focal
or even later - they got the replacement packages like `libvirt-clients`
removed (presumably as nothing depended on it anymore).
TODO:
This history is a bit convoluted as the timing was so different due to waiting until after LTSes.
But we need to:
1. Install xenial, install libvirt-bin, do-release-upgrade through to Jammy, check if libvirt-clients is still around or not.
2. if not, then this is a bug and we need to find how to avoid.
Potentially this is needed in all >Bionic and need to retain the
libvirt-bin transitional forever? This feels so worng, with a deeper
look I hope we can find what is actually going on and find a better
solution.
P.S. original reporter is Mmike on #ubuntu-server in IRC
** Changed in: ubuntu-release-upgrader (Ubuntu)
Status: Incomplete => New
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
Ubuntu.
https://bugs.launchpad.net/bugs/2048529
Title:
Is do-release-upgrade too aggressively removing transitionals?
Status in libvirt package in Ubuntu:
Incomplete
Status in ubuntu-release-upgrader package in Ubuntu:
New
Bug description:
It seems do-release-upgrade on long term multiple upgrades might
unintentionally remove things a bit too aggressive if they have
changed to be transitionals.
Example Scenario:
- LTS = src:foo v1 creates package bin:bar v1
- LTS+1 = src:foo v2 creates transitional:bar v2 depending on bin:newbar v2
- LTS+2 = src:foo v3 no more creates the transitional:bar
Expectation:
- LTS -> LTS+1 switches to transitional:bar v2 which pulls in bin:newbar
- LTS+1 -> LTS+2 keeps transitional:bar v2 around pulling in bin:newbar still
- apt dist-upgrade (even with apt autoremove) behaves this way
What happens:
- LTS -> LTS+1 switches to transitional:bar v2 which pulls in bin:newbar v2
- LTS+1 -> LTS+2 suggests to remove transitional:bar v2 in the section "Remove (was auto installed)"
- If "y" is given, then the former functionality stops working
To be fair, all of this is behind a question, with a default not to do so, like:
```
39 packages are going to be removed.
...
Continue [yN]
```
Question to update-release-manager:
- Is this intentionally more aggressive than dist-upgrade + autoremove?
- If so, what should packages or admins do to avoid that (other than saying "n" at the "Remove (was auto installed)" question?
----------
###
This was initially reported and checked for libvirt (below) but should
be a generic behavior
###
# History
In debian/1.2.10-1 7ca6a8a libvirt-bin was changed to be a
transitional.
This will need to be retained until an LTS change happens so for Ubuntu this was kept and up until Xenial libvirt-bin was a package with content.
Then it followed Debian
Later in yakkety yak and later it got changed to be a transitional in 1.3.1-2
Since we'd need to wait for an Ubuntu LTS 1.3.3-2ubuntu1 kept libvirt-bin (the transitional) around this stayed another while.
Then post Bionic we dropped even that and libvirt-bin was no more (no
package, no transitional, no nothing).
# Problem
This is kind of how transitions work, but now we've got a report that
if people installed e.g. on Xenial and just `apt install libvirt-bin`
to get virsh and other things back then. And upgrade through to e.g.
focal or even later - they got the replacement packages like `libvirt-
clients` removed (presumably as nothing depended on it anymore).
TODO:
This history is a bit convoluted as the timing was so different due to waiting until after LTSes.
But we need to:
1. Install xenial, install libvirt-bin, do-release-upgrade through to Jammy, check if libvirt-clients is still around or not.
2. if not, then this is a bug and we need to find how to avoid.
Potentially this is needed in all >Bionic and need to retain the
libvirt-bin transitional forever? This feels so worng, with a deeper
look I hope we can find what is actually going on and find a better
solution.
P.S. original reporter is Mmike on #ubuntu-server in IRC
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/2048529/+subscriptions
More information about the foundations-bugs
mailing list