[v13,2/2] meta/classes: add cpiogz-img

Message ID 20210630191504.2650-3-Quirin.Gylstorff@siemens.com
State Superseded, archived
Headers show
Series CPIO & OVA Images | expand

Commit Message

Quirin Gylstorff June 30, 2021, 11:15 a.m. UTC
From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

This allows to create a initramfs like filesystem.

Based on original patch by Michael Adler <michael.adler@siemens.com>.

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
[Jan: reformatting, dropped bullseye target, added to local.conf]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
 meta-isar/conf/local.conf.sample              |  1 +
 .../multiconfig/qemuamd64-buster-cpiogz.conf  |  9 ++++++++
 meta/classes/cpiogz-img.bbclass               | 22 +++++++++++++++++++
 scripts/ci_build.sh                           |  1 +
 4 files changed, 33 insertions(+)
 create mode 100644 meta-isar/conf/multiconfig/qemuamd64-buster-cpiogz.conf
 create mode 100644 meta/classes/cpiogz-img.bbclass

Patch

diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample
index 7b20a62..fcdc277 100644
--- a/meta-isar/conf/local.conf.sample
+++ b/meta-isar/conf/local.conf.sample
@@ -50,6 +50,7 @@  BBMULTICONFIG = " \
     qemuamd64-stretch \
     qemuamd64-buster \
     qemuamd64-buster-tgz \
+    qemuamd64-buster-cpiogz \
     qemuamd64-bullseye \
     container-amd64-stretch \
     container-amd64-buster \
diff --git a/meta-isar/conf/multiconfig/qemuamd64-buster-cpiogz.conf b/meta-isar/conf/multiconfig/qemuamd64-buster-cpiogz.conf
new file mode 100644
index 0000000..cadcdac
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuamd64-buster-cpiogz.conf
@@ -0,0 +1,9 @@ 
+# This software is a part of ISAR.
+# Copyright (c) Siemens AG, 2020
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuamd64"
+DISTRO ?= "debian-buster"
+
+IMAGE_TYPE = "cpiogz-img"
diff --git a/meta/classes/cpiogz-img.bbclass b/meta/classes/cpiogz-img.bbclass
new file mode 100644
index 0000000..8e90acb
--- /dev/null
+++ b/meta/classes/cpiogz-img.bbclass
@@ -0,0 +1,22 @@ 
+# This software is a part of ISAR.
+# Copyright (C) 2020 Siemens AG
+#
+# SPDX-License-Identifier: MIT
+
+CPIOGZ_FNAME ?= "${IMAGE_FULLNAME}.cpio.gz"
+CPIOGZ_IMAGE_FILE = "${DEPLOY_DIR_IMAGE}/${CPIOGZ_FNAME}"
+IMAGER_INSTALL += "cpio"
+CPIO_IMAGE_FORMAT ?= "newc"
+
+do_cpiogz_image() {
+    sudo rm -f ${CPIOGZ_IMAGE_FILE}
+    image_do_mounts
+    sudo chroot ${BUILDCHROOT_DIR} \
+                sh -c "cd ${PP_ROOTFS}; /usr/bin/find . | \
+                       /usr/bin/cpio -H ${CPIO_IMAGE_FORMAT} -o | /usr/bin/gzip -9 > \
+                       ${PP_DEPLOY}/${CPIOGZ_FNAME}"
+    sudo chown $(id -u):$(id -g) ${CPIOGZ_IMAGE_FILE}
+    image_undo_mounts
+}
+
+addtask cpiogz_image before do_image after do_image_tools
diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh
index b1bbe51..a2895f6 100755
--- a/scripts/ci_build.sh
+++ b/scripts/ci_build.sh
@@ -37,6 +37,7 @@  TARGETS_SET="\
             mc:qemuamd64-stretch:isar-image-base \
             mc:qemuamd64-buster:isar-image-base \
             mc:qemuamd64-buster-tgz:isar-image-base \
+            mc:qemuamd64-buster-cpiogz:isar-image-base \
             mc:qemuamd64-buster:isar-initramfs \
             mc:qemumipsel-stretch:isar-image-base \
             mc:qemumipsel-buster:isar-image-base \