tAdded explicit var to control boot fs type. - libdevuansdk - common library for devuan's simple distro kits
git clone https://git.parazyd.org/libdevuansdk
Log
Files
Refs
Submodules
README
LICENSE
---
commit 68c90d1ae9ee8c1462594730f3c3b6009a7a0b28
parent 1fdbd917d8f92333f826491b6cecef078a0f5167
Author: Johny Mattsson 
Date:   Mon,  2 Oct 2017 13:04:58 +1100

Added explicit var to control boot fs type.

Since use of GPT does not necessarily imply lack of wanting the boot
partition formatted and mounted.

Diffstat:
  M docs/creating_wrappers.7.md         |       6 ++++++
  M docs/helper_functions.7.md          |       2 +-
  M zlibs/imaging                       |      43 ++++++++++++++++++++++++-------

3 files changed, 41 insertions(+), 10 deletions(-)
---
diff --git a/docs/creating_wrappers.7.md b/docs/creating_wrappers.7.md
t@@ -84,6 +84,12 @@ the [zuper](https://github.com/dyne/zuper) zsh library.
   available space. again, see the `image_partition_raw_gpt()` function for a
   better understanding.
 
+* `$bootfs`
+  This variable controls the file system type of the boot partition. Recognised
+  values are `none`, `vfat` (or the synonyms `fat` and `dos`), and `ext4`.
+  When `none` is specified, the boot partition is left raw and not mounted,
+  so /boot becomes part of the root partition.
+
 * `$qemu_bin`  
   declare this if you are bootstrapping for an architecture different than
   yours. it should hold the path to `qemu-user-static` or a similarly named
diff --git a/docs/helper_functions.7.md b/docs/helper_functions.7.md
t@@ -10,7 +10,7 @@ libdevuansdk to properly work as well.
 ## build_image_dist()  
 this function is kind of a wrapper function, mostly used in `arm-sdk` to build a
 complete "dd-able" image from start to end. to run, it requires `$arch`,
-`$size`, `$parted_type`, `$workdir`, and `$strapdir` to be declared. as well as
+`$size`, `$parted_type`, `$bootfs`, `$workdir`, and `$strapdir` to be declared. as well as
 `$parted_root`, `$parted_boot` if `$parted_type=dos`, or `$gpt_root`,
 `$gpt_boot` if `$parted_type=gpt`. see `creating_wrappers(7)` for insight on
 these variables.
diff --git a/zlibs/imaging b/zlibs/imaging
t@@ -35,6 +35,34 @@ image_prepare_raw() {
                 count=$size
 }
 
+image_format_partitions() {
+        fn image_format_partitions
+        req=(bootfs bootpart rootpart)
+        ckreq || return 1
+
+        notice "formatting partitions..."
+        case "$bootfs" in
+                none)
+                        act "skipping boot partition"
+                        ;;
+                vfat|fat|dos)
+                        act "formatting boot as vfat"
+                        sudo mkfs.vfat ${bootpart}
+                        ;;
+                ext4)
+                        act "formatting boot as ext4"
+                        sudo mkfs.ext4 ${bootpart}
+                        ;;
+                *)
+                        error "unknown parted_bootfs type '$bootfs'"
+                        zerr
+                        ;;
+        esac
+
+        act "formatting root as ext4"
+        sudo mkfs.ext4 ${rootpart}
+}
+
 image_partition_raw_dos() {
         fn image_partition_raw_dos
         req=(workdir image_name parted_boot parted_root)
t@@ -54,14 +82,12 @@ image_partition_raw_dos() {
         bootpart=${loopdevice}p1
         rootpart=${loopdevice}p2
 
-        notice "formatting partitions..."
-        sudo mkfs.vfat ${bootpart}
-        sudo mkfs.ext4 ${rootpart}
+        image_format_partitions
 }
 
 image_partition_raw_gpt() {
         fn image_partition_raw_gpt
-        req=(workdir image_name)
+        req=(workdir image_name gpt_boot gpt_root)
         ckreq || return 1
 
         notice "partitioning raw gpt image..."
t@@ -84,8 +110,7 @@ image_partition_raw_gpt() {
         bootpart="${loopdevice}p1"
         rootpart="${loopdevice}p2"
 
-        notice "formatting partitions..."
-        sudo mkfs.ext4 -L rootfs ${rootpart}
+        image_format_partitions
 }
 
 image_pack_dist() {
t@@ -139,14 +164,14 @@ image_pack_dist() {
 
 image_raw_mount() {
         fn image_raw_mount
-        req=(workdir bootpart rootpart)
+        req=(workdir bootpart rootpart bootfs)
         ckreq || return 1
 
         mkdir -p $workdir/mnt
         sudo mount $rootpart $workdir/mnt && \
                 act "mounted root partition" || zerr
 
-        [[ "$parted_type" == gpt ]] || {
+        [[ "$bootfs" == none ]] || {
                 sudo mkdir $workdir/mnt/boot
                 sudo mount $bootpart $workdir/mnt/boot && \
                         act "mounted boot partition" || zerr
t@@ -158,7 +183,7 @@ image_raw_umount() {
         req=(workdir bootpart rootpart)
         ckreq || return 1
 
-        [[ "$parted_type" == gpt ]] || {
+        [[ "$bootfs" == none ]] || {
                 sudo umount $workdir/mnt/boot && act "unmounted boot partition" || zerr
                 sleep 1
         }