packagekit noble update uninstallable on armhf, depends on libapt-pkg6.0t64 (>= 2.8.2) from proposed

Bug #2091714 reported by Julian Andres Klode
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
packagekit (Ubuntu)
Invalid
Undecided
Unassigned
Noble
Fix Released
High
Andreas Hasenack

Bug Description

[ Impact ]

The noble packagekit update[1] to fix LP: #2086773 picked up those dependencies on armhf due to t64 mangling changes in the C++ symbols, and is now uninstallable:

ubuntu@n-armhf:~$ sudo apt install packagekit
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 packagekit : Depends: libapt-pkg6.0t64 (>= 2.8.2) but 2.7.14build2 is to be installed
E: Unable to correct problems, you have held broken packages.

The planned fix is to remove apt 2.8.2 from noble-proposed (done), rebuild packagekit (this bug), and release that.

1. https://launchpad.net/ubuntu/+source/packagekit/1.2.8-2ubuntu1

[ Test Plan ]

On a noble armhf system, install packagekit from noble-proposed. It must not pull in other non-packagekit packages from noble-proposed.

In addition to that, the noble excuses report[2] should be clean of errors and show no interdependencies preventing the release of packagekit.

2. https://ubuntu-archive-team.ubuntu.com/proposed-migration/noble/update_excuses.html#packagekit

[ Where problems could occur ]

This is a no-change rebuild. Like all SRUs, it's always built with the proposed pocket enabled, but this time the newer apt 2.8.2 is not there, so that dependency will not be picked up. That being said, the risk is the same that an unintended dependency from noble-proposed will be picked up, but the test plan specifically checks for that.

[ Other Info ]

This is fixing a regression introduced by the release of https://launchpad.net/bugs/2086773 to updates, where even though it was noticed that the excuses page was flagging packagekit to be depending on apt from proposed, it was incorrectly deemed irrelevant by me (@ahasenack) at the time.

Changed in packagekit (Ubuntu):
status: New → Invalid
summary: - packagekit noble update uninstallable, depends on libapt-pkg6.0t64 (>=
- 2.8.2) from proposed
+ packagekit noble update uninstallable on armhf, depends on libapt-
+ pkg6.0t64 (>= 2.8.2) from proposed
Changed in packagekit (Ubuntu Noble):
assignee: nobody → Andreas Hasenack (ahasenack)
importance: Undecided → High
status: New → In Progress
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

The plan is to:
- remove apt 2.8.2 from noble-proposed (it has a blocked tag, and a new upload is in unapproved already anyway)
- no-change rebuild of packagekit in noble
- release rebuilt packagekit
- at some point (soon), accept new apt from noble-unapproved

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

