diff --git a/.forgejo/patches/linux-template-builder_use-fuse.patch b/.forgejo/patches/linux-template-builder_use-fuse.patch new file mode 100644 index 0000000..b3b3101 --- /dev/null +++ b/.forgejo/patches/linux-template-builder_use-fuse.patch @@ -0,0 +1,152 @@ +diff --git a/prepare_image b/prepare_image +index 6334879..de1a2af 100755 +--- a/prepare_image ++++ b/prepare_image +@@ -19,6 +19,8 @@ RETCODE=0 + . ./builder_setup >/dev/null + . ./umount_kill.sh >/dev/null + ++export TEMPLATE_USE_FUSE=1 ++ + if ! [ $# -eq 1 ]; then + echo "usage ${0} " + exit +@@ -55,11 +57,20 @@ echo "-> Preparing instalation of ${DIST} template..." + if [ -f "${IMG}" ]; then + echo "-> Image file already exists, assuming *update*..." + if [ "0$TEMPLATE_ROOT_WITH_PARTITIONS" -eq 1 ]; then +- IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG") +- IMG_DEV=${IMG_LOOP}p3 ++ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then ++ echo "Fuse mode not implemented when TEMPLATE_ROOT_WITH_PARTITIONS is true" ++ exit ++ else ++ IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG") ++ IMG_DEV=${IMG_LOOP}p3 ++ fi + else +- IMG_LOOP=$(/sbin/losetup -f --show "$IMG") +- IMG_DEV=${IMG_LOOP} ++ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then ++ IMG_DEV=$IMG ++ else ++ IMG_LOOP=$(/sbin/losetup -f --show "$IMG") ++ IMG_DEV=${IMG_LOOP} ++ fi + fi + udevadm settle --exit-if-exists="$IMG_DEV" + else +@@ -78,11 +89,20 @@ size=2MiB, type=21686148-6449-6E6F-744E-656564454649, uuid=1e6c9db4-1e91-46c4-84 + type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=693244e6-3e07-47bf-ad79-acade4293fe7, name="Root filesystem" + EOF + +- IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG") +- IMG_DEV=${IMG_LOOP}p3 ++ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then ++ echo "Fuse mode not implemented when TEMPLATE_ROOT_WITH_PARTITIONS is true" ++ exit ++ else ++ IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG") ++ IMG_DEV=${IMG_LOOP}p3 ++ fi + else +- IMG_LOOP=$(/sbin/losetup -f --show "$IMG") +- IMG_DEV=${IMG_LOOP} ++ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then ++ IMG_DEV=$IMG ++ else ++ IMG_LOOP=$(/sbin/losetup -f --show "$IMG") ++ IMG_DEV=${IMG_LOOP} ++ fi + fi + udevadm settle --exit-if-exists="$IMG_DEV" + +@@ -90,7 +110,9 @@ EOF + /sbin/mkfs.ext4 -q -F "${IMG_DEV}" || exit 1 + fi + +-mount "${IMG_DEV}" "${INSTALLDIR}" || exit 1 ++if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then ++ fuse2fs "${IMG_DEV}" "${INSTALLDIR}" || exit 1 ++fi + trap "umount_kill $(readlink -m ${INSTALLDIR})" EXIT + "${SCRIPTSDIR}/01_install_core.sh" + +@@ -107,6 +129,8 @@ trap - EXIT + + echo "-> Unmounting prepared_image..." + umount_kill "$(readlink -m ${INSTALLDIR})" || true +-/sbin/losetup -d ${IMG_LOOP} ++if [ "$TEMPLATE_USE_FUSE" -ne 1 ]; then ++ /sbin/losetup -d ${IMG_LOOP} ++fi + + exit ${RETCODE} +diff --git a/qubeize_image b/qubeize_image +index 19c37cb..7478a9d 100755 +--- a/qubeize_image ++++ b/qubeize_image +@@ -13,6 +13,8 @@ export CLEANIMG="$1" + export NAME="$2" + export LC_ALL=POSIX + ++export TEMPLATE_USE_FUSE=1 ++ + . ./builder_setup >/dev/null + . ./umount_kill.sh >/dev/null + +@@ -50,7 +52,9 @@ function cleanup() { + trap - ERR + trap + umount_kill "$PWD/mnt" || true +- /sbin/losetup -d ${IMG_LOOP} ++ if [ "$TEMPLATE_USE_FUSE" -ne 1 ]; then ++ /sbin/losetup -d ${IMG_LOOP} ++ fi + exit $errval + } + trap cleanup ERR +@@ -72,14 +76,27 @@ fi + echo "--> Mounting $IMG" + mkdir -p mnt + if [ "0$TEMPLATE_ROOT_WITH_PARTITIONS" -eq 1 ]; then +- IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG") +- IMG_DEV=${IMG_LOOP}p3 ++ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then ++ echo "Fuse mode not implemented when TEMPLATE_ROOT_WITH_PARTITIONS is true" ++ exit ++ else ++ IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG") ++ IMG_DEV=${IMG_LOOP}p3 ++ fi + else +- IMG_LOOP=$(/sbin/losetup -f --show "$IMG") +- IMG_DEV=${IMG_LOOP} ++ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then ++ IMG_DEV=$IMG ++ else ++ IMG_LOOP=$(/sbin/losetup -f --show "$IMG") ++ IMG_DEV=${IMG_LOOP} ++ fi + fi + udevadm settle --exit-if-exists="$IMG_DEV" +-mount "$IMG_DEV" mnt || exit 1 ++if "$TEMPLATE_USE_FUSE" -eq 1 ]; then ++ fuse2fs "$IMG_DEV" mnt ++else ++ mount "$IMG_DEV" mnt || exit 1 ++fi + export INSTALLDIR=mnt + + # prepare for template.conf, so the qubeize script may generate it dynamically +@@ -159,7 +176,9 @@ ls -als $IMG + # ------------------------------------------------------------------------------ + echo "--> Unmounting $IMG" + umount_kill "$PWD/mnt" || true +-/sbin/losetup -d ${IMG_LOOP} ++if [ "$TEMPLATE_USE_FUSE" -ne 1 ]; then ++ /sbin/losetup -d ${IMG_LOOP} ++fi + + echo "Qubeized image stored at: $IMG" +