The fix in 1:26.04.5 keeps the unmigrated files, but they are still never
migrated, so the packages they provide are left with no update source at all.
Filed as bug #2167655; adding a note here because this is the direct follow-up
to the fix in this bug.

I upgraded 24.04 -> 26.04 on 2026-08-19. The upgrader was 26.04.22, well past
the fix, and /var/log/dist-upgrade/main.log shows it behaving exactly as
designed:

  DEBUG migrateToDeb822Sources()
  DEBUG Could not migrate deb 
[signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg] 
https://pkgs.tailscale.com/stable/ubuntu noble main from 
/etc/apt/sources.list.d/tailscale.list, disabling instead.

Nine .list files could not be migrated. Six of them contained an active
"deb [signed-by=...]" line and were left with no .sources file and no enabled
source at all: Docker, OpenVPN3, Signal, Tailscale, a Chromium-based browser
and a cloud storage client. Every one used the syntax its vendor documents.

The packages installed from those repositories then stopped receiving
updates, unnoticed for weeks, while apt, update-notifier and
unattended-upgrades all reported the system as up to date.

apt-cache policy showed the installed version with no candidate, and
"apt list --installed | grep installed,local" listed them, but nothing
surfaced that state. By the time I noticed, the browser was a major version
behind and Signal four releases behind.

Two notes on the underlying python-apt limitation (#2070432), which was closed
Won't Fix on the grounds that migration to deb822 sources would resolve it:

 * The migration is what fails, so that reasoning does not hold. Reproducer on
   26.04 with python3-apt 3.1.0ubuntu1.1:
     python3 -c 'from aptsources.sourceslist import SourceEntry; \
       print(SourceEntry("deb [signed-by=/x.gpg] https://a b c").invalid)'
   -> True
 * A python-apt fix alone could not repair this path anyway. The upgrader runs
   against the *old* release's libraries: my log records apt 2.8.3 and python
   3.12.3, and dpkg.log shows python3-apt was still at the noble version when
   migrateToDeb822Sources ran at 16:27:07 - it was not replaced until 16:47:25,
   twenty minutes later.

Merge proposal handling signed-by inside the migration, leaving python-apt's
legacy parser untouched, with tests: 
https://code.launchpad.net/~zember/ubuntu-release-upgrader/+git/ubuntu-release-upgrader/+merge/512328

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

Title:
  do-release-upgrade deletes sources.list format entries during update
  to 25.10

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-apt/+bug/2130273/+subscriptions


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

Reply via email to