Bug#1135211: mmdebstrap: Update archive URI for arm64 Ubuntu Questing and newer

Oliver Reiche <[email protected]> Wed, 29 Apr 2026 11:54:09 +0000
Newsgroups gmane.linux.debian.ports.arm
Message-ID <177746364911.13961.16244685399358592773.reportbug__1514.75891923241$1777463853$gmane$org@e8b54783bd35>
Package: mmdebstrap
Version: 1.5.7-3
Severity: normal
Tags: patch upstream
X-Debbugs-Cc: [email protected], [email protected]
User: [email protected]
Usertags: arm64

Dear Maintainer,

The archive URI for arm64 Ubuntu moved from ports.ubuntu.com to the
default URI starting with Questing. Although the old URI will be
available for some time longer, this will eventually become a problem.
Note that this move happens in two stages: the first stage moved
Questing and newer and the second stage will later also move Jammy and
Noble.

Please consider the patch I attached.
Based on the attached patch, mmdebstrap will use the default URI for
arm64 Ubuntu Questing and newer.


-- System Information:
Debian Release: forky/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 7.0.0-14-generic (SMP w/24 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_WARN, TAINT_OOT_MODULE
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: unable to detect

Versions of packages mmdebstrap depends on:
ii  apt      3.1.16
ii  perl     5.40.1-7+b1
ii  python3  3.13.9-3

Versions of packages mmdebstrap recommends:
ii  arch-test            0.22-1.1
ii  gpg                  2.4.9-4
ii  libdistro-info-perl  1.15
ii  libdpkg-perl         1.23.7
ii  mount                2.42-1
ii  uidmap               1:4.19.3-2

Versions of packages mmdebstrap suggests:
pn  apt-transport-tor         <none>
pn  apt-utils                 <none>
pn  binfmt-support | systemd  <none>
pn  bzip2                     <none>
ii  ca-certificates           20260223
pn  debootstrap               <none>
ii  distro-info-data          0.69
pn  dpkg-dev                  <none>
pn  e2fsprogs                 <none>
pn  fakechroot                <none>
pn  fakeroot                  <none>
pn  genext2fs                 <none>
pn  libarchive13              <none>
pn  lz4                       <none>
pn  lzop                      <none>
pn  ncompress                 <none>
pn  perl-doc                  <none>
pn  qemu-user                 <none>
pn  qemu-user-static          <none>
pn  squashfs-tools-ng         <none>
ii  xz-utils                  5.8.3-1
pn  zstd                      <none>

-- no debconf information
update-archive-uri-for-arm64-on-questing-and-newer.patch (application/mbox, 1.6 KB)
From 2fad3bc8e10fef40362cb407009c8cfb884dce3e Mon Sep 17 00:00:00 2001
From: Oliver Reiche <[email protected]>
Date: Fri, 24 Apr 2026 20:50:17 +0200
Subject: [PATCH] Update archive URI for arm64 on Questing and newer

... as arm64 moved from ports.ubuntu.com to the default URI starting
with Questing. Although the old URI will be available for some time
longer, this will eventually become a problem. Note that this move
happens in two stages: the first stage moved Questing and newer and the
second stage will later also move Jammy and Noble.
---
 mmdebstrap | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/mmdebstrap b/mmdebstrap
index 9f4a7c0..7052528 100755
--- a/mmdebstrap
+++ b/mmdebstrap
@@ -5364,7 +5364,17 @@ sub get_sourceslist_by_suite {
     my $mirror    = 'http://deb.debian.org/debian';
     my $secmirror = 'http://security.debian.org/debian-security';
     if (any { $_ eq $suite } @ubuntustable) {
-        if (any { $_ eq $arch } ('amd64', 'i386')) {
+        eval { require Debian::DistroInfo; };
+        my $distinfo = UbuntuDistroInfo->new();
+        # obtain version and strip potential "LTS" suffix
+        my $version = $distinfo->version($suite, 0.0);
+        $version =~ s/\ LTS//;
+        if (
+            (any { $_ eq $arch } ('amd64', 'i386'))
+            # arm64 is served from default URIs for 25.10 and newer
+            or ('arm64' eq $arch
+                and version->parse($version) >= version->parse(25.10))
+        ) {
             $mirror    = 'http://archive.ubuntu.com/ubuntu';
             $secmirror = 'http://security.ubuntu.com/ubuntu';
         } else {
-- 
2.53.0