public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Anton Mikanovich <amikan@ilbers.de>
To: isar-users@googlegroups.com
Cc: Anton Mikanovich <amikan@ilbers.de>
Subject: [PATCH v2 09/11] meta: Add Ubuntu 26.04 (Resolute Raccoon) support
Date: Mon, 29 Jun 2026 12:46:22 +0300	[thread overview]
Message-ID: <20260629094624.855927-10-amikan@ilbers.de> (raw)
In-Reply-To: <20260629094624.855927-1-amikan@ilbers.de>

Create AMD64, ARM64 and RISCV64 configurations and put them under fast
CI testsuite.

Test cases for the RISCV64 are covered with KFAIL since stability of
this architecture on Ubuntu is not known yet.

Startvm test case for ARM64 is currently broken because of moving this
target to UEFI, so mark it as TODO and cover with KFAIL for now.

Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
 kas/distro/Kconfig                            | 10 ++-
 kas/distro/ubuntu-resolute.yaml               |  9 +++
 kas/machine/Kconfig                           |  4 ++
 meta-isar/conf/distro/ubuntu-common.inc       |  6 +-
 .../conf/distro/ubuntu-resolute-ports.list    |  6 ++
 meta-isar/conf/distro/ubuntu-resolute.conf    | 14 ++++
 meta-isar/conf/distro/ubuntu-resolute.list    |  6 ++
 meta-isar/conf/machine/qemuarm64.conf         |  8 +--
 meta-isar/conf/machine/qemuriscv64.conf       |  3 +-
 meta-isar/conf/mc.conf                        |  3 +
 .../conf/multiconfig/qemuamd64-resolute.conf  |  7 ++
 .../conf/multiconfig/qemuarm64-resolute.conf  |  7 ++
 .../multiconfig/qemuriscv64-resolute.conf     |  7 ++
 testsuite/citest.py                           | 64 ++++++++++++++++++-
 testsuite/data/targets.yml                    |  6 ++
 testsuite/start_vm.py                         |  5 +-
 16 files changed, 155 insertions(+), 10 deletions(-)
 create mode 100644 kas/distro/ubuntu-resolute.yaml
 create mode 100644 meta-isar/conf/distro/ubuntu-resolute-ports.list
 create mode 100644 meta-isar/conf/distro/ubuntu-resolute.conf
 create mode 100644 meta-isar/conf/distro/ubuntu-resolute.list
 create mode 100644 meta-isar/conf/multiconfig/qemuamd64-resolute.conf
 create mode 100644 meta-isar/conf/multiconfig/qemuarm64-resolute.conf
 create mode 100644 meta-isar/conf/multiconfig/qemuriscv64-resolute.conf

diff --git a/kas/distro/Kconfig b/kas/distro/Kconfig
index e819ab70..9dadc52e 100644
--- a/kas/distro/Kconfig
+++ b/kas/distro/Kconfig
@@ -1,5 +1,5 @@
 # This software is a part of Isar.
-# Copyright (C) 2023-2024 ilbers GmbH
+# Copyright (C) 2023-2026 ilbers GmbH
 #
 # SPDX-License-Identifier: MIT
 #
@@ -44,6 +44,9 @@ config CODENAME_JAMMY
 config CODENAME_NOBLE
 	bool
 
+config CODENAME_RESOLUTE
+	bool
+
 choice
 	prompt "Distro selection"
 	default DEBIAN_TRIXIE
@@ -92,6 +95,10 @@ config UBUNTU_NOBLE
 	bool "Ubuntu 24.04 (Noble)"
 	depends on (DISTRO_UBUNTU && CODENAME_NOBLE) || ANY_MACHINE_DISTRO
 
+config UBUNTU_RESOLUTE
+	bool "Ubuntu 26.04 (Resolute)"
+	depends on (DISTRO_UBUNTU && CODENAME_RESOLUTE) || ANY_MACHINE_DISTRO
+
 endchoice
 
 config ANY_MACHINE_DISTRO