$ ./remove-package -s noble-proposed -m "Remove apt 2.8.2 from n-proposed so that packagekit can be rebuilt to address 2091714, and later accept new apt into proposed" apt
Removing packages from noble-proposed:
 apt 2.8.2 in noble
  apt 2.8.2 in noble amd64
  apt 2.8.2 in noble arm64
  apt 2.8.2 in noble armhf
  apt 2.8.2 in noble i386
  apt 2.8.2 in noble ppc64el
  apt 2.8.2 in noble riscv64
  apt 2.8.2 in noble s390x
  apt-doc 2.8.2 in noble amd64
  apt-doc 2.8.2 in noble arm64
  apt-doc 2.8.2 in noble armhf
  apt-doc 2.8.2 in noble i386
  apt-doc 2.8.2 in noble ppc64el
  apt-doc 2.8.2 in noble riscv64
  apt-doc 2.8.2 in noble s390x
  apt-transport-https 2.8.2 in noble amd64
  apt-transport-https 2.8.2 in noble arm64
  apt-transport-https 2.8.2 in noble armhf
  apt-transport-https 2.8.2 in noble i386
  apt-transport-https 2.8.2 in noble ppc64el
  apt-transport-https 2.8.2 in noble riscv64
  apt-transport-https 2.8.2 in noble s390x
  apt-utils 2.8.2 in noble amd64
  apt-utils 2.8.2 in noble arm64
  apt-utils 2.8.2 in noble armhf
  apt-utils 2.8.2 in noble i386
  apt-utils 2.8.2 in noble ppc64el
  apt-utils 2.8.2 in noble riscv64
  apt-utils 2.8.2 in noble s390x
  libapt-pkg-dev 2.8.2 in noble amd64
  libapt-pkg-dev 2.8.2 in noble arm64
  libapt-pkg-dev 2.8.2 in noble armhf
  libapt-pkg-dev 2.8.2 in noble i386
  libapt-pkg-dev 2.8.2 in noble ppc64el
  libapt-pkg-dev 2.8.2 in noble riscv64
  libapt-pkg-dev 2.8.2 in noble s390x
  libapt-pkg-doc 2.8.2 in noble amd64
  libapt-pkg-doc 2.8.2 in noble arm64
  libapt-pkg-doc 2.8.2 in noble armhf
  libapt-pkg-doc 2.8.2 in noble i386
  libapt-pkg-doc 2.8.2 in noble ppc64el
  libapt-pkg-doc 2.8.2 in noble riscv64
  libapt-pkg-doc 2.8.2 in noble s390x
  libapt-pkg6.0t64 2.8.2 in noble amd64
  libapt-pkg6.0t64 2.8.2 in noble arm64
  libapt-pkg6.0t64 2.8.2 in noble armhf
  libapt-pkg6.0t64 2.8.2 in noble i386
  libapt-pkg6.0t64 2.8.2 in noble ppc64el
  libapt-pkg6.0t64 2.8.2 in noble riscv64
  libapt-pkg6.0t64 2.8.2 in noble s390x
Comment: Remove apt 2.8.2 from n-proposed so that packagekit can be rebuilt to address 2091714, and later accept new apt into proposed
Remove [y|N]? y
1 package successfully removed.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I'm still waiting for the removal to be complete before triggering a no-change-rebuild of packagekit:

$ rmadison apt | grep noble
 apt | 2.7.14build2 | noble | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
 apt | 2.8.2 | noble-proposed | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x

$ apt-cache policy apt
apt:
  Installed: 2.7.14build2
  Candidate: 2.7.14build2
  Version table:
     2.8.2 100
        100 http://archive.ubuntu.com/ubuntu noble-proposed/main amd64 Packages
 *** 2.7.14build2 500
        500 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages
        100 /var/lib/dpkg/status

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Ok, apt 2.8.2 is gone from proposed now:

ubuntu@n-packagekit-rebuild:~$ apt-cache policy apt; rmadison apt | grep noble
apt:
  Installed: 2.7.14build2
  Candidate: 2.7.14build2
  Version table:
 *** 2.7.14build2 500
        500 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages
        100 /var/lib/dpkg/status
 apt | 2.7.14build2 | noble | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Uploaded to noble-unapproved, and I tested in a PPA: https://launchpad.net/~ahasenack/+archive/ubuntu/packagekit-rebuild

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

This was accepted by https://launchpad.net/~tjaalton via the launchpad UI, so the standard sru comment and tags were not added.

I'm going to run the script that adds those, so it will look like I self-accepted, but that wasn't the case.

Changed in packagekit (Ubuntu Noble):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-noble
Revision history for this message
Andreas Hasenack (ahasenack) wrote : Please test proposed package

Hello Julian, or anyone else affected,

Accepted packagekit into noble-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/packagekit/1.2.8-2ubuntu1.1 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.

description: updated
description: updated
Revision history for this message
Andreas Hasenack (ahasenack) wrote :
Download full text (6.9 KiB)

# noble verification

## Reproducing the problem
ubuntu@n-armhf:~$ sudo apt dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  packagekit packagekit-tools
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
ubuntu@n-armhf:~$ sudo apt install packagekit
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation: ...

