From 744d04b40ad1efbac2d625387710bbd3a6db0805a3d16279a22d992336ee0138 Mon Sep 17 00:00:00 2001
From: Steven Hardy <steven.hardy@suse.com>
Date: Fri, 29 Nov 2024 18:42:00 +0000
Subject: [PATCH] kiwi-builder-image: Align with OBS latest version

Aligns with the latest fixes in isv:SUSE:Edge:KiwiBuilder/kiwi-builder-10

(cherry picked from commit 8a93aae7c5f649dcb6aedb7f4691e925c1342dcbdcf21e15bb761512a173f92f)
---
 kiwi-builder-image/Dockerfile     | 11 +++----
 kiwi-builder-image/README         | 22 +++++++++----
 kiwi-builder-image/build-image.sh | 54 ++++++++++++++++---------------
 3 files changed, 47 insertions(+), 40 deletions(-)

diff --git a/kiwi-builder-image/Dockerfile b/kiwi-builder-image/Dockerfile
index 99328b7..4ff28c9 100644
--- a/kiwi-builder-image/Dockerfile
+++ b/kiwi-builder-image/Dockerfile
@@ -1,5 +1,6 @@
-#!BuildTag: kiwi-builder:10.1
-FROM registry.suse.com/bci/kiwi:10.1.10
+#!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.0
+#!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.0-%RELEASE%
+FROM registry.suse.com/bci/kiwi:10.1.16
 MAINTAINER SUSE LLC (https://www.suse.com/)
 
 # Define labels according to https://en.opensuse.org/Building_derived_containers
@@ -11,7 +12,7 @@ LABEL org.opencontainers.image.version="%PACKAGE_VERSION%"
 LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
 LABEL org.opencontainers.image.created="%BUILDTIME%"
 LABEL org.opencontainers.image.vendor="SUSE LLC"
-LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:10.1"
+LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:10.1.16.0"
 LABEL org.openbuildservice.disturl="%DISTURL%"
 LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
 LABEL com.suse.eula="SUSE Combined EULA February 2024"
@@ -20,10 +21,6 @@ LABEL com.suse.image-type="application"
 LABEL com.suse.release-stage="released"
 # endlabelprefix
 
-# Install required packages for Kiwi to function as expected
-# Should be provided via https://github.com/SUSE/BCI-dockerfile-generator/pull/1770
-# RUN zypper in -y gawk && zypper clean -a
-
 # Configure Kiwi to use kpartx
 RUN echo -e "mapper:\n  - part_mapper: kpartx" > /etc/kiwi.yml
 
diff --git a/kiwi-builder-image/README b/kiwi-builder-image/README
index bdfa204..b74c156 100644
--- a/kiwi-builder-image/README
+++ b/kiwi-builder-image/README
@@ -8,32 +8,40 @@ Please ensure that you're running this on a registered SLE Micro 6.0 system, and
 
 Next, download the podman image:
 
-# podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10
+# podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0
 
 Make a local output directory (where the images will reside):
 
 # mkdir output
 
+Then, to build a standard "Base" image, run the following in podman:
+
+# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image
+
+To build a "Base" SelfInstall ISO, you can add additional flags, for example:
+
+# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Base-SelfInstall
+
 Then, to build a standard "Default" image, run the following in podman:
 
-# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image
+# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Default
 
-To build a SelfInstall ISO, you can add additional flags, for example:
+To build a "Default" SelfInstall ISO, you can add additional flags, for example:
 
-# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image -p Default-SelfInstall
+# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Default-SelfInstall
 
 To build an image with a RealTime kernel, e.g. a RAW disk image ("Default"), use the following:
 
-# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image -p Base-RT
+# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Base-RT
 
 To build an image that supports a large block/sectorsize (4096), use the "-b" flag, for example:
 
-# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image -p Default-SelfInstall -b
+# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image -p Default-SelfInstall -b
 
 # mkdir mydefs/
 # cp /path/to/SL-Micro.kiwi mydefs/
 # cp /path/to/config.sh mydefs/
-# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10 build-image
+# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.0 build-image
 
 All output will be in the local $(pwd)/output directory, for example:
 
diff --git a/kiwi-builder-image/build-image.sh b/kiwi-builder-image/build-image.sh
index 0725537..b0df0ba 100644
--- a/kiwi-builder-image/build-image.sh
+++ b/kiwi-builder-image/build-image.sh
@@ -21,43 +21,45 @@
 #
 
 # Set image build defaults, blocksize is an empty string
-PROFILE="Default"
+PROFILE="Base"
 LARGEBLOCK=false
 
 # Print usage
 usage(){
-	cat <<-EOF
-	==============================
-	SLE Micro 6.0 Kiwi SDK Builder
-	==============================
+  cat <<-EOF
+  ==============================
+  SLE Micro 6.0 Kiwi SDK Builder
+  ==============================
 
-	Usage: ${0} [-p <profile>] [-b]
+  Usage: ${0} [-p <profile>] [-b]
 
-	Profile Options (-p):
-	* Default: RAW Disk Image with kernel-default
-	* Default-SelfInstall: SelfInstall ISO with kernel-default
-	* Base-RT: RAW Disk Image with kernel-rt
-	* Base-RT-SelfInstall: SelfInstall ISO with kernel-rt
+  Profile Options (-p):
+  * Base: RAW Disk Image with podman
+  * Base-SelfInstall: SelfInstall ISO with podman
+  * Default: RAW Disk Image with podman and kvm
+  * Default-SelfInstall: SelfInstall ISO with podman and kvm
+  * Base-RT: RAW Disk Image with kernel-rt
+  * Base-RT-SelfInstall: SelfInstall ISO with kernel-rt
 
-	4096 Blocksize (-b): If specified, use a 4096 blocksize (rather than 512) when generating the image.
+  4096 Blocksize (-b): If specified, use a 4096 blocksize (rather than 512) when generating the image.
 
-	NOTE: If both options are omitted, the "Default" profile with a standard "512" blocksize is used.
-	EOF
+  NOTE: If both options are omitted, the "Base" profile with a standard "512" blocksize is used.
+EOF
 }
 
 # Grab CLI options and handle
 while getopts 'p:bh' OPTION; do
-	case "${OPTION}" in
-		p)
-			PROFILE="${OPTARG}"
-			;;
-		b)
-			LARGEBLOCK=true
-			;;
-		?)
-			usage && exit 2
-			;;
-	esac
+  case "${OPTION}" in
+    p)
+      PROFILE="${OPTARG}"
+      ;;
+    b)
+      LARGEBLOCK=true
+      ;;
+    ?)
+      usage && exit 2
+      ;;
+  esac
 done
 
 # To avoid wasting time, perform the loop creation test first, and exit with a warning to re-run.
@@ -88,4 +90,4 @@ if [ $RESULT -eq 0 ]; then
   echo -e "\n\nINFO: Image build successful, generated images are available in the 'output' directory."
 else
   echo -e "\n\nERROR: Failed to build the image, please see above logs."
-fi
\ No newline at end of file
+fi