@@ -114,5 +121,6 @@ config KAS_INCLUDE_DISTRO
 	default "kas/distro/ubuntu-focal.yaml" if UBUNTU_FOCAL
 	default "kas/distro/ubuntu-jammy.yaml" if UBUNTU_JAMMY
 	default "kas/distro/ubuntu-noble.yaml" if UBUNTU_NOBLE
+	default "kas/distro/ubuntu-resolute.yaml" if UBUNTU_RESOLUTE
 
 endmenu
diff --git a/kas/distro/ubuntu-resolute.yaml b/kas/distro/ubuntu-resolute.yaml
new file mode 100644
index 00000000..fb643862
--- /dev/null
+++ b/kas/distro/ubuntu-resolute.yaml
@@ -0,0 +1,9 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+header:
+  version: 14
+
+distro: ubuntu-resolute
diff --git a/kas/machine/Kconfig b/kas/machine/Kconfig
index 6151716a..04881a4b 100644
--- a/kas/machine/Kconfig
+++ b/kas/machine/Kconfig
@@ -123,6 +123,7 @@ config MACHINE_QEMU_AMD64
 	select CODENAME_FOCAL
 	select CODENAME_JAMMY
 	select CODENAME_NOBLE
+	select CODENAME_RESOLUTE
 	select ARCH_AMD64
 
 config MACHINE_QEMU_ARM
@@ -145,6 +146,7 @@ config MACHINE_QEMU_ARM64
 	select CODENAME_FOCAL
 	select CODENAME_JAMMY
 	select CODENAME_NOBLE
+	select CODENAME_RESOLUTE
 	select ARCH_ARM64
 
 config MACHINE_QEMU_I386
@@ -167,6 +169,8 @@ config MACHINE_QEMU_RISCV64
 	select DISTRO_DEBIAN
 	select CODENAME_TRIXIE
 	select CODENAME_SID
+	select DISTRO_UBUNTU
+	select CODENAME_RESOLUTE
 	select ARCH_RISCV64
 
 config MACHINE_RPI_ARM_V7
diff --git a/meta-isar/conf/distro/ubuntu-common.inc b/meta-isar/conf/distro/ubuntu-common.inc
index 8b9964c8..1ee9bb84 100644
--- a/meta-isar/conf/distro/ubuntu-common.inc
+++ b/meta-isar/conf/distro/ubuntu-common.inc
@@ -1,5 +1,6 @@
-#
+# This software is a part of Isar.
 # Copyright (c) Siemens AG, 2018-2023
+# Copyright (C) 2023-2024 ilbers GmbH
 #
 # SPDX-License-Identifier: MIT
 
@@ -12,6 +13,9 @@ HOST_BASE_DISTRO = "${BASE_DISTRO}"
 DISTRO_APT_SOURCES:arm64 ?= "conf/distro/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}-ports.list"
 HOST_DISTRO_APT_SOURCES:arm64 ?= "conf/distro/${HOST_DISTRO}.list conf/distro/${HOST_DISTRO}-ports.list"
 
+DISTRO_APT_SOURCES:riscv64 ?= "conf/distro/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}-ports.list"
+HOST_DISTRO_APT_SOURCES:riscv64 ?= "conf/distro/${HOST_DISTRO}.list conf/distro/${HOST_DISTRO}-ports.list"
+
 BOOTSTRAP_KEY = "file://${LAYERDIR_isar}/conf/distro/ubuntu.public.key;sha256sum=36a38199a4bf4eae1e7f574891f7dfcb79b91b87a33a499383265e1224b5e989"
 DISTRO_BOOTSTRAP_KEYS += "${BOOTSTRAP_KEY}"
 HOST_DISTRO_BOOTSTRAP_KEYS += "${BOOTSTRAP_KEY}"
