diff --git a/2d963ea0ccd350d05df9a0f5c4bac261cba22389.patch b/2d963ea0ccd350d05df9a0f5c4bac261cba22389.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4cded32d421a656a5d98fbe0b44b0c4791acccf5
--- /dev/null
+++ b/2d963ea0ccd350d05df9a0f5c4bac261cba22389.patch
@@ -0,0 +1,13 @@
+diff --git a/doc/source/quickstart.rst b/doc/source/quickstart.rst
+index c3053ac6e7..b48f0ca0b5 100644
+--- a/doc/source/quickstart.rst
++++ b/doc/source/quickstart.rst
+@@ -44,7 +44,7 @@ command in order to build it:
+
+ .. code:: bash
+
+- $ sudo kiwi-ng --type oem system build \
++ $ sudo kiwi-ng --profile=Disk --type oem system build \
+ --description kiwi-descriptions/suse/x86_64/{exc_description} \
+ --target-dir /tmp/myimage
+
diff --git a/fd6c0fac7bff29dfa745f951428f0f8933c65d60.patch b/fd6c0fac7bff29dfa745f951428f0f8933c65d60.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d6a9e39075465f02076a57883debf368c9dccf96
--- /dev/null
+++ b/fd6c0fac7bff29dfa745f951428f0f8933c65d60.patch
@@ -0,0 +1,1371 @@
+diff --git a/build-tests/arm/fedora/test-image-live/appliance.kiwi b/build-tests/arm/fedora/test-image-live/appliance.kiwi
+index 15a131cabd..b8a01c42f8 100644
+--- a/build-tests/arm/fedora/test-image-live/appliance.kiwi
++++ b/build-tests/arm/fedora/test-image-live/appliance.kiwi
+@@ -17,7 +17,9 @@
+ false
+
+
+-
++
++
++
+
+
+
+diff --git a/build-tests/arm/suse/test-image-live/appliance.kiwi b/build-tests/arm/suse/test-image-live/appliance.kiwi
+index 6b6bb7053c..c7043cbf0c 100644
+--- a/build-tests/arm/suse/test-image-live/appliance.kiwi
++++ b/build-tests/arm/suse/test-image-live/appliance.kiwi
+@@ -16,7 +16,7 @@
+ false
+ bgrt
+ openSUSE
+-
++
+
+
+
+diff --git a/build-tests/arm/suse/test-image-rpi-overlay/appliance.kiwi b/build-tests/arm/suse/test-image-rpi-overlay/appliance.kiwi
+new file mode 100644
+index 0000000000..4a51c17c7b
+--- /dev/null
++++ b/build-tests/arm/suse/test-image-rpi-overlay/appliance.kiwi
+@@ -0,0 +1,70 @@
++
++
++
++
++ Marcus Schäfer
++ ms@suse.com
++ Disk image for RaspberryPi read-only overlay test build
++
++
++ 1.15.22
++ zypper
++ en_US
++ us
++ UTC
++ true
++
++
++
++ false
++ false
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff --git a/build-tests/arm/suse/test-image-rpi-overlay/config.sh b/build-tests/arm/suse/test-image-rpi-overlay/config.sh
+new file mode 100644
+index 0000000000..1dee22e7e2
+--- /dev/null
++++ b/build-tests/arm/suse/test-image-rpi-overlay/config.sh
+@@ -0,0 +1,67 @@
++#!/bin/bash
++#======================================
++# Functions...
++#--------------------------------------
++test -f /.kconfig && . /.kconfig
++test -f /.profile && . /.profile
++
++#======================================
++# Greeting...
++#--------------------------------------
++echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..."
++
++#======================================
++# Debug
++#--------------------------------------
++#systemctl enable debug-shell.service
++
++#======================================
++# Setup baseproduct link
++#--------------------------------------
++suseSetupProduct
++
++#======================================
++# Specify default runlevel
++#--------------------------------------
++baseSetRunlevel 3
++
++#======================================
++# Activate services
++#--------------------------------------
++suseInsertService sshd
++
++#======================================
++# SSL Certificates Configuration
++#--------------------------------------
++echo '** Rehashing SSL Certificates...'
++update-ca-certificates
++
++#=====================================
++# Enable ntpd if installed
++#-------------------------------------
++if [ -f /etc/ntp.conf ]; then
++ suseInsertService ntpd
++ for i in 0 1 2 3; do
++ echo "server $i.opensuse.pool.ntp.org iburst" >> /etc/ntp.conf
++ done
++fi
++
++#======================================
++# Configure Raspberry Pi specifics
++#--------------------------------------
++# Add necessary kernel modules to initrd (will disappear with bsc#1084272)
++echo 'add_drivers+=" bcm2835_dma dwc2 "' \
++ > /etc/dracut.conf.d/raspberrypi_modules.conf
++
++# Work around HDMI connector bug and network issues
++cat > /etc/modprobe.d/50-rpi3.conf <<-EOF
++ # No HDMI hotplug available
++ options drm_kms_helper poll=0
++ # Prevent too many page allocations (bsc#1012449)
++ options smsc95xx turbo_mode=N
++EOF
++
++cat > /usr/lib/sysctl.d/50-rpi3.conf <<-EOF
++ # Avoid running out of DMA pages for smsc95xx (bsc#1012449)
++ vm.min_free_kbytes = 2048
++EOF
+diff --git a/build-tests/arm/suse/test-image-rpi-overlay/uboot-image-raspberrypi4-install b/build-tests/arm/suse/test-image-rpi-overlay/uboot-image-raspberrypi4-install
+new file mode 100644
+index 0000000000..83cb5e3458
+--- /dev/null
++++ b/build-tests/arm/suse/test-image-rpi-overlay/uboot-image-raspberrypi4-install
+@@ -0,0 +1,655 @@
++#!/bin/bash
++#
++# U-Boot injection script.
++#
++# This script installs U-Boot SPL, MLO, BL1, IMX, whatever images into
++# the target image during setup time as well as on first boot.
++#
++# It also serves as our generic hook into things we need to do to fix
++# up the build.
++
++set -x
++
++diskname=$1
++bootdev=$2
++p_number=${bootdev: -1}
++loopname="${bootdev%*p$p_number}"
++loopdev=/dev/${loopname#/dev/mapper/*}
++flavor=raspberrypi4
++is_firstboot=
++
++if [ "$is_firstboot" ]; then
++ # We're not inside the image build, but in the first boot of an
++ # installed system
++
++ diskname=$(df / --output=source | tail -n1 | sed 's/[0-9]*$//;s/p$//')
++ is_firstboot=1
++ if [ -d /boot/efi ]; then
++ is_efi=1
++ fi
++
++ cd /
++
++ # During firstboot, gdisk is available at /usr/sbin.
++ export PATH="$PATH:/usr/sbin/"
++else
++ # We don't have gdisk in the build system, so point to the rootfs binary
++ export PATH="$PATH:/usr/src/packages/KIWIROOT-oem/usr/sbin/"
++
++ # old KIWI places EFI in the root dir, KIWI-ng uses the final location
++ # below boot/efi/
++ if [[ -d EFI || -d "boot/efi/EFI" ]]; then
++ # We're on an EFI build, so kiwi doesn't copy u-boot over.
++ # This is a hack to chdir into the obs-build dir to find
++ # our u-boot binaries nevertheless.
++ pushd /usr/src/packages/KIWIROOT-oem/
++ is_efi=1
++ fi
++fi
++
++#==========================================
++# Convert GPT to MBR if necessary
++# TODO: remove me from here once new kiwi landed in TW and use efiparttable XML attribute instead
++#------------------------------------------
++if [ "$is_efi" ]; then
++ # Some systems can not deal with GPT partition tables, so for
++ # those we convert the GPT to MBR
++ force_mbr=
++
++ if [ -f "boot/vc/bootcode.bin" ]; then
++ # The RPi firmware can only read MBR
++ force_mbr=1
++ fi
++
++ if [ -f "boot/imx6-spl.bin" -o -f "boot/u-boot.imx" -o -f "boot/u-boot-dtb.imx" ]; then
++ # SPL goes at sector 2, overlapping GPT
++ force_mbr=1
++ fi
++
++ if [ -f "boot/arndale-bl1.img" -o \
++ -f "boot/bl1.bin.hardkernel" -o \
++ -f "boot/E4412_S.bl1.HardKernel.bin" ]; then
++ # BL1 goes at sector 1, overlapping GPT
++ force_mbr=1
++ fi
++
++ if [[ "$flavor" = "nanopik2" ]]; then
++ # BL2 goes at sector 1, overlapping GPT
++ force_mbr=1
++ fi
++
++ if [ -f "boot/u-boot-spl.kwb" ]; then
++ # SPL goes at sector 1, overlapping GPT
++ force_mbr=1
++ fi
++
++ if [ -f "boot/efi/boot.bin" ]; then
++ # ZynqMP / Zynq can only read from MBR
++ force_mbr=1
++ fi
++
++ if [ "$force_mbr" ]; then
++ # The target system doesn't support GPT, so let's move it to
++ # MBR partition layout instead.
++ #
++ # Also make sure to set the ESP partition to type 0xc so that
++ # broken firmware (Rpi) detects it as FAT.
++
++ # Use tabs, "<<-" strips tabs, but no other whitespace!
++ cat > gdisk.tmp <<-'EOF'
++ x
++ r
++ g
++ t
++ 1
++ c
++ w
++ y
++ EOF
++ losetup /dev/loop3 $diskname
++ dd if=/dev/loop3 of=mbrid.bin bs=1 skip=440 count=4
++ gdisk /dev/loop3 < gdisk.tmp
++ dd of=/dev/loop3 if=mbrid.bin bs=1 seek=440 count=4
++ losetup -d /dev/loop3
++ rm -f mbrid.bin
++ rm -f gdisk.tmp
++ fi
++fi
++
++#==========================================
++# adjust Raspberry Pi partition table
++#------------------------------------------
++if [ -f "boot/vc/bootcode.bin" -a ! "$is_efi" ]; then
++ echo -n > gdisk.tmp
++ if [ ! "$is_firstboot" ]; then
++ # Set the name of the first partition to "vcboot" and mark
++ # the 1st and 2nd partitions as bootable (checked by RPi loader and U-Boot)
++ cat >> gdisk.tmp <<-'EOF'
++ c
++ 1
++ vcboot
++ x
++ a
++ 1
++ 2
++ 64
++ a
++ 2
++ 2
++ 64
++ m
++ EOF
++ else
++ # Mark the 1st partition as (legacy) bootable (checked by RPi loader), since repartion removed it
++ cat >> gdisk.tmp <<-'EOF'
++ x
++ a
++ 1
++ 2
++ 64
++ m
++ EOF
++ fi
++
++ # Convert GPT to hybrid GPT
++ cat >> gdisk.tmp <<-'EOF'
++ x
++ r
++ h
++ 1 2 3
++ n
++ c
++ n
++ 82
++ y
++ 83
++ n
++ w
++ y
++ EOF
++
++ if [ "$is_firstboot" ]; then
++ gdisk /dev/mmcblk0 < gdisk.tmp
++ else
++ gdisk /dev/loop0 < gdisk.tmp
++ fi
++ rm -f gdisk.tmp
++fi
++
++#==========================================
++# set certain dirs as nocow
++#------------------------------------------
++function nocow() {
++ [ -d $1 ] && chattr -R +C $i
++}
++
++for i in var/lib/mariadb var/lib/mysql var/lib/pgsql var/lib/libvirt/images var/log/journal; do
++ nocow $i
++done
++
++#==========================================
++# copy Raspberry Pi firmware to EFI partition
++#------------------------------------------
++if [ -f "boot/vc/bootcode.bin" -a "$is_efi" -a ! "$is_firstboot" ]; then
++ echo "RPi EFI system, installing firmware on ESP"
++ LINE=$(kpartx -asv $diskname | head -n1)
++ PART=$(echo "$LINE" | awk '{print $3}')
++ mkdir -p ./mnt-pi
++ mount /dev/mapper/$PART ./mnt-pi
++ ( cd boot/vc; tar c . ) | ( cd ./mnt-pi/; tar x )
++ umount ./mnt-pi
++ rmdir ./mnt-pi
++ # "kpartx -dv $diskname" does not work if $diskname
++ # is longer than 64 characters
++ LOOPDEV=$(echo "/dev/$PART" | sed 's/p[0-9][0-9]*$//')
++ kpartx -dv $LOOPDEV
++ losetup -d $LOOPDEV
++fi
++
++#==========================================
++# install MLO as raw
++#------------------------------------------
++if [ -f "boot/MLO" ];then
++ echo "Installing MLO (SPL)..."
++ opt="count=1 seek=1 conv=notrunc"
++ if ! dd if=boot/MLO of=$diskname bs=128k $opt; then
++ echo "Couldn't install MLO on $diskname"
++ exit 1
++ fi
++
++ echo "Installing U-Boot..."
++ opt="seek=1 conv=notrunc"
++ if ! dd if=boot/u-boot.img of=$diskname bs=384k $opt; then
++ echo "Couldn't install U-Boot on $diskname"
++ exit 1
++ fi
++
++ # /.../
++ # To avoid any issues when parted leaves x86 boot code
++ # in the MBR we better clear that part of the image
++ # ----
++ dd if=/dev/zero of=$diskname bs=440 count=1 conv=notrunc
++fi
++
++
++#==========================================
++# install Odroid (exynos4) BL* & u-boot as raw
++#------------------------------------------
++if [ -f "boot/E4412_S.bl1.HardKernel.bin" ];then
++ echo "Installing BL1..."
++ if ! dd if=boot/E4412_S.bl1.HardKernel.bin of=$diskname seek=1 conv=notrunc; then
++ echo "Couldn't install BL1 on $diskname"
++ exit 1
++ fi
++ echo "Installing BL2..."
++ if ! dd if=boot/bl2.signed.bin of=$diskname seek=31 conv=notrunc; then
++ echo "Couldn't install BL2 on $diskname"
++ exit 1
++ fi
++ echo "Installing U-Boot..."
++ if ! dd if=boot/u-boot.bin of=$diskname seek=63 conv=notrunc; then
++ echo "Couldn't install u-boot on $diskname"
++ exit 1
++ fi
++ if ! dd if=boot/E4412_S.tzsw.signed.bin of=$diskname seek=2111 conv=notrunc; then
++ echo "Couldn't install TrustZone S/W on $diskname"
++ exit 1
++ fi
++fi
++
++#==========================================
++# install Odroid-X3 (exynos5) BL* & u-boot as raw
++# Careful: Odroid-C2 also has bl1.bin.hardkernel
++# TODO: Use image names instead of filename
++#------------------------------------------
++if [[ -f "boot/bl1.bin.hardkernel" && -f "boot/bl2.bin.hardkernel" ]]; then
++ echo "Installing BL1..."
++ if ! dd if=boot/bl1.bin.hardkernel of=$diskname seek=1 conv=notrunc; then
++ echo "Couldn't install BL1 on $diskname"
++ exit 1
++ fi
++ echo "Installing BL2..."
++ if ! dd if=boot/bl2.bin.hardkernel of=$diskname seek=31 conv=notrunc; then
++ echo "Couldn't install BL2 on $diskname"
++ exit 1
++ fi
++ echo "Installing U-Boot..."
++ if ! dd if=boot/u-boot.bin of=$diskname seek=63 conv=notrunc; then
++ echo "Couldn't install u-boot on $diskname"
++ exit 1
++ fi
++ if ! dd if=boot/tzsw.bin.hardkernel of=$diskname seek=719 conv=notrunc; then
++ echo "Couldn't install TrustZone S/W on $diskname"
++ exit 1
++ fi
++fi
++
++#==========================================
++# install Arndale SPL & U-Boot as raw
++#------------------------------------------
++if [[ -f "boot/smdk5250-spl.bin" || -f "boot/arndale-spl.bin" ]];then
++ echo "Installing BL1..."
++ if ! dd if=boot/arndale-bl1.img of=$diskname seek=1 conv=notrunc; then
++ echo "Couldn't install BL1 on $diskname"
++ exit 1
++ fi
++ echo "Installing SPL..."
++ # Get SPL name (depends on U-Boot version)
++ SPL_FILE=$(ls boot/*-spl.bin);
++ if ! dd if=$SPL_FILE of=$diskname seek=17 conv=notrunc; then
++ echo "Couldn't install SPL ($SPL_FILE) on $diskname"
++ exit 1
++ fi
++ echo "Installing U-Boot..."
++ if ! dd if=boot/u-boot.bin of=$diskname seek=49 conv=notrunc; then
++ echo "Couldn't install u-boot on $diskname"
++ exit 1
++ fi
++fi
++
++#==========================================
++# install sunXi/SoCFPGA SPL & U-Boot as raw
++#------------------------------------------
++if [[ -f "boot/sunxi-spl.bin" || -f "boot/u-boot-sunxi-with-spl.bin" || -f "boot/u-boot-with-spl.sfp" ]]; then
++ if [ "$is_efi" ]; then
++ # The GPT spans the first 33 sectors, but we need to write our
++ # at sector 16. Shrink the GPT to only span 5 sectors
++ # (16 partitions) to give us some space.
++ echo -e 'x\ns\n16\nw\ny' > gdisk.tmp
++ losetup /dev/loop3 $diskname
++ dd if=/dev/loop3 of=mbrid.bin bs=1 skip=440 count=4
++ gdisk /dev/loop3 < gdisk.tmp
++ dd of=/dev/loop3 if=mbrid.bin bs=1 seek=440 count=4
++ losetup -d /dev/loop3
++ rm -f mbrid.bin
++ rm -f gdisk.tmp
++ fi
++ if [ -f "boot/u-boot-sunxi-with-spl.bin" ]; then
++ echo "Installing All-in-one U-Boot/SPL..."
++ if ! dd if=boot/u-boot-sunxi-with-spl.bin of=$diskname bs=1024 seek=8 conv=notrunc; then
++ echo "Couldn't install SPL on $diskname"
++ exit 1
++ fi
++ elif [ -f "boot/u-boot-with-spl.sfp" ]; then
++ echo "Installing All-in-one U-Boot/SPL..."
++ if ! dd if=boot/u-boot-with-spl.sfp of=$diskname bs=64k skip=1 seek=1 conv=notrunc; then
++ echo "Couldn't install SPL on $diskname"
++ exit 1
++ fi
++ else
++ echo "Installing SPL..."
++ if ! dd if=boot/sunxi-spl.bin of=$diskname bs=1024 seek=8 conv=notrunc; then
++ echo "Couldn't install SPL on $diskname"
++ exit 1
++ fi
++ echo "Installing U-Boot..."
++ if ! dd if=boot/u-boot.img of=$diskname bs=1024 seek=40 conv=notrunc; then
++ echo "Couldn't install U-Boot on $diskname"
++ exit 1
++ fi
++ fi
++fi
++
++#==========================================
++# install Chromebook u-boot as boot kernel
++# And do the required magic!
++#------------------------------------------
++if [ "$flavor" = "chromebook" ]; then
++ if [ ! "$is_firstboot" ]; then
++ pushd /usr/src/packages/KIWIROOT-oem/
++ echo "console=tty1 debug verbose" > /tmp/config
++ echo "blah" > /tmp/dummy.txt # Dummy file to make new 'vbutil_kernel' tool happy
++ ./usr/bin/vbutil_kernel --pack /tmp/newkern \
++ --keyblock ./usr/share/vboot/devkeys/kernel.keyblock \
++ --version 1 \
++ --signprivate ./usr/share/vboot/devkeys/kernel_data_key.vbprivk \
++ --config=/tmp/config --vmlinuz boot/u-boot.img --arch arm \
++ --bootloader /tmp/dummy.txt
++ LINE=$(kpartx -asv $diskname | head -n1)
++ PART=$(echo "$LINE" | awk '{print $3}')
++ PART=$(echo "$PART" | sed 's/p[0-9][0-9]*$/p2/') # Copy on p2 since p1 is EFI
++ dd if=/tmp/newkern of=/dev/mapper/$PART
++ # "kpartx -dv $diskname" does not work if $diskname is longer than 64 characters
++ LOOPDEV=$(echo "/dev/$PART" | sed 's/p[0-9][0-9]*$//')
++ kpartx -dv $LOOPDEV
++ losetup -d $LOOPDEV
++ fi
++ # For build and after reaprtition occured on 1st boot:
++ # Enable bootflag on partition 3 (u-boot now looks for bootscripts on bootable partitions only)
++ parted $diskname set 3 boot on
++ # CGPT magic
++ ./usr/bin/cgpt add -t kernel -i 2 -S 1 -T 5 -P 10 -l U-BOOT $diskname
++ popd
++fi
++
++#==========================================
++# install i.MX 5/6 U-Boot as raw
++#------------------------------------------
++if [ -f "boot/u-boot.imx" -o -f "boot/u-boot-dtb.imx" ]; then
++ if [ ! "$is_firstboot" ]; then
++ pushd /usr/src/packages/KIWIROOT-oem/
++ else
++ pushd /
++ fi
++ imx_file=`ls boot/u-boot*.imx | head -n 1`
++ echo "Installing U-Boot: $imx_file..."
++ if ! dd if=$imx_file of=$diskname bs=512 seek=2 conv=notrunc; then
++ echo "Couldn't install U-Boot on $diskname"
++ exit 1
++ fi
++ popd
++fi
++
++#==========================================
++# install i.MX 6 SPL & U-Boot as raw
++#------------------------------------------
++if [[ -f "boot/imx6-spl.bin" ]]; then
++ echo "Installing SPL..."
++ if ! dd if=boot/imx6-spl.bin of=$diskname bs=1024 seek=1 conv=notrunc; then
++ echo "Couldn't install SPL on $diskname"
++ exit 1
++ fi
++ echo "Installing U-Boot..."
++ if ! dd if=boot/u-boot.img of=$diskname bs=1024 seek=69 conv=notrunc; then
++ echo "Couldn't install U-Boot on $diskname"
++ exit 1
++ fi
++fi
++
++#==========================================
++# install Marvell SPL as raw
++#------------------------------------------
++if [ -f "boot/u-boot-spl.kwb" ]; then
++ echo "Installing SPL..."
++ if ! dd if=boot/u-boot-spl.kwb of=$diskname bs=512 seek=1 conv=notrunc; then
++ echo "Couldn't install SPL on $diskname"
++ exit 1
++ fi
++fi
++
++#==========================================
++# install Rockchip 32-bit SPL as raw
++#------------------------------------------
++if [[ -f "boot/u-boot-spl.rksd" ]]; then
++ if [[ -f "boot/u-boot.bin" ]]; then
++ cat boot/u-boot-spl.rksd boot/u-boot.bin > u-boot.tmp
++ echo "Installing SPL + U-Boot..."
++ if ! dd if=u-boot.tmp of=$diskname bs=512 seek=64 conv=notrunc; then
++ echo "Couldn't install U-Boot on $diskname"
++ exit 1
++ fi
++ rm u-boot.tmp
++ else
++ echo "Installing SPL..."
++ if ! dd if=boot/u-boot-spl.rksd of=$diskname bs=512 seek=64 conv=notrunc; then
++ echo "Couldn't install SPL on $diskname"
++ exit 1
++ fi
++ echo "Installing U-Boot..."
++ if ! dd if=boot/u-boot.img of=$diskname bs=512 seek=256 conv=notrunc; then
++ echo "Couldn't install U-Boot on $diskname"
++ exit 1
++ fi
++ fi
++fi
++
++#==========================================
++# install Rockchip TPL/SPL + ITB as raw
++# (RK3328, RK3399 platforms)
++#------------------------------------------
++if [[ -f "boot/idbloader.img" && -f "boot/u-boot.itb" ]]; then
++ echo "Installing idbloader.img..."
++ dd if=boot/idbloader.img of=$diskname bs=512 seek=64 conv=notrunc;
++ echo "Installing u-boot.itb..."
++ dd if=boot/u-boot.itb of=$diskname bs=512 seek=16384 conv=notrunc;
++fi
++
++#==========================================
++# install Odroid-C2 SPL as raw
++#------------------------------------------
++if [ "$flavor" = "odroidc2" ]; then
++ echo "Installing BL1 (1/2)..."
++ if ! dd if=boot/bl1.bin.hardkernel of=$diskname bs=1 count=442 conv=notrunc; then
++ echo "Couldn't install BL1 on $diskname"
++ exit 1
++ fi
++ echo "Installing BL1 (2/2)..."
++ if ! dd if=boot/bl1.bin.hardkernel of=$diskname bs=512 skip=1 seek=1 conv=notrunc; then
++ echo "Couldn't install BL1 on $diskname"
++ exit 1
++ fi
++ echo "Installing U-Boot..."
++ if ! dd if=boot/u-boot.odroidc2 of=$diskname bs=512 seek=97 conv=notrunc; then
++ echo "Couldn't install U-Boot on $diskname"
++ exit 1
++ fi
++fi
++
++#==========================================
++# install Zynq to the first MBR partition
++#------------------------------------------
++if [ "$flavor" = "zturn" ]; then
++ LINE=$(kpartx -asv $diskname | head -n1)
++ PART=$(echo "$LINE" | awk '{print $3}')
++ mkdir ./mnt-tmp
++ mount /dev/mapper/$PART ./mnt-tmp
++ for t in boot.bin u-boot.img; do
++ install -D -v boot/$t mnt-tmp/$t
++ done
++ umount ./mnt-tmp
++ rmdir ./mnt-tmp
++fi
++
++# End of EFI changed directory scope
++if [ -z "$is_firstboot" -a -n "$is_efi" ]; then
++ popd
++fi
++
++if [ "$is_firstboot" ]; then
++ for file in /etc/sysconfig/bootloader /etc/default/grub; do
++ # Make 2nd boot quieter since we already succeeded booting :-)
++ [ -e "$file" ] && sed -i -e 's/loglevel=3/quiet/' $file
++ done
++
++ # Fix up grub2 efi installation on 32bit arm (shouldn't hurt elsewhere)
++ if grep -q boot/efi /etc/fstab; then
++ mkdir -p /boot/efi
++ mount /boot/efi
++ /sbin/update-bootloader --reinit
++ fi
++else
++ # Install a startup.nsh file so we boot automatically via the EFI shell
++ if [ -f boot/grub2/*efi/grub.efi -o -f ./EFI/BOOT/boot*.efi ];then
++ echo "EFI system, installing startup.nsh"
++ LINE=$(kpartx -asv $diskname | head -n1)
++ PART=$(echo "$LINE" | awk '{print $3}')
++ mkdir ./mnt-tmp
++ mount /dev/mapper/$PART ./mnt-tmp
++ if [ -f boot/grub2/arm-efi/grub.efi ]; then
++ echo "bootarm" > mnt-tmp/startup.nsh
++ else
++ echo "bootaa64" > mnt-tmp/startup.nsh
++ fi
++ umount ./mnt-tmp
++ rmdir ./mnt-tmp
++ # "kpartx -dv $diskname" does not work if $diskname
++ # is longer than 64 characters
++ LOOPDEV=$(echo "/dev/$PART" | sed 's/p[0-9][0-9]*$//')
++ kpartx -dv $LOOPDEV
++ losetup -d $LOOPDEV
++ fi
++fi
++
++#==========================================
++# install DTBs on boot partition
++#------------------------------------------
++if [ -z "$is_firstboot" ]; then
++ if [ -e /usr/src/packages/KIWIROOT-oem/boot/dtb -a -n $bootdev ];then
++ echo "System uses device trees, installing to boot partition"
++ bootpart=$(echo $bootdev | sed 's/.*loop[0-9][0-9]*p/p/')
++ bootloop=$(kpartx -asv $diskname | awk '{print $3}' | grep "loop.*"$bootpart )
++ mkdir ./mnt-tmp
++ mount /dev/mapper/$bootloop ./mnt-tmp
++ # KIWI copies dtb on non-EFI systems; check and skip
++ if [ -e ./mnt-tmp/dtb ]; then
++ echo "DTBs already in place"
++ # In case bootdev and rootdev are the same, the dtbs will be already
++ # located in the rootdev below /boot/
++ elif [ ! \( -e ./mnt-tmp/boot -a -e ./mnt-tmp/boot/dtb \) ];then
++ cp -a /usr/src/packages/KIWIROOT-oem/boot/dtb* ./mnt-tmp/
++ fi
++ umount ./mnt-tmp
++ loop=$(echo "/dev/$bootloop" | sed 's/p[0-9][0-9]*$//')
++ kpartx -dv $loop
++ losetup -d $loop
++ fi
++fi
++
++#==========================================
++# Install boot.scr where needed
++#------------------------------------------
++if [ -e boot/boot.scr ]; then
++ # We need to use standalone u-boot, but kiwi only support EFI/Grub2
++ # So, use EFI layout for kiwi, but then copy boot.scr on partition #1 (EFI)
++ # to boot with standalone u-boot instead of bootefi (since some boards do not support it).
++ echo "Copy boot.scr on EFI boot partition"
++ # p1 is pseudo-EFI partition, p2 is rootfs (with boot/ folder)
++ BOOTPART=$(echo "$bootdev" | sed 's/p[0-9][0-9]*$/p1/')
++ mkdir ./mnt-boot
++ mount $BOOTPART ./mnt-boot
++
++ # Copy boot script
++ cp boot/boot.scr ./mnt-boot/
++
++ umount ./mnt-boot
++ rmdir ./mnt-boot
++fi
++
++#==========================================
++# Sabrelite autoboot with SPI flashed u-boot
++#------------------------------------------
++if [ "$flavor" = "sabrelite" ]; then
++ # Sabrelite has a built-in u-boot which looks for 6x_bootscript
++ # add one which will chain load our u-boot (on mmc0 or mmc1 only)
++ sabrelite_conf=mnt-boot/6x_bootscript.txt
++ sabrelite_binconf=mnt-boot/6x_bootscript
++
++ BOOTPART=$(echo "$bootdev" | sed 's/p[0-9][0-9]*$/p1/')
++ mkdir ./mnt-boot
++ mount $BOOTPART ./mnt-boot
++
++ cat >> $sabrelite_conf <<-"EOF"
++setenv boot_on_sd3 'mw.l 0x020d8040 0x3040 && mw.l 0x020d8044 0x10000000 && reset'
++setenv boot_on_usd4 'mw.l 0x020d8040 0x3840 && mw.l 0x020d8044 0x10000000 && reset'
++if itest.s "xmmc" == "x$dtype"; then
++ if itest 0 == ${disk}; then
++ run boot_on_sd3
++ else
++ run boot_on_usd4
++ fi
++fi
++EOF
++ mkopts="-A arm -O linux -a 0 -e 0 -T script -C none";
++ if ! mkimage $mkopts -n 'Boot-Script' -d $sabrelite_conf $sabrelite_binconf;then
++ echo "Failed to create 6x_bootscript image"
++ fi
++ umount ./mnt-boot
++ rmdir ./mnt-boot
++fi
++
++
++if ! [ "$is_firstboot" ]; then
++ if [ "$flavor" = "socfpgade0nanosoc" ]; then
++ echo "install FPGA loader support at boot"
++ LINE=$(kpartx -asv $diskname | head -n1)
++ PART=$(echo "$LINE" | awk '{print $3}')
++ mkdir ./mnt-tmp
++ mount /dev/mapper/$PART ./mnt-tmp
++
++ fpga_conf=mnt-tmp/boot.script
++ fpga_binconf=mnt-tmp/boot.scr
++ cat >> $fpga_conf <<-"EOF"
++echo "Disable watchdog"
++mw.l 0xffd05014 0x00000040
++setenv fpga_bitfiles 'fpga.rbf atlas_soc_ghrd.rbf'
++setenv fpga_part 1
++setenv devtype mmc
++setenv devnum 0
++setenv load_fpga_bitfile 'load ${devtype} ${devnum}:${fpga_part} ${loadaddr} ${fpga_bitfile}; fpga load 0 ${loadaddr} ${filesize}; bridge enable'
++setenv scan_mmc_for_fpgafile 'for fpga_bitfile in ${fpga_bitfiles}; do if test -e ${devtype} ${devnum}:${fpga_part} ${fpga_bitfile}; then echo Found FPGA bitfile ${fpga_bitfile}; run load_fpga_bitfile; fi; done'
++run scan_mmc_for_fpgafile
++echo "nothing else to do, continue boot ..."
++EOF
++ mkopts="-A arm -O linux -a 0 -e 0 -T script -C none";
++ if ! mkimage $mkopts -n 'Boot-Script' -d $fpga_conf $fpga_binconf;then
++ echo "Failed to create FPGA uboot script image"
++ fi
++ umount ./mnt-tmp
++ rmdir ./mnt-tmp
++ # "kpartx -dv $diskname" does not work if $diskname
++ # is longer than 64 characters
++ LOOPDEV=$(echo "/dev/$PART" | sed 's/p[0-9][0-9]*$//')
++ kpartx -dv $LOOPDEV
++ losetup -d $LOOPDEV
++ fi
++fi
+diff --git a/build-tests/arm/suse/test-image-rpi/appliance.kiwi b/build-tests/arm/suse/test-image-rpi/appliance.kiwi
+index 0c74947049..8c39de8d8a 100644
+--- a/build-tests/arm/suse/test-image-rpi/appliance.kiwi
++++ b/build-tests/arm/suse/test-image-rpi/appliance.kiwi
+@@ -15,8 +15,8 @@
+ us
+ Europe/Berlin
+ true
+-
+-
++
++
+
+
+
+diff --git a/build-tests/ppc/fedora/test-image-disk-simple/appliance.kiwi b/build-tests/ppc/fedora/test-image-disk-simple/appliance.kiwi
+index 660db15a2c..eb85189184 100644
+--- a/build-tests/ppc/fedora/test-image-disk-simple/appliance.kiwi
++++ b/build-tests/ppc/fedora/test-image-disk-simple/appliance.kiwi
+@@ -9,13 +9,11 @@
+
+ 1.30.1
+ dnf
+- charge
+- breeze
+ en_US
+ us
+ UTC
+ false
+-
++
+
+ false
+
+@@ -32,8 +30,6 @@
+
+
+
+-
+-
+
+
+
+diff --git a/build-tests/ppc/sle15/test-image-disk/appliance.kiwi b/build-tests/ppc/sle15/test-image-disk/appliance.kiwi
+index 55aafd9af2..96e21052ed 100644
+--- a/build-tests/ppc/sle15/test-image-disk/appliance.kiwi
++++ b/build-tests/ppc/sle15/test-image-disk/appliance.kiwi
+@@ -23,7 +23,7 @@
+ false
+
+
+-
++
+
+ false
+
+diff --git a/build-tests/ppc/suse/test-image-disk-simple/appliance.kiwi b/build-tests/ppc/suse/test-image-disk-simple/appliance.kiwi
+index bfc6e5b0de..900e04659e 100644
+--- a/build-tests/ppc/suse/test-image-disk-simple/appliance.kiwi
++++ b/build-tests/ppc/suse/test-image-disk-simple/appliance.kiwi
+@@ -14,9 +14,7 @@
+ Europe/Berlin
+ true
+ false
+- bgrt
+- openSUSE
+-
++
+
+ false
+
+diff --git a/build-tests/ppc/suse/test-image-disk/appliance.kiwi b/build-tests/ppc/suse/test-image-disk/appliance.kiwi
+index 8e11624f6b..5e2269e6bc 100644
+--- a/build-tests/ppc/suse/test-image-disk/appliance.kiwi
++++ b/build-tests/ppc/suse/test-image-disk/appliance.kiwi
+@@ -20,16 +20,14 @@
+ Europe/Berlin
+ true
+ false
+- bgrt
+- openSUSE
+
+
+-
++
+
+
+
+
+-
++
+
+
+
+diff --git a/build-tests/x86/archlinux/test-image-live-disk-kis/appliance.kiwi b/build-tests/x86/archlinux/test-image-live-disk-kis/appliance.kiwi
+index eadd9314ee..0dff3800f7 100644
+--- a/build-tests/x86/archlinux/test-image-live-disk-kis/appliance.kiwi
++++ b/build-tests/x86/archlinux/test-image-live-disk-kis/appliance.kiwi
+@@ -31,23 +31,25 @@
+ false
+
+
+-
++
++
++
+
+
+-
++
+
+ false
+
+-
++
+
+
+
+-
+-
++
++
+
+
+
+-
++
+
+
+
+diff --git a/build-tests/x86/centos/test-image-live-disk-v7/appliance.kiwi b/build-tests/x86/centos/test-image-live-disk-v7/appliance.kiwi
+index 5e3f99d13b..45569b979a 100644
+--- a/build-tests/x86/centos/test-image-live-disk-v7/appliance.kiwi
++++ b/build-tests/x86/centos/test-image-live-disk-v7/appliance.kiwi
+@@ -25,7 +25,7 @@
+
+
+
+-
++
+
+
+
+@@ -33,12 +33,12 @@
+
+ false
+
+-
++
+
+
+
+
+-
++
+
+ 2048
+ true
+diff --git a/build-tests/x86/centos/test-image-live-disk-v8/appliance.kiwi b/build-tests/x86/centos/test-image-live-disk-v8/appliance.kiwi
+index cbb61f314d..5c0f466c66 100644
+--- a/build-tests/x86/centos/test-image-live-disk-v8/appliance.kiwi
++++ b/build-tests/x86/centos/test-image-live-disk-v8/appliance.kiwi
+@@ -25,7 +25,7 @@
+
+
+
+-
++
+
+
+
+@@ -33,12 +33,12 @@
+
+ false
+
+-
++
+
+
+
+
+-
++
+
+ 2048
+ true
+diff --git a/build-tests/x86/debian/test-image-live-disk/appliance.kiwi b/build-tests/x86/debian/test-image-live-disk/appliance.kiwi
+index 4981d53343..96a434f496 100644
+--- a/build-tests/x86/debian/test-image-live-disk/appliance.kiwi
++++ b/build-tests/x86/debian/test-image-live-disk/appliance.kiwi
+@@ -26,7 +26,7 @@
+
+
+
+-
++
+
+
+
+@@ -34,12 +34,12 @@
+
+ false
+
+-
++
+
+
+
+
+-
++
+
+ true
+ /dev/ram
+diff --git a/build-tests/x86/fedora/test-image-live-disk/appliance.kiwi b/build-tests/x86/fedora/test-image-live-disk/appliance.kiwi
+index 8759f09b57..29fabb569c 100644
+--- a/build-tests/x86/fedora/test-image-live-disk/appliance.kiwi
++++ b/build-tests/x86/fedora/test-image-live-disk/appliance.kiwi
+@@ -26,7 +26,7 @@
+
+
+
+-
++
+
+
+
+@@ -34,12 +34,12 @@
+
+ false
+
+-
++
+
+
+
+
+-
++
+
+ 2048
+ true
+diff --git a/build-tests/x86/suse/test-image-MicroOS/appliance.kiwi b/build-tests/x86/suse/test-image-MicroOS/appliance.kiwi
+index 31ba7ff0db..91bf9b81ab 100644
+--- a/build-tests/x86/suse/test-image-MicroOS/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-MicroOS/appliance.kiwi
+@@ -16,11 +16,11 @@
+ false
+ bgrt
+ openSUSE
+-
++
+
+ false
+
+-
++
+
+
+
+diff --git a/build-tests/x86/suse/test-image-custom-partitions/appliance.kiwi b/build-tests/x86/suse/test-image-custom-partitions/appliance.kiwi
+index bc6a13cc06..f490a957e8 100644
+--- a/build-tests/x86/suse/test-image-custom-partitions/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-custom-partitions/appliance.kiwi
+@@ -18,13 +18,13 @@
+ false
+ bgrt
+ openSUSE
+-
++
+
+ true
+ 512
+ /dev/ram
+
+-
++
+
+
+
+diff --git a/build-tests/x86/suse/test-image-disk-legacy/appliance.kiwi b/build-tests/x86/suse/test-image-disk-legacy/appliance.kiwi
+index a1d308f864..861dd6a35a 100644
+--- a/build-tests/x86/suse/test-image-disk-legacy/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-disk-legacy/appliance.kiwi
+@@ -16,8 +16,8 @@
+ false
+ bgrt
+ openSUSE
+-
+-
++
++
+
+ 1024
+ false
+diff --git a/build-tests/x86/suse/test-image-disk-simple/appliance.kiwi b/build-tests/x86/suse/test-image-disk-simple/appliance.kiwi
+index 543c90e8da..088f3d89b4 100644
+--- a/build-tests/x86/suse/test-image-disk-simple/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-disk-simple/appliance.kiwi
+@@ -16,11 +16,11 @@
+ false
+ bgrt
+ openSUSE
+-
++
+
+ false
+
+-
++
+
+
+
+diff --git a/build-tests/x86/suse/test-image-disk/appliance.kiwi b/build-tests/x86/suse/test-image-disk/appliance.kiwi
+index eed6a3e287..c8ec6603c2 100644
+--- a/build-tests/x86/suse/test-image-disk/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-disk/appliance.kiwi
+@@ -16,7 +16,7 @@
+ false
+ bgrt
+ openSUSE
+-
++
+
+
+ true
+diff --git a/build-tests/x86/suse/test-image-ec2/appliance.kiwi b/build-tests/x86/suse/test-image-ec2/appliance.kiwi
+index fbf2456b63..ca3a00c11b 100644
+--- a/build-tests/x86/suse/test-image-ec2/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-ec2/appliance.kiwi
+@@ -11,7 +11,7 @@
+
+ false
+
+-
++
+ 10240
+
+
+diff --git a/build-tests/x86/suse/test-image-gce/appliance.kiwi b/build-tests/x86/suse/test-image-gce/appliance.kiwi
+index df5288db67..f80af21d4a 100644
+--- a/build-tests/x86/suse/test-image-gce/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-gce/appliance.kiwi
+@@ -7,11 +7,11 @@
+ GCE test build
+
+
+-
++
+
+ false
+
+-
++
+ 10240
+
+ 1.0.17
+diff --git a/build-tests/x86/suse/test-image-live/appliance.kiwi b/build-tests/x86/suse/test-image-live/appliance.kiwi
+index af1f99f58f..f1537927ab 100644
+--- a/build-tests/x86/suse/test-image-live/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-live/appliance.kiwi
+@@ -16,7 +16,9 @@
+ false
+ bgrt
+ openSUSE
+-
++
++
++
+
+
+
+diff --git a/build-tests/x86/suse/test-image-luks/appliance.kiwi b/build-tests/x86/suse/test-image-luks/appliance.kiwi
+index 0ce0ab90b4..4ae9949648 100644
+--- a/build-tests/x86/suse/test-image-luks/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-luks/appliance.kiwi
+@@ -16,11 +16,11 @@
+ false
+ bgrt
+ openSUSE
+-
++
+
+ false
+
+-
++
+
+
+
+diff --git a/build-tests/x86/suse/test-image-lvm/appliance.kiwi b/build-tests/x86/suse/test-image-lvm/appliance.kiwi
+index 6337c6cf38..abb13c3ebc 100644
+--- a/build-tests/x86/suse/test-image-lvm/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-lvm/appliance.kiwi
+@@ -16,11 +16,11 @@
+ false
+ bgrt
+ openSUSE
+-
++
+
+ false
+
+-
++
+
+
+
+diff --git a/build-tests/x86/suse/test-image-orthos/appliance.kiwi b/build-tests/x86/suse/test-image-orthos/appliance.kiwi
+index b2c0730d3b..9abf9559ca 100644
+--- a/build-tests/x86/suse/test-image-orthos/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-orthos/appliance.kiwi
+@@ -13,7 +13,7 @@
+ us
+ Europe/Berlin
+ true
+-
++
+
+
+ true
+diff --git a/build-tests/x86/suse/test-image-overlayroot/appliance.kiwi b/build-tests/x86/suse/test-image-overlayroot/appliance.kiwi
+index bad171e779..45e0a1dd67 100644
+--- a/build-tests/x86/suse/test-image-overlayroot/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-overlayroot/appliance.kiwi
+@@ -16,11 +16,11 @@
+ false
+ bgrt
+ openSUSE
+-
++
+
+ false
+
+-
++
+ 4
+
+
+diff --git a/build-tests/x86/suse/test-image-qcow-openstack/appliance.kiwi b/build-tests/x86/suse/test-image-qcow-openstack/appliance.kiwi
+index ead73a8251..47b04dd134 100644
+--- a/build-tests/x86/suse/test-image-qcow-openstack/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-qcow-openstack/appliance.kiwi
+@@ -7,11 +7,11 @@
+ SUSE Tumbleweed guest image for OpenStack
+
+
+-
++
+
+ false
+
+-
++
+ 10240
+
+ 0.3.10
+diff --git a/build-tests/x86/suse/test-image-suse-on-dnf/appliance.kiwi b/build-tests/x86/suse/test-image-suse-on-dnf/appliance.kiwi
+index 93035f6013..00ca4eb92e 100644
+--- a/build-tests/x86/suse/test-image-suse-on-dnf/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-suse-on-dnf/appliance.kiwi
+@@ -16,11 +16,11 @@
+ false
+ bgrt
+ openSUSE
+-
++
+
+ false
+
+-
++
+
+
+
+diff --git a/build-tests/x86/suse/test-image-vagrant/appliance.kiwi b/build-tests/x86/suse/test-image-vagrant/appliance.kiwi
+index cdbff4fc38..6fe09b4e85 100644
+--- a/build-tests/x86/suse/test-image-vagrant/appliance.kiwi
++++ b/build-tests/x86/suse/test-image-vagrant/appliance.kiwi
+@@ -28,21 +28,21 @@
+ openSUSE
+
+
+-
++
+
+ false
+
+-
++
+
+ 42
+
+
+
+-
++
+
+ false
+
+-
++
+
+ 42
+
+diff --git a/build-tests/x86/ubuntu/test-image-live-disk/appliance.kiwi b/build-tests/x86/ubuntu/test-image-live-disk/appliance.kiwi
+index bd27fae4c8..dbc15cd790 100644
+--- a/build-tests/x86/ubuntu/test-image-live-disk/appliance.kiwi
++++ b/build-tests/x86/ubuntu/test-image-live-disk/appliance.kiwi
+@@ -26,7 +26,7 @@
+
+
+
+-
++
+
+
+
+@@ -34,12 +34,12 @@
+
+ false
+
+-
++
+
+
+
+
+-
++
+
+ true
+ /dev/ram
diff --git a/kiwi.spec b/kiwi.spec
index e59772ea8362d71e3616a30ce27bb204a27f4290..263dd86037f924342b5e0144da6051ac6b4aa567 100644
--- a/kiwi.spec
+++ b/kiwi.spec
@@ -2,12 +2,14 @@
Name: kiwi
Version: 9.21.5
-Release: 1
+Release: 2
License: GPLv3+
Summary: Flexible operating system image builder
URL: http://osinside.github.io/kiwi/
Source0: https://files.pythonhosted.org/packages/source/k/%{name}/%{name}-%{version}.tar.gz
+Patch6000: fd6c0fac7bff29dfa745f951428f0f8933c65d60.patch
+Patch6001: 2d963ea0ccd350d05df9a0f5c4bac261cba22389.patch
BuildRequires: bash-completion dracut fdupes gcc make
BuildRequires: python3-devel python3-setuptools shadow-utils
@@ -189,6 +191,9 @@ done
%{_mandir}/man8/%{name}*
%changelog
+* 20201104223007660955 patch-tracking 9.21.5-2
+- append patch file of upstream repository from to <2d963ea0ccd350d05df9a0f5c4bac261cba22389>
+
* Tue Jul 28 2020 xinghe - 9.21.5-1
- update version to 9.21.5
@@ -208,4 +213,4 @@ done
- Remove python2 dependency
* Sat Sep 21 2019 openEuler Buildteam - 9.16.12-2
-- Package init
+- Package init
\ No newline at end of file