[v3,25/27] container-loader: Migrate to bbclass'es

Message ID eb5ab151033fb1bcae83e1e4545f69b0bf362295.1764494867.git.jan.kiszka@siemens.com
State Accepted, archived
Headers show
Series [v3,01/27] linux-custom: Drop redundant template inheritance | expand

Commit Message

Jan Kiszka Nov. 30, 2025, 9:27 a.m. UTC
From: Jan Kiszka <jan.kiszka@siemens.com>

"inherit {docker,podman}-loader" is shorter and a more common pattern
compared to OE/yocto. Keep the original .inc files as transitional
helpers, issuing a warning when they are used with a migration
suggestion.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 doc/user_manual.md                             | 12 +++++-------
 .../container-loader.bbclass}                  |  5 ++---
 .../docker-loader.bbclass}                     |  4 ++--
 .../podman-loader.bbclass}                     |  4 ++--
 .../container-loader/docker-loader.inc         | 18 ++++++++----------
 .../container-loader/podman-loader.inc         | 13 ++++++++-----
 6 files changed, 27 insertions(+), 29 deletions(-)
 rename meta/{recipes-support/container-loader/container-loader.inc => classes-recipe/container-loader.bbclass} (94%)
 copy meta/{recipes-support/container-loader/docker-loader.inc => classes-recipe/docker-loader.bbclass} (82%)
 copy meta/{recipes-support/container-loader/podman-loader.inc => classes-recipe/podman-loader.bbclass} (68%)

Patch

diff --git a/doc/user_manual.md b/doc/user_manual.md
index 4e78d033..cb54330f 100644
--- a/doc/user_manual.md
+++ b/doc/user_manual.md
@@ -1654,12 +1654,10 @@  image name, replacing all `/` with `.` and appending `:<tag>.zst`. Example:
 
 To create a Debian package which can carry container images and load them into
 local storage of docker or podman, there is a set of helpers available. To use
-them in an own recipe, add
-`require recipes-support/container-loader/docker-loader.inc` when using docker
-and `require recipes-support/container-loader/podman-loader.inc` when using
-podman. The loader will try to transfer the packaged image into the container
-runtime storage on boot, but only if no container image of the same name and
-tag is present already.
+them in an own recipe, add `inherit docker-loader` when using docker and
+`inherit podman-loader` when using podman. The loader will try to transfer the
+packaged image into the container runtime storage on boot, but only if no
+container image of the same name and tag is present already.
 
 Unless `CONTAINER_DELETE_AFTER_LOAD` is set to `1`, the source container images
 remain by default available and may be used again for loading the storage after
