Drop libglib2.0-0 transitional package
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
glib2.0 (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Noble |
Fix Released
|
High
|
Unassigned |
Bug Description
Impact
------
apt can struggle with ordering when handling the massive Y2028 time_t transition when upgrading to Ubuntu 24.04 LTS.
It was identified that dropping the libglib2.0-0 transitional package can help apt do things in the correct order.
Technically, Steve Langasek already removed libglib2.0-0 from noble release just before release. This upload is necessary to ensure that we don't accidentally bring it back.
Test Case
---------
1. Is libglib2.0-0 built?
2. Run rmadison libglib2.0-0
There should be 0 results for noble, noble-proposed, or noble-updates
3. Ensure that libglib2.0-0 is removed during the upgrade from Ubuntu 22.04 LTS to 24.04 LTS. Technically, ubuntu-
Where Problems Could Occur
-------
Doing an upload to not build a package that already does not exist in Ubuntu 24.04 LTS should have no regression potential. The only other change in this SRU is bumping the Breaks version to ensure that the transitional libglib2.0-0 is also removed for people who were using Ubuntu 24.04 LTS early. That also should not cause problems since the package was an empty transitional package for early Ubuntu 24.04 LTS users.
Other Info
----------
This is related to LP: #2061918 for the thunderbird deb to snap upgrade
There are likely several other Launchpad bugs that can be resolved by removing the transitional package and some other workarounds in other packages, like in the transitional thunderbird package.
https:/
We have landed the removal in Debian Unstable and it successfully migrated to Debian Testing on April 27 as one of the first t64 packages to migrate there.
The removal was recommended by Julian Klode, the apt maintainer for Debian and Ubuntu.
The original transitional package was added by Simon McVittie in hopes that it would help apt be able to calculate the upgrade easier. At least in the Ubuntu Desktop 22.04 LTS → 24.04 LTS case, it looks like it was the opposite. (Although that particular detail was fixed by the removal that already happened.)
CVE References
Changed in glib2.0 (Ubuntu): | |
status: | Triaged → In Progress |
Changed in glib2.0 (Ubuntu Noble): | |
milestone: | none → noble-updates |
tags: | added: block-proposed |
tags: | removed: block-proposed |
description: | updated |
description: | updated |
description: | updated |
Changed in glib2.0 (Ubuntu Noble): | |
status: | Incomplete → Confirmed |
Changed in glib2.0 (Ubuntu): | |
status: | In Progress → Fix Committed |
I tested this with a local package build and local repo in a mantic container,
doing an `apt --dry-run dist-upgrade` without/with that repo (w/ noble apt sources list),
and manually download/run noble's release upgrader without/with that repo.
The behavior is the same (ie, no regressions) as expected;
libglib2.0-0 is removed in favor of libglib2.0-0t64 in all cases.
Test 1)
Just Noble:
$ apt-cache show libglib2.0-bin | grep Version:
Version: 2.80.0-6ubuntu1
Version: 2.78.0-2
$ sudo apt --dry-run dist-upgrade 2>&1 | awk '{ print NR ": " $0 }' | fgrep libglib2.0 0-bin:amd64 libbpf1:amd64 iproute2:amd64 ] amd64 open-vm-tools:amd64 libc-dev-bin:amd64 libc-bin:amd64 libc6-dev:amd64 libnetplan0:amd64 ] tools:amd64 libc-dev-bin:amd64 libc-bin:amd64 libc6-dev:amd64 ]
17: libevent-core-2.1-7 libext2fs2 libgdbm-compat4 libgdbm6 libglib2.0-0
30: libgdbm6t64 libglib2.0-0t64 libgnutls30t64 libgpgme11t64
79: libglib2.0-bin libglib2.0-data libgmp10 libgomp1 libgpg-error-l10n
154: Remv libelf1 [0.189-4] [libglib2.
156: Inst libglib2.0-bin [2.78.0-2] (2.80.0-6ubuntu1 Ubuntu:24.04/noble [amd64]) []
378: Remv libglib2.0-0 [2.78.0-2] [libappstream4:
379: Inst libglib2.0-0t64 (2.80.0-6ubuntu1 Ubuntu:24.04/noble [amd64]) [open-vm-
611: Inst libglib2.0-data [2.78.0-2] (2.80.0-6ubuntu1 Ubuntu:24.04/noble [all])
927: Conf libglib2.0-bin (2.80.0-6ubuntu1 Ubuntu:24.04/noble [amd64])
1070: Conf libglib2.0-0t64 (2.80.0-6ubuntu1 Ubuntu:24.04/noble [amd64])
1201: Conf libglib2.0-data (2.80.0-6ubuntu1 Ubuntu:24.04/noble [all])
Noble and local build/repo:
$ apt-cache show libglib2.0-bin | grep Version:
Version: 2.80.0-6ubuntu3
Version: 2.80.0-6ubuntu1
Version: 2.78.0-2
$ sudo apt --dry-run dist-upgrade 2>&1 | awk '{ print NR ": " $0 }' | fgrep libglib2.0 0-bin:amd64 libbpf1:amd64 iproute2:amd64 ] amd64 open-vm-tools:amd64 libc-dev-bin:amd64 libc-bin:amd64 libc6-dev:amd64 libnetplan0:amd64 ] tools:amd64 libc-dev-bin:amd64 libc-bin:amd64 libc6-dev:amd64 ]
17: libevent-core-2.1-7 libext2fs2 libgdbm-compat4 libgdbm6 libglib2.0-0
30: libgdbm6t64 libglib2.0-0t64 libgnutls30t64 libgpgme11t64
79: libglib2.0-bin libglib2.0-data libgmp10 libgomp1 libgpg-error-l10n
154: Remv libelf1 [0.189-4] [libglib2.
156: Inst libglib2.0-bin [2.78.0-2] (2.80.0-6ubuntu3 localhost [amd64]) []
378: Remv libglib2.0-0 [2.78.0-2] [libappstream4:
379: Inst libglib2.0-0t64 (2.80.0-6ubuntu3 localhost [amd64]) [open-vm-
611: Inst libglib2.0-data [2.78.0-2] (2.80.0-6ubuntu3 localhost [all])
927: Conf libglib2.0-bin (2.80.0-6ubuntu3 localhost [amd64])
1070: Conf libglib2.0-0t64 (2.80.0-6ubuntu3 localhost [amd64])
1201: Conf libglib2.0-data (2.80.0-6ubuntu3 localhost [all])
Test 2)
Just Noble:
$ dpkg -l | fgrep libglib2.0 0-0t64: amd64 2.80.0-6ubuntu1 amd64 GLib library of C routines
rc libglib2.0-0:amd64 2.78.0-2 amd64 GLib library of C routines
ii libglib2.
ii libglib2.0-bin 2.80.0-6ubuntu1 amd64 Programs for the GLib library
ii libglib2.0-data 2.80.0-6ubuntu1 all Commo...