meta-isar: add support for Ubuntu 24.04 (noble)

Message ID 20240923123914.150282-1-cedric.hombourger@siemens.com
State Superseded, archived
Headers show
Series meta-isar: add support for Ubuntu 24.04 (noble) | expand

Commit Message

cedric.hombourger@siemens.com Sept. 23, 2024, 12:39 p.m. UTC
Signed-off-by: Cedric Hombourger <cedric.hombourger@siemens.com>
---
 doc/user_manual.md                                   |  1 +
 meta-isar/conf/distro/ubuntu-common.inc              |  5 ++++-
 meta-isar/conf/distro/ubuntu-noble-ports.list        |  6 ++++++
 meta-isar/conf/distro/ubuntu-noble.conf              | 12 ++++++++++++
 meta-isar/conf/distro/ubuntu-noble.list              |  6 ++++++
 meta-isar/conf/machine/qemuarm64.conf                |  1 +
 meta-isar/conf/mc.conf                               |  2 ++
 meta-isar/conf/multiconfig/qemuamd64-noble.conf      |  7 +++++++
 meta-isar/conf/multiconfig/qemuarm64-noble.conf      |  7 +++++++
 .../lib/wic/plugins/source/bootimg-efi-isar.py       |  3 ++-
 10 files changed, 48 insertions(+), 2 deletions(-)
 create mode 100644 meta-isar/conf/distro/ubuntu-noble-ports.list
 create mode 100644 meta-isar/conf/distro/ubuntu-noble.conf
 create mode 100644 meta-isar/conf/distro/ubuntu-noble.list
 create mode 100644 meta-isar/conf/multiconfig/qemuamd64-noble.conf
 create mode 100644 meta-isar/conf/multiconfig/qemuarm64-noble.conf

Comments

Felix Moessbauer Sept. 23, 2024, 12:43 p.m. UTC | #1
On Mon, 2024-09-23 at 14:39 +0200, 'Cedric Hombourger' via isar-users
wrote:
> Signed-off-by: Cedric Hombourger <cedric.hombourger@siemens.com>
> ---
>  doc/user_manual.md                                   |  1 +
>  meta-isar/conf/distro/ubuntu-common.inc              |  5 ++++-
>  meta-isar/conf/distro/ubuntu-noble-ports.list        |  6 ++++++
>  meta-isar/conf/distro/ubuntu-noble.conf              | 12
> ++++++++++++
>  meta-isar/conf/distro/ubuntu-noble.list              |  6 ++++++
>  meta-isar/conf/machine/qemuarm64.conf                |  1 +
>  meta-isar/conf/mc.conf                               |  2 ++
>  meta-isar/conf/multiconfig/qemuamd64-noble.conf      |  7 +++++++
>  meta-isar/conf/multiconfig/qemuarm64-noble.conf      |  7 +++++++
>  .../lib/wic/plugins/source/bootimg-efi-isar.py       |  3 ++-
>  10 files changed, 48 insertions(+), 2 deletions(-)
>  create mode 100644 meta-isar/conf/distro/ubuntu-noble-ports.list
>  create mode 100644 meta-isar/conf/distro/ubuntu-noble.conf
>  create mode 100644 meta-isar/conf/distro/ubuntu-noble.list
>  create mode 100644 meta-isar/conf/multiconfig/qemuamd64-noble.conf
>  create mode 100644 meta-isar/conf/multiconfig/qemuarm64-noble.conf
> 
> diff --git a/doc/user_manual.md b/doc/user_manual.md
> index 706c74bf..847f4b07 100644
> --- a/doc/user_manual.md
> +++ b/doc/user_manual.md
> @@ -455,6 +455,7 @@ following distros:
>   - debian-trixie (host >= bookworm)
>   - ubuntu-focal
>   - ubuntu-jammy (requires host dpkg >= 1.21)
> + - ubuntu-noble (requires host dpkg >= 1.21)

To make this properly work, we need kas-isar:4.5, as this includes the
zstd reprepro patch. For details, see
https://github.com/siemens/kas/commit/ffa795c3458e8a074c5f7e0378095d4d01e42aa2

Cheers!
Felix

