Drop libglib2.0-0 transitional package

Bug #2063221 reported by Jeremy Bícha
46
This bug affects 3 people
Affects Status Importance Assigned to Milestone
glib2.0 (Ubuntu)
Fix Committed
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-release-upgrader is currently set to disallow upgrades to 24.04 LTS. If this is still the case when it is time to verify this SRU, you can manually substitute jammy → noble in /etc/apt/sources.list for purposes of testing this upgrade, probably in a VM since that's not the supported way to upgrade.

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://salsa.debian.org/gnome-team/glib/-/merge_requests/34

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.)

Jeremy Bícha (jbicha)
Changed in glib2.0 (Ubuntu):
status: Triaged → In Progress
Changed in glib2.0 (Ubuntu Noble):
milestone: none → noble-updates
Jeremy Bícha (jbicha)
tags: added: block-proposed
Jeremy Bícha (jbicha)
tags: removed: block-proposed
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :
Download full text (4.3 KiB)

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
 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.0-bin:amd64 libbpf1:amd64 iproute2:amd64 ]
 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:amd64 open-vm-tools:amd64 libc-dev-bin:amd64 libc-bin:amd64 libc6-dev:amd64 libnetplan0:amd64 ]
 379: Inst libglib2.0-0t64 (2.80.0-6ubuntu1 Ubuntu:24.04/noble [amd64]) [open-vm-tools:amd64 libc-dev-bin:amd64 libc-bin:amd64 libc6-dev:amd64 ]
 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
 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.0-bin:amd64 libbpf1:amd64 iproute2:amd64 ]
 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:amd64 open-vm-tools:amd64 libc-dev-bin:amd64 libc-bin:amd64 libc6-dev:amd64 libnetplan0:amd64 ]
 379: Inst libglib2.0-0t64 (2.80.0-6ubuntu3 localhost [amd64]) [open-vm-tools:amd64 libc-dev-bin:amd64 libc-bin:amd64 libc6-dev:amd64 ]
 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
 rc libglib2.0-0:amd64 2.78.0-2 amd64 GLib library of C routines
 ii libglib2.0-0t64:amd64 2.80.0-6ubuntu1 amd64 GLib library of C routines
 ii libglib2.0-bin 2.80.0-6ubuntu1 amd64 Programs for the GLib library
 ii libglib2.0-data 2.80.0-6ubuntu1 all Commo...

Read more...

Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

Hi Jeremy,

This looks mostly good, AFAICT.

Could you please complete the SRU bug template by adding the section 'Where problems could occur' / 'Regression potential'? [1]

And although the 'Test Case' is feasible to understand, based on the 'Impact' section, it would be nice to have a 'functional' test, if at all possible/reasonably doable.
For example, I tried to reproduce the thunderbird deb2snap issue, but it didn't. I realize there might be a more complex package setup/install list to trigger it, but maybe there's something simpler that you are aware of.
(Or if it's too complex / not worth it, just clarifying that and mentioning what shouldn't change / how to check for no regressions, would be OK too; I tried to convey that in comment #1).

Thanks!

[1] https://wiki.ubuntu.com/StableReleaseUpdates#SRU_Bug_Template

Changed in glib2.0 (Ubuntu Noble):
status: In Progress → Incomplete
Jeremy Bícha (jbicha)
description: updated
Jeremy Bícha (jbicha)
description: updated
description: updated
Changed in glib2.0 (Ubuntu Noble):
status: Incomplete → Confirmed
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

The updates look good, thanks!

Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello Jeremy, or anyone else affected,

Accepted glib2.0 into noble-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/glib2.0/2.80.0-6ubuntu3 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-noble to verification-done-noble. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-noble. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in glib2.0 (Ubuntu Noble):
status: Confirmed → Fix Committed
tags: added: verification-needed verification-needed-noble
Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (glib2.0/2.80.0-6ubuntu3)

All autopkgtests for the newly accepted glib2.0 (2.80.0-6ubuntu3) for noble have finished running.
The following regressions have been reported in tests triggered by the package:

apport/2.28.1-0ubuntu2 (ppc64el)
cluster-glue/1.0.12-22.1ubuntu3 (ppc64el)
cpdb-backend-cups/2.0~b5-0ubuntu6 (armhf)
cpdb-libs/2.0~b5-1.2build1 (armhf)
dbus-test-runner/19.04.0-1build2 (arm64)
lasi/unknown (arm64)
libsoup2.4/2.74.3-6ubuntu1 (arm64, ppc64el)
mender-client/3.4.0+ds1-5build3 (armhf)
snapd-glib/1.64-0ubuntu5 (ppc64el, s390x)
software-properties/unknown (amd64, arm64, armhf, i386, ppc64el, s390x)
surf/2.1+git20221016-6build2 (armhf)
ymuse/0.22-1build2 (s390x)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/noble/update_excuses.html#glib2.0

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Jeremy Bícha (jbicha)
Changed in glib2.0 (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Sebastien Bacher (seb128) wrote :

I've tested 2.80.0-6ubuntu3 on a noble system, the upgrade went as expected and the desktop is still working properly.

I still had libglib2.0-0 installed and it got removed when installing the new version

rmadison also confirmed the libglib2.0-0 binary isn't published in noble-proposed

tags: added: verification-done verification-done-noble
removed: verification-needed verification-needed-noble
Revision history for this message
Sebastien Bacher (seb128) wrote :

the autopkgtests issues listed in the previous comments were transients and got resolved on retry

Revision history for this message
Sebastien Bacher (seb128) wrote :

I'm marking the SRU verified based now

Revision history for this message
Benjamin Lupton (balupton) wrote :

Whoops, accidental status change that I can't change back. Was just intending to find out more about the fix released status, didn't know it would change it.

Changed in glib2.0 (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Jeremy Bícha (jbicha) wrote :

I changed it back for you. There is more documentation about what those bug statuses mean for Stable Release Updates at https://wiki.ubuntu.com/StableReleaseUpdates#Procedure

Changed in glib2.0 (Ubuntu):
status: Fix Released → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package glib2.0 - 2.80.0-6ubuntu3

---------------
glib2.0 (2.80.0-6ubuntu3) noble; urgency=medium

  [ Simon McVittie ]
  * Revert addition of libglib2.0-0 transitional package. (LP: #2063221)
    Because it didn't have a Pre-Depends on the replacement, it resulted
    in GLib libraries being absent for an extended period, which is
    problematic. Thanks to Julian Andres Klode.

 -- Jeremy Bícha <email address hidden> Tue, 23 Apr 2024 12:00:34 -0400

Changed in glib2.0 (Ubuntu Noble):
status: Fix Committed → Fix Released
Revision history for this message
Chris Halse Rogers (raof) wrote : Update Released

The verification of the Stable Release Update for glib2.0 has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Liam Proven (lproven) wrote :

You have a typo in the description:

> the massive Y2028 time_t transition

I think you mean Y20*3*8.

Not a big deal, but just for clarity you should probably fix that.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.