diff --git a/meta-isar/conf/distro/ubuntu-resolute-ports.list b/meta-isar/conf/distro/ubuntu-resolute-ports.list
new file mode 100644
index 00000000..239cafe6
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-resolute-ports.list
@@ -0,0 +1,6 @@
+deb	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute main restricted universe multiverse
+deb-src	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute main restricted universe multiverse
+deb	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-updates main restricted universe multiverse
+deb-src	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-updates main restricted universe multiverse
+deb	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-security main restricted universe multiverse
+deb-src	[arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-security main restricted universe multiverse
diff --git a/meta-isar/conf/distro/ubuntu-resolute.conf b/meta-isar/conf/distro/ubuntu-resolute.conf
new file mode 100644
index 00000000..141f438f
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-resolute.conf
@@ -0,0 +1,14 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+require conf/distro/ubuntu-common.inc
+
+BASE_DISTRO_CODENAME = "resolute"
+
+DISTRO_GCC = "15"
+
+DEBIAN_COMPAT = "13"
+
+DEBIAN_STANDARDS_VERSION ?= "4.7.4"
diff --git a/meta-isar/conf/distro/ubuntu-resolute.list b/meta-isar/conf/distro/ubuntu-resolute.list
new file mode 100644
index 00000000..65dcc81e
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-resolute.list
@@ -0,0 +1,6 @@
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute main restricted universe multiverse
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-updates main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-updates main restricted universe multiverse
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-security main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-security main restricted universe multiverse
diff --git a/meta-isar/conf/machine/qemuarm64.conf b/meta-isar/conf/machine/qemuarm64.conf
index 0cc7457c..4b76e5c1 100644
--- a/meta-isar/conf/machine/qemuarm64.conf
+++ b/meta-isar/conf/machine/qemuarm64.conf
@@ -1,12 +1,12 @@
 # This software is a part of Isar.
-# Copyright (C) 2015-2017 ilbers GmbH
+# Copyright (C) 2015-2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
 
 DISTRO_ARCH ?= "arm64"
 
 KERNEL_NAME ?= "arm64"
-KERNEL_NAME:ubuntu-focal ?= "generic"
-KERNEL_NAME:ubuntu-jammy ?= "generic"
-KERNEL_NAME:ubuntu-noble ?= "generic"
+KERNEL_NAME:ubuntu ?= "generic"
 
 IMAGE_FSTYPES ?= "ext4"
 ROOTFS_EXTRA ?= "128"
diff --git a/meta-isar/conf/machine/qemuriscv64.conf b/meta-isar/conf/machine/qemuriscv64.conf
index f2a32b8e..a2a5de9b 100644
--- a/meta-isar/conf/machine/qemuriscv64.conf
+++ b/meta-isar/conf/machine/qemuriscv64.conf
@@ -1,5 +1,5 @@
 # This software is a part of Isar.
-# Copyright (C) 2015-2017 ilbers GmbH
+# Copyright (C) 2015-2026 ilbers GmbH
 # Copyright (c) Siemens AG, 2020
 #
 # SPDX-License-Identifier: MIT
@@ -7,6 +7,7 @@
 DISTRO_ARCH ?= "riscv64"
 
 KERNEL_NAME ?= "riscv64"
+KERNEL_NAME:ubuntu ?= "generic"
 
 IMAGE_FSTYPES ?= "ext4"
 ROOTFS_EXTRA ?= "128"
diff --git a/meta-isar/conf/mc.conf b/meta-isar/conf/mc.conf
index 6c7d7840..6f9ac7df 100644
--- a/meta-isar/conf/mc.conf
+++ b/meta-isar/conf/mc.conf
@@ -72,9 +72,12 @@ BBMULTICONFIG = " \
     qemuarm64-focal \
     qemuarm64-jammy \
     qemuarm64-noble \
+    qemuarm64-resolute \
     qemuamd64-focal \
     qemuamd64-jammy \
     qemuamd64-noble \
+    qemuamd64-resolute \
     qemuamd64-sid \
     qemuarm64-sid \
+    qemuriscv64-resolute \
 "
diff --git a/meta-isar/conf/multiconfig/qemuamd64-resolute.conf b/meta-isar/conf/multiconfig/qemuamd64-resolute.conf
new file mode 100644
index 00000000..8c997f89
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuamd64-resolute.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuamd64"
+DISTRO ?= "ubuntu-resolute"
diff --git a/meta-isar/conf/multiconfig/qemuarm64-resolute.conf b/meta-isar/conf/multiconfig/qemuarm64-resolute.conf
new file mode 100644
index 00000000..cdb25642
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuarm64-resolute.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuarm64"
+DISTRO ?= "ubuntu-resolute"
diff --git a/meta-isar/conf/multiconfig/qemuriscv64-resolute.conf b/meta-isar/conf/multiconfig/qemuriscv64-resolute.conf
new file mode 100644
index 00000000..4f2c6b9e
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuriscv64-resolute.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuriscv64"
+DISTRO ?= "ubuntu-resolute"
diff --git a/testsuite/citest.py b/testsuite/citest.py
index ff2f9ba4..5975b2cc 100644
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python3
 #
 # This software is a part of Isar.
-# Copyright (C) 2022-2025 ilbers GmbH
+# Copyright (C) 2022-2026 ilbers GmbH
 # Copyright (C) 2022-2025 Siemens AG
 #
 # SPDX-License-Identifier: MIT
@@ -262,6 +262,8 @@ class CrossTest(CIBaseTest):
             'mc:qemuarm64-trixie:isar-image-base',
             'mc:qemuarm64-focal:isar-image-base',
             'mc:nanopi-neo-efi-bookworm:isar-image-base',
+            'mc:qemuarm64-resolute:isar-image-base',
+            'mc:qemuamd64-resolute:isar-image-base',
         ]
 
         self.init()
