+# Unsquash / unpack a filesystem. Multiple sources are supported, and
+# they may be squashed or plain filesystems.
+#
+# Configuration:
+#
+# from globalstorage: rootMountPoint
+# from job.configuration: the path to where to mount the source image(s)
+# for copying an ordered list of unpack mappings for image file <->
+# target dir relative to rootMountPoint.
+
+---
+# Each list item is unpacked, in order, to the target system.
+#
+# Each list item has the following **mandatory** attributes:
+# - *source* path relative to the live / intstalling system to the image
+# - *sourcefs* the type of the source files; valid entries are
+# - `ext4` (copies the filesystem contents)
+# - `squashfs` (unsquashes)
+# - `file` (copies a file or directory)
+# - (may be others if mount supports it)
+# - *destination* path relative to rootMountPoint (so in the target
+# system) where this filesystem is unpacked. It may be an
+# empty string, which effectively is / (the root) of the target
+# system.
+#
+# Each list item **optionally** can include the following attributes:
+# - *exclude* is a list of values that is expanded into --exclude
+# arguments for rsync (each entry in exclude gets its own --exclude).
+# - *excludeFile* is a single file that is passed to rsync as an
+# --exclude-file argument. This should be a full pathname
+# inside the **host** filesystem.
+#
+# EXAMPLES
+#
+# Usually you list a filesystem image to unpack; you can use
+# squashfs or an ext4 image. An empty destination is equivalent to "/",
+# the root of the target system. The destination directory must exist
+# in the target system.
+#
+# - source: "/path/to/filesystem.sqfs"
+# sourcefs: "squashfs"
+# destination: ""
+#
+# Multiple entries are unpacked in-order; if there is more than one
+# item then only the first must exist beforehand -- it's ok to
+# create directories with one unsquash and then to use those
+# directories as a target from a second unsquash.
+#
+# - source: "/path/to/another/filesystem.img"
+# sourcefs: "ext4"
+# destination: ""
+# - source: "/path/to/another/filesystem2.img"
+# sourcefs: "ext4"
+# destination: "/usr/lib/extra"
+#
+# You can list filesystem source paths relative to the Calamares run
+# directory, if you use -d (this is only useful for testing, though).
+#
+# - source: ./example.sqfs
+# sourcefs: squashfs
+# destination: ""
+#
+# You can list individual files (copied one-by-one), or directories
+# (the files inside this directory are copied directly to the destination,
+# so no "dummycpp/" subdirectory is created in this example).
+# Do note that the target directory must exist already (e.g. from
+# extracting some other filesystem).
+#
+# - source: ../CHANGES
+# sourcefs: file
+# destination: "/tmp/derp"
+# - source: ../src/modules/dummycpp
+# sourcefs: file
+# destination: "/tmp/derp"
+#
+# The *destination* and *source* are handed off to rsync, so the semantics
+# of trailing slashes apply. In order to *rename* a file as it is
+# copied, specify one single file (e.g. CHANGES) and a full pathname
+# for its destination name, as in the example below.
+
+#unpack:
+# - source: ../CHANGES
+# sourcefs: file
+# destination: "/tmp/changes.txt"
+# - source: src/qml/calamares/slideshow
+# sourcefs: file
+# destination: "/tmp/slideshow/"
+# exclude: [ "*.qmlc", "qmldir" ]
+# # excludeFile: /etc/calamares/modules/unpackfs/exclude-list.txt
+
+unpack:
+ - source: "/run/archiso/bootmnt/alter/x86_64/airootfs.sfs"
+ sourcefs: "squashfs"
+ destination: ""
+ - source: "/run/archiso/bootmnt/alter/boot/x86_64/vmlinuz-linux-ck"
+ sourcefs: "file"
+ destination: "/boot/vmlinuz-linux-ck"