commit:     07fcd5605c466545db91f1b11568c44fa5f1ecfb
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  2 01:41:05 2022 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Thu Nov 17 23:42:24 2022 +0000
URL:        https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=07fcd560

catalyst: Readd support for non-squashfs ISOs

In commit 9ad9eed7 ("targets: Drop most fstypes") I removed all fstypes
for ISO's root file-systems except squashfs, since squashfs is both
smaller and faster. Unfortunately, squashfs has higher memory
requirements at runtime, which can cause problems on some systems with
small amounts of memory.

So allow ISOs for those systems/architectures to not use squashfs.

Bug: https://bugs.gentoo.org/878115
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 doc/catalyst-spec.5.txt               | 12 +++++++++---
 examples/livecd-stage2_template.spec  |  2 +-
 targets/support/target_image_setup.sh |  4 ++++
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/doc/catalyst-spec.5.txt b/doc/catalyst-spec.5.txt
index fd2926fb..1abf9efb 100644
--- a/doc/catalyst-spec.5.txt
+++ b/doc/catalyst-spec.5.txt
@@ -163,13 +163,19 @@ Filesystem
 ~~~~~~~~~~
 
 *livecd/fstype*::
-The fstype is used to determine what sort of CD we should build.  This
-is used to set the type of loopback filesystem that we will use on our
-CD.  The only possible value is `squashfs`.
+The fstype is used to determine what sort of root file-system our ISO should
+contain.  Possible values are:
+  `normal`;; This copies the root file-system to the ISO directly, without
+             using a loopback.
+  `squashfs`;; This makes a squashfs image of the root file-system.  The ISO
+               will be smaller, and file access will be faster, but at the
+               cost of higher memory usage at runtime.
 
 *livecd/fsops*::
 The fsops are a list of optional parameters that can be passed to the
 tool which will create the filesystem specified in *livecd/fstype*
+It is valid only for `squashfs`.
+
 
 *livecd/iso*::
 This is the full path and filename to the ISO image that the

diff --git a/examples/livecd-stage2_template.spec 
b/examples/livecd-stage2_template.spec
index adf0acaf..efbc6d82 100644
--- a/examples/livecd-stage2_template.spec
+++ b/examples/livecd-stage2_template.spec
@@ -77,7 +77,7 @@ kerncache_path:
 
 # The fstype is used to determine what sort of CD we should build.  This is
 # used to set the type of loopback filesystem that we will use on our CD.
-# Possible options are as follows: squashfs
+# Possible options are as follows: squashfs, normal
 # example:
 # livecd/fstype: squashfs
 livecd/fstype:

diff --git a/targets/support/target_image_setup.sh 
b/targets/support/target_image_setup.sh
index f9427eaf..278c083a 100755
--- a/targets/support/target_image_setup.sh
+++ b/targets/support/target_image_setup.sh
@@ -6,6 +6,10 @@ mkdir -p "${1}"
 
 echo "Creating ${clst_fstype} filesystem"
 case ${clst_fstype} in
+       normal)
+               cp -pPR "${clst_stage_path}"/* "$1" \
+                       || die "Could not copy files to image"
+       ;;
        squashfs)
                gensquashfs -D "${clst_stage_path}" -q ${clst_fsops} 
"${1}/image.squashfs" \
                        || die "Failed to create squashfs filesystem"

Reply via email to