** Description changed:

+ [ 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.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2154822

Title:
  [SRU] Upgrades to resolute with armhf foreign arch fail

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/2154822/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to