From 72ad84dfbc2593a5c143df6a3976ac5359167483 Mon Sep 17 00:00:00 2001 From: David P Date: Wed, 19 Aug 2020 17:14:30 -0400 Subject: sync with archiso, add timeout for i686 syslinux menus imported the following changes: 13b8c7d (HEAD -> master, origin/master, origin/HEAD) archiso/mkarchiso: correct the path of airootfs/etc/machine-id 41d3d7d Add Joliet file system to the ISO e6455b8 archiso/mkarchiso: create an empty /etc/machine-id ba3e834 scripts/run_archiso.sh: support booting the image as a hard disk or an optical disc 55d9d1f scripts/run_archiso.sh: disable PXE ROM 1e0ffd0 scripts/run_archiso.sh: don't duplicate qemu commands for each boot mode e9f209e Deprecate build.sh scripts and old mkarchiso commands 31b1dfd archiso/mkarchiso: delete all files in /boot not just the kernel and initramfs 7c2247f archiso/mkarchiso: allow choosing boot modes from profiledef.sh 41b9b89 archiso/mkarchiso: copy make_* functions from configs/releng/build.sh 1cc7375 archiso/mkarchiso: start preparing a build_profile command 0387b25 archiso/mkarchiso: general bash improvements --- parabolaiso/mkparabolaiso | 810 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 631 insertions(+), 179 deletions(-) (limited to 'parabolaiso') diff --git a/parabolaiso/mkparabolaiso b/parabolaiso/mkparabolaiso index f7fae78..51251f5 100755 --- a/parabolaiso/mkparabolaiso +++ b/parabolaiso/mkparabolaiso @@ -4,29 +4,49 @@ set -e -u -export LANG=C +# Control the environment +umask 0022 +export LANG="C" +export SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-"$(date +%s)"}" -app_name=${0##*/} -arch=${arch:-$(uname -m)} +# mkparabolaiso defaults +app_name="${0##*/}" pkg_list=() run_cmd="" quiet="y" -pacman_conf="/etc/pacman.conf" -iso_label="PARA_$(date +%Y%m)" -iso_publisher="Parabola GNU/Linux-libre " -iso_application="Parabola GNU/Linux-libre Live/Rescue CD" -install_dir="parabola" work_dir="work" out_dir="out" +img_name="${app_name}.iso" sfs_mode="sfs" sfs_comp="xz" -gpg_key= +gpg_key="" + +# profile defaults +profile="" +iso_name="${app_name}" +iso_label="${app_name^^}" +iso_publisher="${app_name}" +iso_application="${app_name} iso" +iso_version="" +install_dir="${app_name}" +arch="${arch:-$(uname -m)}" +pacman_conf="/etc/pacman.conf" +bootmodes=() + # Show an INFO message # $1: message string _msg_info() { local _msg="${1}" - echo "[mkparabolaiso] INFO: ${_msg}" + [[ "${quiet}" == "y" ]] || printf '[%s] INFO: %s\n' "${app_name}" "${_msg}" + +} + +# Show a WARNING message +# $1: message string +_msg_warning() { + local _msg="${1}" + printf '\n[%s] WARNING: %s\n\n' "${app_name}" "${_msg}" >&2 } # Show an ERROR message then exit with status @@ -35,83 +55,73 @@ _msg_info() { _msg_error() { local _msg="${1}" local _error=${2} - echo - echo "[mkparabolaiso] ERROR: ${_msg}" - echo - if [[ ${_error} -gt 0 ]]; then - "exit ${_error}" + printf '\n[%s] ERROR: %s\n\n' "${app_name}" "${_msg}" >&2 + if (( _error > 0 )); then + exit "${_error}" fi } _chroot_init() { - mkdir -p ${work_dir}/airootfs + mkdir -p -- "${airootfs_dir}" _pacman base syslinux } _chroot_run() { - eval arch-chroot ${work_dir}/airootfs "${run_cmd}" + eval -- arch-chroot "${airootfs_dir}" "${run_cmd}" } _mount_airootfs() { trap "_umount_airootfs" EXIT HUP INT TERM - mkdir -p "${work_dir}/mnt/airootfs" - _msg_info "Mounting '${work_dir}/airootfs.img' on '${work_dir}/mnt/airootfs'" - mount "${work_dir}/airootfs.img" "${work_dir}/mnt/airootfs" + mkdir -p -- "${work_dir}/mnt/airootfs" + _msg_info "Mounting '${airootfs_dir}.img' on '${work_dir}/mnt/airootfs'" + mount -- "${airootfs_dir}.img" "${work_dir}/mnt/airootfs" _msg_info "Done!" } _umount_airootfs() { _msg_info "Unmounting '${work_dir}/mnt/airootfs'" - umount -d "${work_dir}/mnt/airootfs" + umount -d -- "${work_dir}/mnt/airootfs" _msg_info "Done!" - rmdir "${work_dir}/mnt/airootfs" + rmdir -- "${work_dir}/mnt/airootfs" trap - EXIT HUP INT TERM } # Show help usage, with an exit status. # $1: exit status number. -_usage () -{ - echo "usage ${app_name} [options] command " - echo " general options:" - echo " -p PACKAGE(S) Package(s) to install, can be used multiple times" - echo " -r Run inside airootfs" - echo " -C Config file for pacman." - echo " Default: '${pacman_conf}'" - echo " -L