[08:13] I'd be inclined to believe there's a packaging bug here somewhere https://bugs.launchpad.net/ubuntu/+source/apt/+bug/2025462 [08:13] -ubottu:#ubuntu-desktop- Launchpad bug 2025462 in apt (Ubuntu) "Apt deletes ubuntu-desktop during dist-upgrade" [Undecided, Incomplete] [08:14] it's really hard to figure out why gnome-shell was removed to upgrade gnome-shell-common === guiverc2 is now known as guiverc [08:16] I think I see what's going on [08:17] The only reasonable explanation I can come up with is that the bumped mutter dependency and a phasing mismatch caused new gnome-shell versions to be uninstallable because they depend on not-yet-phased mutter [08:18] so apt calculates to upgrade gnome-shell and mutter, but then undoes all the upgrade paths involving mutter, but the gnome-shell-common upgrade path remains valid [08:19] so now we remain with gnome-shell-common marked for upgrade and the 2nd stage solver removes all the other packages to do it [08:19] but can't validate those assumptions really [08:21] Presumably we should mark ubuntu-desktop-minimal as Protected: yes so that apt treats it like Essential when it is installed and doesn't allow removing it [08:23] I still believe apt should not be suggesting removals at all unless caused by Conflicts+Replaces but that's a different more complex topic [08:25] There's a bit of a catch-22, apt remove removes the meta package and keeps dependencies automatically installed (they'll be up for autoremoval), whereas removing a metapackage due to dependency conflicts will result in the dependencies inherting the manual bit from the metapackage [08:26] Oh I believe that this is in fact a regression from bug https://bugs.launchpad.net/ubuntu/+source/python3.10/+bug/1990586 [08:26] -ubottu:#ubuntu-desktop- Launchpad bug 1990586 in python3.10 (Ubuntu) "22.04: python3* mismatched phasing breaks dist-upgrades" [Critical, Fix Released] [08:36] Now I think I have a fix for apt dist-upgrade [08:36] I just need to write a test case [08:37] So what the fix for the other bug did was: (1) mark phased updates as kept back (2) do normal upgrade (3) mark for keep back again (4) resolve by any means necessary [08:37] now: (1) do normal upgrade (2) resolve by any means necessary (3) revert anything dependending on phasing [08:41] It regresses another issue [08:47] Oh this also implies that held packages can cause removals rather than held back upgrades [08:55] phased updates are rocket surgery, lol [09:30] So if anyone sees to see the effort it took, the fix for this is in https://salsa.debian.org/apt-team/apt/-/merge_requests/299 [09:30] -ubottu:#ubuntu-desktop- Merge 299 in apt-team/apt "Revert phased updates using keeps only" [Opened] [09:34] good work juliank [09:55] thanks laney [09:56] juliank, thanks for investigating and providing us the details! [09:59] seb128: So what this means if there's a gnome-shell+mutter SRU in the next 3 weeks or so (while apt update rolls out), we must make sure we don't release gnome-shell before mutter is fully phased [10:00] right, that's something you should probably mention to the SRU team on #ubuntu-release [10:00] it's probably something that needs to go into a gnome-shell SRU bug, if any [10:00] I don't think SRU team has a notes document :D [10:13] having them aware that it is an issue helps though [10:28] seb128: I have notified. I now have also noticed that the same issue happens if you mark mutter for hold, that also causes gnome-shell to be removed, sigh. Fixing that is near impossible as the holds are applied at a much earlier state and affect dependency resolution (apt will pick different solutions if something is on hold, e.g. b in x depends a|b if a is held rather than keep back x) [10:29] I think ultimately I probably should go ahead with my plan to make the apt resolver dumber and not remove stuff due to broken depends [11:19] ack [11:36] I added a warning to the open jammy gnome-shell SRU bug. btw I believe the SRU team does use a trello board to coordinate their work [11:40] hello desktopers! [11:44] good morning === dob1_ is now known as dob12 === dob12 is now known as dob1 === muktupavels_ is now known as muktupavels