summaryrefslogtreecommitdiff
path: root/parabolaiso/mkparabolaiso
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2021-03-14 17:05:52 -0300
committerDavid P <megver83@parabola.nu>2021-03-14 17:08:04 -0300
commit5425acb5427c39ae7333435c36fa2ca08852509d (patch)
tree0758f029810da984d9e29c5dfaf6ec6a785f370b /parabolaiso/mkparabolaiso
parent48ca0e2f0d7ff3e15184dc99148de128a847f4c3 (diff)
sync with archiso
imported changes: bc67933 Support EROFS 711ab4c archiso/initcpio/hooks/archiso: remove redundant /sfs/ from airootfs mount point parabolaiso: * make reflector NM dispatcher script executable in OpenRC profiles Signed-off-by: David P <megver83@parabola.nu>
Diffstat (limited to 'parabolaiso/mkparabolaiso')
-rwxr-xr-xparabolaiso/mkparabolaiso33
1 files changed, 31 insertions, 2 deletions
diff --git a/parabolaiso/mkparabolaiso b/parabolaiso/mkparabolaiso
index 6d19778..6876396 100755
--- a/parabolaiso/mkparabolaiso
+++ b/parabolaiso/mkparabolaiso
@@ -211,15 +211,37 @@ _mkairootfs_squashfs() {
_mkchecksum() {
_msg_info "Creating checksum file for self-test..."
cd -- "${isofs_dir}/${install_dir}/${arch}"
- sha512sum airootfs.sfs > airootfs.sha512
+ if [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.sfs" ]]; then
+ sha512sum airootfs.sfs > airootfs.sha512
+ elif [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.erofs" ]]; then
+ sha512sum airootfs.erofs > airootfs.sha512
+ fi
cd -- "${OLDPWD}"
_msg_info "Done!"
}
+# Makes an EROFS file system from a source directory.
+_mkairootfs_erofs() {
+ local fsuuid
+ [[ -e "${airootfs_dir}" ]] || _msg_error "The path '${airootfs_dir}' does not exist" 1
+
+ install -d -m 0755 -- "${isofs_dir}/${install_dir}/${arch}"
+ local image_path="${isofs_dir}/${install_dir}/${arch}/airootfs.erofs"
+ # Generate reproducible file system UUID from SOURCE_DATE_EPOCH
+ fsuuid="$(uuidgen --sha1 --namespace 93a870ff-8565-4cf3-a67b-f47299271a96 --name "${SOURCE_DATE_EPOCH}")"
+ _msg_info "Creating EROFS image, this may take some time..."
+ mkfs.erofs -U "${fsuuid}" "${airootfs_image_tool_options[@]}" -- "${image_path}" "${airootfs_dir}"
+ _msg_info "Done!"
+}
+
_mksignature() {
_msg_info "Signing SquashFS image..."
cd -- "${isofs_dir}/${install_dir}/${arch}"
- gpg --detach-sign --default-key "${gpg_key}" airootfs.sfs
+ if [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.sfs" ]]; then
+ gpg --detach-sign --default-key "${gpg_key}" airootfs.sfs
+ elif [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.erofs" ]]; then
+ gpg --detach-sign --default-key "${gpg_key}" airootfs.erofs
+ fi
cd -- "${OLDPWD}"
_msg_info "Done!"
}
@@ -766,6 +788,13 @@ _validate_requirements_airootfs_image_type_ext4+squashfs() {
_validate_requirements_airootfs_image_type_squashfs
}
+_validate_requirements_airootfs_image_type_erofs() {
+ if ! command -v mkfs.erofs; then
+ (( validation_error=validation_error+1 ))
+ _msg_error "Validating '${airootfs_image_type}': mkfs.erofs is not available on this host. Install 'erofs-utils'!" 0
+ fi
+}
+
# SYSLINUX El Torito
_add_xorrisofs_options_bios.syslinux.eltorito() {
xorrisofs_options+=(