@@ -1677,7 +1675,7 @@  runtime services are installed on the target as well. The packaged image will
 be deleted from the target device's rootfs after successful import.
 
 ```
-require recipes-support/container-loader/docker-loader.inc
+inherit docker-loader
 
 CONTAINER_DELETE_AFTER_LOAD = "1"
 
diff --git a/meta/recipes-support/container-loader/container-loader.inc b/meta/classes-recipe/container-loader.bbclass
similarity index 94%
rename from meta/recipes-support/container-loader/container-loader.inc
rename to meta/classes-recipe/container-loader.bbclass
index 90c16228..f76480be 100644
--- a/meta/recipes-support/container-loader/container-loader.inc
+++ b/meta/classes-recipe/container-loader.bbclass
@@ -1,12 +1,11 @@ 
 # This software is a part of ISAR.
-# Copyright (c) Siemens AG, 2024
+# Copyright (c) Siemens AG, 2024-2025
 #
 # SPDX-License-Identifier: MIT
 
-FILESPATH:append := ":${FILE_DIRNAME}/files"
-
 inherit dpkg-raw
 
+FILESPATH:append = ":${LAYERDIR_core}/recipes-support/container-loader/files"
 SRC_URI += " \
     file://container-loader.service.tmpl \
     file://container-loader.sh.tmpl"
diff --git a/meta/recipes-support/container-loader/docker-loader.inc b/meta/classes-recipe/docker-loader.bbclass
similarity index 82%
copy from meta/recipes-support/container-loader/docker-loader.inc
copy to meta/classes-recipe/docker-loader.bbclass
index 18604565..1b768336 100644
--- a/meta/recipes-support/container-loader/docker-loader.inc
+++ b/meta/classes-recipe/docker-loader.bbclass
@@ -1,9 +1,9 @@ 
 # This software is a part of ISAR.
-# Copyright (c) Siemens AG, 2024
+# Copyright (c) Siemens AG, 2024-2025
 #
 # SPDX-License-Identifier: MIT
 
-require container-loader.inc
+inherit container-loader
 
 CONTAINER_ENGINE = "docker"
 
diff --git a/meta/recipes-support/container-loader/podman-loader.inc b/meta/classes-recipe/podman-loader.bbclass
similarity index 68%
copy from meta/recipes-support/container-loader/podman-loader.inc
copy to meta/classes-recipe/podman-loader.bbclass
index d2c9a12d..30b1a088 100644
--- a/meta/recipes-support/container-loader/podman-loader.inc
+++ b/meta/classes-recipe/podman-loader.bbclass
@@ -1,9 +1,9 @@ 
 # This software is a part of ISAR.
-# Copyright (c) Siemens AG, 2024
+# Copyright (c) Siemens AG, 2024-2025
 #
 # SPDX-License-Identifier: MIT
 
-require container-loader.inc
+inherit container-loader
 
 CONTAINER_ENGINE = "podman"
 
diff --git a/meta/recipes-support/container-loader/docker-loader.inc b/meta/recipes-support/container-loader/docker-loader.inc
index 18604565..8dde04ee 100644
--- a/meta/recipes-support/container-loader/docker-loader.inc
+++ b/meta/recipes-support/container-loader/docker-loader.inc
@@ -1,15 +1,13 @@ 
+# Transitional include for docker-loader.bbclass
+#
 # This software is a part of ISAR.
-# Copyright (c) Siemens AG, 2024
+# Copyright (c) Siemens AG, 2025
 #
 # SPDX-License-Identifier: MIT
 
-require container-loader.inc
-
-CONTAINER_ENGINE = "docker"
-
-DOCKER_PKGS = "docker-cli, docker.io"
-DOCKER_PKGS:buster = "docker.io"
-DOCKER_PKGS:bullseye = "docker.io"
-DOCKER_PKGS:bookworm = "docker.io"
+inherit docker-loader
 
-CONTAINER_ENGINE_PACKAGES ?= "${DOCKER_PKGS}, apparmor"
+do_warn_custom_inc() {
+    bbwarn "Please migrate from \"require recipes-support/container-loader/docker-loader.inc\" to \"inherit docker-loader\""
+}
+addtask warn_custom_inc before do_unpack
diff --git a/meta/recipes-support/container-loader/podman-loader.inc b/meta/recipes-support/container-loader/podman-loader.inc
index d2c9a12d..dc8bc30f 100644
--- a/meta/recipes-support/container-loader/podman-loader.inc
+++ b/meta/recipes-support/container-loader/podman-loader.inc
@@ -1,10 +1,13 @@ 
+# Transitional include for podman-loader.bbclass
+#
 # This software is a part of ISAR.
-# Copyright (c) Siemens AG, 2024
+# Copyright (c) Siemens AG, 2025
 #
 # SPDX-License-Identifier: MIT
 
-require container-loader.inc
-
-CONTAINER_ENGINE = "podman"
+inherit podman-loader
 
-CONTAINER_ENGINE_PACKAGES ?= "podman"
+do_warn_custom_inc() {
+    bbwarn "Please migrate from \"require recipes-support/container-loader/podman-loader.inc\" to \"inherit podman-loader\""
+}
+addtask warn_custom_inc before do_unpack