>   - raspios-bullseye
>  
>  User can select appropriate distro for specific machine by setting
> the following variable in machine configuration file:
> diff --git a/meta-isar/conf/distro/ubuntu-common.inc b/meta-
> isar/conf/distro/ubuntu-common.inc
> index 232bee35..884f7a7a 100644
> --- a/meta-isar/conf/distro/ubuntu-common.inc
> +++ b/meta-isar/conf/distro/ubuntu-common.inc
> @@ -31,7 +31,10 @@ DISTRO_KERNELS ?= " \
>  IMAGE_PREINSTALL += "init"
>  IMAGE_PREINSTALL += "initramfs-tools"
>  
> -IMAGER_INSTALL:wic += "python3-distutils"
> +UBUNTU_WIC_DEPS = ""
> +UBUNTU_WIC_DEPS:focal = "python3-distutils"
> +UBUNTU_WIC_DEPS:jammy = "python3-distutils"
> +IMAGER_INSTALL:wic += "${UBUNTU_WIC_DEPS}"
>  
>  SYSTEMD_BOOTLOADER_INSTALL:focal = "systemd:${DISTRO_ARCH}"
>  SYSTEMD_BOOTLOADER_INSTALL:jammy = "systemd:${DISTRO_ARCH}"
> diff --git a/meta-isar/conf/distro/ubuntu-noble-ports.list b/meta-
> isar/conf/distro/ubuntu-noble-ports.list
> new file mode 100644
> index 00000000..adeb2639
> --- /dev/null
> +++ b/meta-isar/conf/distro/ubuntu-noble-ports.list
> @@ -0,0 +1,6 @@
> +deb    [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble
> main restricted universe multiverse
> +deb-src        [arch=armhf,arm64]
> http://ports.ubuntu.com/ubuntu-ports noble main restricted universe
> multiverse
> +deb    [arch=armhf,arm64]
> http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted
> universe multiverse
> +deb-src        [arch=armhf,arm64]
> http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted
> universe multiverse
> +deb    [arch=armhf,arm64]
> http://ports.ubuntu.com/ubuntu-ports noble-security main restricted
> universe multiverse
> +deb-src        [arch=armhf,arm64]
> http://ports.ubuntu.com/ubuntu-ports noble-security main restricted
> universe multiverse
> diff --git a/meta-isar/conf/distro/ubuntu-noble.conf b/meta-
> isar/conf/distro/ubuntu-noble.conf
> new file mode 100644
> index 00000000..531f085f
> --- /dev/null
> +++ b/meta-isar/conf/distro/ubuntu-noble.conf
> @@ -0,0 +1,12 @@
> +#
> +# Copyright (c) Siemens AG, 2024
> +#
> +# SPDX-License-Identifier: MIT
> +
> +require conf/distro/ubuntu-common.inc
> +
> +BASE_DISTRO_CODENAME = "noble"
> +
> +DISTRO_GCC = "13"
> +
> +DEBIAN_COMPAT = "13"
> diff --git a/meta-isar/conf/distro/ubuntu-noble.list b/meta-
> isar/conf/distro/ubuntu-noble.list
> new file mode 100644
> index 00000000..91393a21
> --- /dev/null
> +++ b/meta-isar/conf/distro/ubuntu-noble.list
> @@ -0,0 +1,6 @@
> +deb    [arch=amd64,i386] http://archive.ubuntu.com/ubuntu noble main
> restricted universe multiverse
> +deb-src        [arch=amd64,i386]
> http://archive.ubuntu.com/ubuntu noble main restricted universe
> multiverse
> +deb    [arch=amd64,i386] http://archive.ubuntu.com/ubuntu noble-
> updates main restricted universe multiverse
> +deb-src        [arch=amd64,i386]
> http://archive.ubuntu.com/ubuntu noble-updates main restricted
> universe multiverse
> +deb    [arch=amd64,i386] http://archive.ubuntu.com/ubuntu noble-
> security main restricted universe multiverse
> +deb-src        [arch=amd64,i386]
> http://archive.ubuntu.com/ubuntu noble-security main restricted
> universe multiverse
> diff --git a/meta-isar/conf/machine/qemuarm64.conf b/meta-
> isar/conf/machine/qemuarm64.conf
> index 9706bbe0..d3403303 100644
> --- a/meta-isar/conf/machine/qemuarm64.conf
> +++ b/meta-isar/conf/machine/qemuarm64.conf
> @@ -6,6 +6,7 @@ DISTRO_ARCH ?= "arm64"
>  KERNEL_NAME ?= "arm64"
>  KERNEL_NAME:ubuntu-focal ?= "generic"
>  KERNEL_NAME:ubuntu-jammy ?= "generic"
> +KERNEL_NAME:ubuntu-noble ?= "generic"
>  
>  IMAGE_FSTYPES ?= "ext4"
>  ROOTFS_EXTRA ?= "128"
> diff --git a/meta-isar/conf/mc.conf b/meta-isar/conf/mc.conf
> index d8c3a3a7..212d3e4d 100644
> --- a/meta-isar/conf/mc.conf
> +++ b/meta-isar/conf/mc.conf
> @@ -61,6 +61,8 @@ BBMULTICONFIG = " \
>      starfive-visionfive2-sid \
>      qemuarm64-focal \
>      qemuarm64-jammy \
> +    qemuarm64-noble \
>      qemuamd64-focal \
>      qemuamd64-jammy \
> +    qemuamd64-noble \
>  "
> diff --git a/meta-isar/conf/multiconfig/qemuamd64-noble.conf b/meta-
> isar/conf/multiconfig/qemuamd64-noble.conf
> new file mode 100644
> index 00000000..e052eff1
> --- /dev/null
> +++ b/meta-isar/conf/multiconfig/qemuamd64-noble.conf
> @@ -0,0 +1,7 @@
> +#
> +# Copyright (c) Siemens AG, 2024
> +#
> +# SPDX-License-Identifier: MIT
> +
> +MACHINE ?= "qemuamd64"
> +DISTRO ?= "ubuntu-noble"
> diff --git a/meta-isar/conf/multiconfig/qemuarm64-noble.conf b/meta-
> isar/conf/multiconfig/qemuarm64-noble.conf
> new file mode 100644
> index 00000000..b87df1b6
> --- /dev/null
> +++ b/meta-isar/conf/multiconfig/qemuarm64-noble.conf
> @@ -0,0 +1,7 @@
> +#
> +# Copyright (c) Siemens AG, 2024
> +#
> +# SPDX-License-Identifier: MIT
> +
> +MACHINE ?= "qemuarm64"
> +DISTRO ?= "ubuntu-noble"
> diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> index 4bfb70a0..079b70d6 100644
> --- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> +++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> @@ -414,7 +414,8 @@ class BootimgEFIPlugin(SourcePlugin):
>                      grub_target = 'x86_64-efi'
>                      grub_image = "bootx64.efi"
>                      grub_modules = "multiboot efi_uga iorw ata "
> -                    if
> get_bitbake_var("DISTRO").startswith("ubuntu"):
> +                    if
> get_bitbake_var("DISTRO").startswith("ubuntu") and \
> +                        os.path.exists('/usr/lib/grub/x86_64-
> efi/linuxefi.mod'):
>                          grub_modules += "linuxefi "
>                  elif distro_arch == "i386":
>                      grub_target = 'i386-efi'
> -- 
> 2.39.2
>
Uladzimir Bely Oct. 21, 2024, 10:50 a.m. UTC | #2
On Mon, 2024-09-23 at 14:51 +0200, 'Cedric Hombourger' via isar-users
wrote:
> Changes compared to v1:
>  - upgrade kas-container to version 4.5 as recommended by Felix
> 
> Cedric Hombourger (2):
>   kas: update kas-container to version 4.5
>   meta-isar: add support for Ubuntu 24.04 (noble)
> 
>  doc/user_manual.md                            |   1 +
>  kas/kas-container                             | 159 ++++++++++++----
> --
>  meta-isar/conf/distro/ubuntu-common.inc       |   5 +-
>  meta-isar/conf/distro/ubuntu-noble-ports.list |   6 +
>  meta-isar/conf/distro/ubuntu-noble.conf       |  12 ++
>  meta-isar/conf/distro/ubuntu-noble.list       |   6 +
>  meta-isar/conf/machine/qemuarm64.conf         |   1 +
>  meta-isar/conf/mc.conf                        |   2 +
>  .../conf/multiconfig/qemuamd64-noble.conf     |   7 +
>  .../conf/multiconfig/qemuarm64-noble.conf     |   7 +
>  .../wic/plugins/source/bootimg-efi-isar.py    |   3 +-
>  11 files changed, 151 insertions(+), 58 deletions(-)
>  create mode 100644 meta-isar/conf/distro/ubuntu-noble-ports.list
>  create mode 100644 meta-isar/conf/distro/ubuntu-noble.conf
>  create mode 100644 meta-isar/conf/distro/ubuntu-noble.list
>  create mode 100644 meta-isar/conf/multiconfig/qemuamd64-noble.conf
>  create mode 100644 meta-isar/conf/multiconfig/qemuarm64-noble.conf
> 
> -- 
> 2.39.2
> 

Applied to next, thanks.

Patch

diff --git a/doc/user_manual.md b/doc/user_manual.md
index 706c74bf..847f4b07 100644
--- a/doc/user_manual.md
+++ b/doc/user_manual.md
@@ -455,6 +455,7 @@  following distros:
  - debian-trixie (host >= bookworm)
  - ubuntu-focal
  - ubuntu-jammy (requires host dpkg >= 1.21)
+ - ubuntu-noble (requires host dpkg >= 1.21)
  - raspios-bullseye
 
 User can select appropriate distro for specific machine by setting the following variable in machine configuration file:
diff --git a/meta-isar/conf/distro/ubuntu-common.inc b/meta-isar/conf/distro/ubuntu-common.inc
index 232bee35..884f7a7a 100644
--- a/meta-isar/conf/distro/ubuntu-common.inc
+++ b/meta-isar/conf/distro/ubuntu-common.inc
@@ -31,7 +31,10 @@  DISTRO_KERNELS ?= " \
 IMAGE_PREINSTALL += "init"
 IMAGE_PREINSTALL += "initramfs-tools"
 
-IMAGER_INSTALL:wic += "python3-distutils"
+UBUNTU_WIC_DEPS = ""
+UBUNTU_WIC_DEPS:focal = "python3-distutils"
+UBUNTU_WIC_DEPS:jammy = "python3-distutils"
+IMAGER_INSTALL:wic += "${UBUNTU_WIC_DEPS}"
 
 SYSTEMD_BOOTLOADER_INSTALL:focal = "systemd:${DISTRO_ARCH}"
 SYSTEMD_BOOTLOADER_INSTALL:jammy = "systemd:${DISTRO_ARCH}"
diff --git a/meta-isar/conf/distro/ubuntu-noble-ports.list b/meta-isar/conf/distro/ubuntu-noble-ports.list
new file mode 100644
index 00000000..adeb2639
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-noble-ports.list
@@ -0,0 +1,6 @@ 
+deb	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse
+deb-src	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse
+deb	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse
+deb-src	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse
+deb	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse
+deb-src	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse
diff --git a/meta-isar/conf/distro/ubuntu-noble.conf b/meta-isar/conf/distro/ubuntu-noble.conf
new file mode 100644
index 00000000..531f085f
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-noble.conf
@@ -0,0 +1,12 @@ 
+#
+# Copyright (c) Siemens AG, 2024
+#
+# SPDX-License-Identifier: MIT
+
+require conf/distro/ubuntu-common.inc
+
+BASE_DISTRO_CODENAME = "noble"
+
+DISTRO_GCC = "13"
+
+DEBIAN_COMPAT = "13"
diff --git a/meta-isar/conf/distro/ubuntu-noble.list b/meta-isar/conf/distro/ubuntu-noble.list
new file mode 100644
index 00000000..91393a21
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-noble.list
@@ -0,0 +1,6 @@ 
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu noble-security main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu noble-security main restricted universe multiverse
diff --git a/meta-isar/conf/machine/qemuarm64.conf b/meta-isar/conf/machine/qemuarm64.conf
index 9706bbe0..d3403303 100644
--- a/meta-isar/conf/machine/qemuarm64.conf
+++ b/meta-isar/conf/machine/qemuarm64.conf
@@ -6,6 +6,7 @@  DISTRO_ARCH ?= "arm64"
 KERNEL_NAME ?= "arm64"
 KERNEL_NAME:ubuntu-focal ?= "generic"
 KERNEL_NAME:ubuntu-jammy ?= "generic"
+KERNEL_NAME:ubuntu-noble ?= "generic"
 
 IMAGE_FSTYPES ?= "ext4"
 ROOTFS_EXTRA ?= "128"
diff --git a/meta-isar/conf/mc.conf b/meta-isar/conf/mc.conf
index d8c3a3a7..212d3e4d 100644
--- a/meta-isar/conf/mc.conf
+++ b/meta-isar/conf/mc.conf
@@ -61,6 +61,8 @@  BBMULTICONFIG = " \
     starfive-visionfive2-sid \
     qemuarm64-focal \
     qemuarm64-jammy \
+    qemuarm64-noble \
     qemuamd64-focal \
     qemuamd64-jammy \
+    qemuamd64-noble \
 "
diff --git a/meta-isar/conf/multiconfig/qemuamd64-noble.conf b/meta-isar/conf/multiconfig/qemuamd64-noble.conf
new file mode 100644
index 00000000..e052eff1
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuamd64-noble.conf
@@ -0,0 +1,7 @@ 
+#
+# Copyright (c) Siemens AG, 2024
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuamd64"
+DISTRO ?= "ubuntu-noble"
diff --git a/meta-isar/conf/multiconfig/qemuarm64-noble.conf b/meta-isar/conf/multiconfig/qemuarm64-noble.conf
new file mode 100644
index 00000000..b87df1b6
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuarm64-noble.conf
@@ -0,0 +1,7 @@ 
+#
+# Copyright (c) Siemens AG, 2024
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuarm64"
+DISTRO ?= "ubuntu-noble"
diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
index 4bfb70a0..079b70d6 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -414,7 +414,8 @@  class BootimgEFIPlugin(SourcePlugin):
                     grub_target = 'x86_64-efi'
                     grub_image = "bootx64.efi"
                     grub_modules = "multiboot efi_uga iorw ata "
-                    if get_bitbake_var("DISTRO").startswith("ubuntu"):
+                    if get_bitbake_var("DISTRO").startswith("ubuntu") and \
+                        os.path.exists('/usr/lib/grub/x86_64-efi/linuxefi.mod'):
                         grub_modules += "linuxefi "
                 elif distro_arch == "i386":
                     grub_target = 'i386-efi'