@@ -384,6 +386,42 @@ class CrossTest(CIBaseTest):
         self.init()
         self.vm_start('arm64', 'focal')
 
+    # TODO: broken because of moving to UEFI
+    def test_run_arm64_resolute(self):
+        """
+        :avocado: tags=startvm
+        """
+        self.init()
+        try:
+            self.vm_start('arm64', 'resolute')
+        except exceptions.TestFail:
+            self.cancel('KFAIL')
+
+    def test_run_amd64_resolute(self):
+        """
+        :avocado: tags=startvm
+        """
+        self.init()
+        self.vm_start('amd64', 'resolute')
+
+    def test_cross_debsrc(self):
+        targets = [
+            'mc:qemuarm64-bookworm:isar-image-ci',
+        ]
+
+        self.init()
+        # only build a single custom package to speedup test
+        self.perform_build_test(targets, debsrc_cache=True, image_install='cowsay')
+
+    def test_cross_trixie(self):
+        targets = [
+            'mc:qemuamd64-trixie:isar-image-base',
+            'mc:qemuarm64-trixie:isar-image-base',
+        ]
+
+        self.init()
+        self.perform_build_test(targets, cross=False)
+
     def test_cross_debsrc(self):
         targets = [
             'mc:qemuarm64-bookworm:isar-image-ci',
@@ -430,6 +468,30 @@ class CrossTest(CIBaseTest):
         self.perform_build_test(targets, lines=lines,
                                 image_install=image_install)
 
+    def test_cross_riscv64(self):
+        """
+        :avocado: tags=riscv64
+        """
+        targets = [
+            'mc:qemuriscv64-resolute:isar-image-ci',
+        ]
+
+        self.init()
+        try:
+            self.perform_build_test(targets)
+        except exceptions.TestFail:
+            self.cancel('KFAIL')
+
+    def test_run_riscv64_resolute(self):
+        """
+        :avocado: tags=startvm,riscv64
+        """
+        self.init()
+        try:
+            self.vm_start('riscv64', 'resolute', image='isar-image-ci')
+        except exceptions.TestFail:
+            self.cancel('KFAIL')
+
     def test_cross_mira_trixie(self):
         targets = [
             'mc:phyboard-mira-trixie:isar-image-base',
diff --git a/testsuite/data/targets.yml b/testsuite/data/targets.yml
index e7b112d9..f480d034 100644
--- a/testsuite/data/targets.yml
+++ b/testsuite/data/targets.yml
@@ -127,16 +127,22 @@ a: !mux
     name: qemuarm64-jammy
   qemuarm64-noble:
     name: qemuarm64-noble
+  qemuarm64-resolute:
+    name: qemuarm64-resolute
   qemuamd64-focal:
     name: qemuamd64-focal
   qemuamd64-jammy:
     name: qemuamd64-jammy
   qemuamd64-noble:
     name: qemuamd64-noble
+  qemuamd64-resolute:
+    name: qemuamd64-resolute
   qemuamd64-sid:
     name: qemuamd64-sid
   qemuarm64-sid:
     name: qemuarm64-sid
+  qemuriscv64-resolute:
+    name: qemuriscv64-resolute
 b: !mux
   base:
     image: isar-image-base
diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py
index 8e28f11b..15d5ed5c 100755
--- a/testsuite/start_vm.py
+++ b/testsuite/start_vm.py
@@ -48,7 +48,7 @@ def format_qemu_cmdline(
     extra_args = ''
 
     image_type = image_fstypes.split()[0]
-    base = 'ubuntu' if distro in ['jammy', 'focal', 'noble'] else 'debian'
+    base = 'ubuntu' if distro in ['jammy', 'focal', 'noble', 'resolute'] else 'debian'
 
     rootfs_image = f"{image}-{base}-{distro}-qemu{arch}.{image_type}"
 
@@ -148,7 +148,7 @@ def start_qemu(arch, build, distro, image, out, pid, enforce_pcbios):
 
 def parse_args():
     parser = argparse.ArgumentParser()
-    arch_names = ['arm', 'arm64', 'amd64', 'amd64-sb', 'amd64-cip', 'amd64-iso', 'i386', 'mipsel']
+    arch_names = ['arm', 'arm64', 'amd64', 'amd64-sb', 'amd64-cip', 'amd64-iso', 'i386', 'mipsel', 'riscv64']
     distro_names = [
         'buster',
         'bullseye',
@@ -157,6 +157,7 @@ def parse_args():
         'focal',
         'jammy',
         'noble',
+        'resolute',
     ]
     parser.add_argument(
         '-a',
-- 
2.34.1

-- 
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260629094624.855927-10-amikan%40ilbers.de.

  parent reply	other threads:[~2026-06-29  9:46 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-29  9:46 [PATCH v2 00/11] Add new targets and required fixes Anton Mikanovich
2026-06-29  9:46 ` [PATCH v2 01/11] grub: Remove obsolete efi_uga module for new distros Anton Mikanovich
2026-06-29  9:46 ` [PATCH v2 02/11] CI: Freeze setuptools package version for avocado compatibility Anton Mikanovich
2026-06-29  9:46 ` [PATCH v2 03/11] CI: Fix errors reporting during startvm Anton Mikanovich
2026-06-29  9:46 ` [PATCH v2 04/11] meta: Add base distro overrides Anton Mikanovich
2026-06-29  9:46 ` [PATCH v2 05/11] linux-kernel: Reverse linux-libc-dev package arch selection logic Anton Mikanovich
2026-06-29  9:46 ` [PATCH v2 06/11] trixie: Split missing drivers hook recipes Anton Mikanovich
2026-06-29  9:46 ` [PATCH v2 07/11] CI: Move trixie targets to generic test cases Anton Mikanovich
2026-06-29  9:46 ` [PATCH v2 08/11] CI: Run startvm for all qemu targets Anton Mikanovich
2026-06-29  9:46 ` Anton Mikanovich [this message]
2026-06-29  9:46 ` [PATCH v2 10/11] testsuite: Cover Debian Trixie RISCV64 QEMU target with CI Anton Mikanovich
2026-06-29  9:46 ` [PATCH v2 11/11] testsuite: Cover Debian Forky " Anton Mikanovich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260629094624.855927-10-amikan@ilbers.de \
    --to=amikan@ilbers.de \
    --cc=isar-users@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox