[Bug 2154822] Re: [SRU] Upgrades to resolute with armhf foreign arch fail
Launchpad Bug Tracker
2154822 at bugs.launchpad.net
Wed Sep 9 14:06:14 UTC 2026
This bug was fixed in the package ubuntu-release-upgrader - 1:26.10.7
---------------
ubuntu-release-upgrader (1:26.10.7) stonking; urgency=medium
* tests: test against recent releases
* Use `sqv` instead of `gpgv` (LP: #2166785)
* Run pre-build.sh to update templates and version
ubuntu-release-upgrader (1:26.10.6) stonking; urgency=medium
* Fixes for LP: #2154822:
- DistUpgradeController: Fix rewriteMirrorUri to strip the country mirror
on archs served by ports.u.c
- test_sources_list: Disable test_apt_cacher_and_apt_bittorent on archs
served by ports.u.c (rewriteMirrorUri now correctly causes changes that
differ by architecture, and the test will only pass on archs served by
archive.u.c)
ubuntu-release-upgrader (1:26.10.5) stonking; urgency=medium
* DistUpgradeController: Split entries when the architecture(s) of the
entry now reside on a different host, e.g. 26.04 where arm64 migrated
from ports.u.c to archive.u.c (LP: #2154822)
* DistUpgradeQuirks: minor changes to fix autopkgtest errors
ubuntu-release-upgrader (1:26.10.4) stonking; urgency=medium
[ Florent 'Skia' Jacquet ]
* test_pycodestyle: give a more verbose output upon failure
* Add .launchpad.yaml to run at least some basic checks directly from git
* Fix Stonking version number in announcements
[ kkuo ]
* Remove unnecessary Ubuntu Insights consent migration logic
[ Oliver Reiche ]
* DistUpgrade: fix release announcements for stonking
[ Alessandro Astone ]
* Add quirk for installing dbus-broker
-- Julian Andres Klode <juliank at ubuntu.com> Tue, 08 Sep 2026 17:18:05
+0200
** Changed in: ubuntu-release-upgrader (Ubuntu)
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to dpkg in Ubuntu.
https://bugs.launchpad.net/bugs/2154822
Title:
[SRU] Upgrades to resolute with armhf foreign arch fail
Status in dpkg package in Ubuntu:
Confirmed
Status in ubuntu-release-upgrader package in Ubuntu:
Fix Released
Status in dpkg source package in Resolute:
Confirmed
Status in ubuntu-release-upgrader source package in Resolute:
In Progress
Bug description:
[ Impact ]
Users on a system with armhf configured as a foreign architecture
cannot use u-r-u to upgrade.
[ Test plan ]
* Flash ubuntu-25.10-preinstalled-server-arm64+raspi.img.xz to spare SD card
* Boot Pi and login
* sudo dpkg --add-architecture armhf
* sudo apt upgrade
* sudo do-release-upgrade
* Observe failure
* sudo do-release-upgrade --proposed
* Observe the upgrade proceeds
* Check /etc/apt/sources.list.d/ubuntu.sources after upgrade -- ensure there are now separate entries for archive.ubuntu.com (arm64) and ports.ubuntu.com (armhf)
Repeat the above steps but do *not* add armhf as a foreign
architecture (cover the single architecture migration from ports.u.c
-> archive.u.c case)
To cover the non-migration case, on an amd64 box:
* lxc launch ubuntu:noble test-upgrade
* lxc shell test-upgrade
* apt update && apt full-upgrade
* do-release-upgrade --proposed
* Ensure upgrade succeeds and /etc/sources.list.d/ubuntu.sources looks sane
Repeat the above test adding i386 as a foreign architecture
[ Where things could go wrong ]
The patch wound up being *way* more complicated than I'd hoped as
there are an absolute ton of edge cases and complexity to consider.
For example, ports.u.c covers the archive *and* security, while
archive.u.c is only the archive, so a system may be configured for
arm64+armhf with a single deb822 configuration (because the .sources
style can include multiple suites, unlike the old .list
configuration), in which case one entry winds up becoming *three*
entries (arm64 archive, arm64 security, armhf ports for
archive+security).
The patch is relatively complex, but is mostly tests. The actual logic
changes are confined to the re-writing of the apt sources so, in
theory, the scope for regression is confined to that. However, there's
no substitute for real-world testing so the test plan above covers
several cases (arch split, no arch split with migration, and no
migration at all for one or multiple archs).
[ Original description ]
On a Pi running Ubuntu questing, with armhf added as a foreign
architecture, upgrades to resolute fail immediately after updating the
sources because the updated ubuntu.sources file now points at
archive.u.c which only supports arm64, but the source applies to
*both* arm64 and armhf.
To reproduce:
* Flash ubuntu-25.10-preinstalled-server-arm64+raspi.img.xz to spare SD card
* Boot Pi and login
* sudo dpkg --add-architecture armhf
* sudo apt upgrade
* sudo do-release-upgrade
After confirming "y" to proceed, upgrade fails when attempting to
refresh apt sources for resolute.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/2154822/+subscriptions
More information about the foundations-bugs
mailing list