Read more...

tags: added: verification-done-noble
removed: verification-needed-noble
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

For completeness, I also installed packagekit from noble-proposed on amd64:

ubuntu@n-packagekit-amd64:~$ sudo apt install packagekit -t noble-proposed -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  gir1.2-packagekitglib-1.0 libpackagekit-glib2-18 packagekit-tools
The following packages will be upgraded:
  gir1.2-packagekitglib-1.0 libpackagekit-glib2-18 packagekit packagekit-tools
4 upgraded, 0 newly installed, 0 to remove and 69 not upgraded.
Need to get 608 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://br.archive.ubuntu.com/ubuntu noble-proposed/main amd64 libpackagekit-glib2-18 amd64 1.2.8-2ubuntu1.1 [120 kB]
Get:2 http://br.archive.ubuntu.com/ubuntu noble-proposed/main amd64 gir1.2-packagekitglib-1.0 amd64 1.2.8-2ubuntu1.1 [25.6 kB]
Get:3 http://br.archive.ubuntu.com/ubuntu noble-proposed/main amd64 packagekit-tools amd64 1.2.8-2ubuntu1.1 [28.2 kB]
Get:4 http://br.archive.ubuntu.com/ubuntu noble-proposed/main amd64 packagekit amd64 1.2.8-2ubuntu1.1 [434 kB]
Fetched 608 kB in 0s (3119 kB/s)
(Reading database ... 35177 files and directories currently installed.)
Preparing to unpack .../libpackagekit-glib2-18_1.2.8-2ubuntu1.1_amd64.deb ...
Unpacking libpackagekit-glib2-18:amd64 (1.2.8-2ubuntu1.1) over (1.2.8-2ubuntu1) ...
Preparing to unpack .../gir1.2-packagekitglib-1.0_1.2.8-2ubuntu1.1_amd64.deb ...
Unpacking gir1.2-packagekitglib-1.0 (1.2.8-2ubuntu1.1) over (1.2.8-2ubuntu1) ...
Preparing to unpack .../packagekit-tools_1.2.8-2ubuntu1.1_amd64.deb ...
Unpacking packagekit-tools (1.2.8-2ubuntu1.1) over (1.2.8-2ubuntu1) ...
Preparing to unpack .../packagekit_1.2.8-2ubuntu1.1_amd64.deb ...
Unpacking packagekit (1.2.8-2ubuntu1.1) over (1.2.8-2ubuntu1) ...
Setting up libpackagekit-glib2-18:amd64 (1.2.8-2ubuntu1.1) ...
Setting up gir1.2-packagekitglib-1.0 (1.2.8-2ubuntu1.1) ...
Setting up packagekit (1.2.8-2ubuntu1.1) ...
Setting up packagekit-tools (1.2.8-2ubuntu1.1) ...
Processing triggers for man-db (2.12.0-4build2) ...
Processing triggers for dbus (1.14.10-4ubuntu4.1) ...
Processing triggers for libc-bin (2.39-0ubuntu8.3) ...
ubuntu@n-packagekit-amd64:~$ apt-cache policy packagekit
packagekit:
  Installed: 1.2.8-2ubuntu1.1
  Candidate: 1.2.8-2ubuntu1.1
  Version table:
 *** 1.2.8-2ubuntu1.1 100
        100 http://br.archive.ubuntu.com/ubuntu noble-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     1.2.8-2ubuntu1 500
        500 http://br.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
     1.2.8-2build3 500
        500 http://br.archive.ubuntu.com/ubuntu noble/main amd64 Packages

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I think it should be fine to expedite the release of this into updates before the aging period.

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

Verified with debdiff that all debs, in all archs, have no other changes.

Every deb has changes to the Version: and versioned Depends: in other debs of src:packagekit.
But _only_ packagekit:armhf has a versioned Depends: change in something else, which is the expected 'libapt-pkg6.0t64' (from 2.8.2 to 2.7.14build2 now).

I agree with the aging exception considering there are no other changes,
and this is an incremental fix to something that has already aged in -proposed
and has been released to -updates.

Steps:
---

$ rmadison packagekit | grep noble-
 packagekit | 1.2.8-2ubuntu1 | noble-updates | source, amd64, arm64, armhf, ppc64el, riscv64, s390x
 packagekit | 1.2.8-2ubuntu1.1 | noble-proposed | source, amd64, arm64, armhf, ppc64el, riscv64, s390x

VERSION_UPDATES='1.2.8-2ubuntu1'
VERSION_PROPOSED='1.2.8-2ubuntu1.1'

for ARCH in amd64 arm64 armhf ppc64el riscv64 s390x; do
    mkdir -p $ARCH
    pushd $ARCH >/dev/null
    pull-lp-debs --arch $ARCH packagekit noble $VERSION_UPDATES
    pull-lp-debs --arch $ARCH packagekit noble $VERSION_PROPOSED
    popd >/dev/null
done

for ARCH in amd64 arm64 armhf ppc64el riscv64 s390x; do
    echo "Arch: $ARCH"
    echo
    find "$ARCH" -name "*_${VERSION_UPDATES}_*.deb" \
    | while read DEB_UPDATES; do

        echo "Package: ${DEB_UPDATES%%_*}"
        DEB_PROPOSED=$(echo $DEB_UPDATES | sed "s/$VERSION_UPDATES/$VERSION_PROPOSED/")

        debdiff $DEB_UPDATES $DEB_PROPOSED | sed -e 's/^/\t/'
        echo
    done
done > packagekit_debs_delta.txt 2>&1 # attached

187 Package: armhf/packagekit
188 File lists identical (after any substitutions)
189
190 Control files: lines which differ (wdiff format)
191 ------------------------------------------------
192 Depends: libglib2.0-bin, polkitd, init-system-helpers (>= 1.52), libappstream5 (>= 1.0.0), libapt-pkg6.0t64 (>= [-2.8.2),-] {+2.7.14build2),+} libc6 (>= 2.38), libgcc-s1 (>= 3.5), libglib2.0-0t64 (>= 2.79.0), libgstreamer1.0-0 (>= 1.0.0), libpackagekit-glib2-18 (>= 1.2.4) , libpolkit-gobject-1-0 (>= 0.99), libsqlite3-0 (>= 3.5.9), libstdc++6 (>= 13.1), libsystemd0 (>= 214)

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

The verification of the Stable Release Update for packagekit 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
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package packagekit - 1.2.8-2ubuntu1.1

---------------
packagekit (1.2.8-2ubuntu1.1) noble; urgency=medium

  * No-change rebuild to fix unintended dependency on apt which was in
    noble-proposed back then, and caused packagekit to become uninstallable on
    armhf (LP: #2091714)

 -- Andreas Hasenack <email address hidden> Fri, 13 Dec 2024 14:07:28 -0300

Changed in packagekit (Ubuntu Noble):
status: Fix Committed → Fix Released
Revision history for this message
Alessandro Astone (aleasto) wrote :

Andreas, thanks for the fix.

I was running a local sbuild of packagekit for noble and it is failing with:

  The following packages have unmet dependencies:
   libapt-pkg-dev : Depends: libapt-pkg (= 2.7.14build2)
  E: Unable to correct problems, you have held broken packages.

That sounds related to these apt shenanigans.
Is this something isolated to my sbuild or there's something bad in the archive?

Revision history for this message
Alessandro Astone (aleasto) wrote :

Ok, my noble schroot had apt 2.8.2 install from when it was in proposed. Downgraded and it's working again.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Right, I was going to say you picked up apt 2.8.2 because of packagekit's incorrect dependency. Sorry about that, and glad you got it working again.

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

Duplicates of this bug

Other bug subscribers

Remote bug watches

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