From e264b44682a930f70715ea58cf96e69c87a86b64 Mon Sep 17 00:00:00 2001 From: David Runge Date: Sat, 30 May 2020 00:01:28 +0200 Subject: Add license and basic documentation LICENSE: Add GPL-3.0 license. {{archiso,configs}/*,.editorconfig,.gitlab-ci.yml}: Add SPDX license identifier. Makefile: Add SPDX license identifier. Install the `run_archiso.sh` script as global executable `run_archiso`. Use -D and -t flags to install to install files more generically (without a previous call to install the directory). README.rst: Add README outlining the project's scope, how to build images from the profiles and how to test. AUTHORS.rst: Add list of all direct contributors to the repository. CONTRIBUTING.rst: Add basic contribution guidelines, explaining the linter and the license in use. Closes #7 Closes #3 --- archiso/initcpio/hooks/archiso | 2 ++ archiso/initcpio/hooks/archiso_loop_mnt | 2 ++ archiso/initcpio/hooks/archiso_pxe_common | 2 ++ archiso/initcpio/hooks/archiso_pxe_http | 2 ++ archiso/initcpio/hooks/archiso_pxe_nbd | 2 ++ archiso/initcpio/hooks/archiso_pxe_nfs | 2 ++ archiso/initcpio/hooks/archiso_shutdown | 2 ++ archiso/initcpio/install/archiso | 2 ++ archiso/initcpio/install/archiso_kms | 2 ++ archiso/initcpio/install/archiso_loop_mnt | 2 ++ archiso/initcpio/install/archiso_pxe_common | 2 ++ archiso/initcpio/install/archiso_pxe_http | 2 ++ archiso/initcpio/install/archiso_pxe_nbd | 2 ++ archiso/initcpio/install/archiso_pxe_nfs | 2 ++ archiso/initcpio/install/archiso_shutdown | 2 ++ archiso/initcpio/script/archiso_shutdown | 2 ++ archiso/mkarchiso | 2 ++ 17 files changed, 34 insertions(+) (limited to 'archiso') diff --git a/archiso/initcpio/hooks/archiso b/archiso/initcpio/hooks/archiso index 7f2f9a7..a12c260 100644 --- a/archiso/initcpio/hooks/archiso +++ b/archiso/initcpio/hooks/archiso @@ -1,4 +1,6 @@ #!/bin/ash +# +# SPDX-License-Identifier: GPL-3.0-or-later # args: source, newroot, mountpoint _mnt_dmsnapshot() { diff --git a/archiso/initcpio/hooks/archiso_loop_mnt b/archiso/initcpio/hooks/archiso_loop_mnt index 2c607f5..41899e4 100644 --- a/archiso/initcpio/hooks/archiso_loop_mnt +++ b/archiso/initcpio/hooks/archiso_loop_mnt @@ -1,4 +1,6 @@ #!/bin/ash +# +# SPDX-License-Identifier: GPL-3.0-or-later run_hook () { # shellcheck disable=SC2154 diff --git a/archiso/initcpio/hooks/archiso_pxe_common b/archiso/initcpio/hooks/archiso_pxe_common index bf8e883..f02ef12 100644 --- a/archiso/initcpio/hooks/archiso_pxe_common +++ b/archiso/initcpio/hooks/archiso_pxe_common @@ -1,4 +1,6 @@ #!/bin/ash +# +# SPDX-License-Identifier: GPL-3.0-or-later run_hook () { # Do *not* declare 'bootif_dev' local! We need it in run_latehook(). diff --git a/archiso/initcpio/hooks/archiso_pxe_http b/archiso/initcpio/hooks/archiso_pxe_http index bf2f5f4..efae923 100644 --- a/archiso/initcpio/hooks/archiso_pxe_http +++ b/archiso/initcpio/hooks/archiso_pxe_http @@ -1,4 +1,6 @@ #!/bin/ash +# +# SPDX-License-Identifier: GPL-3.0-or-later run_hook() { # shellcheck disable=SC2154 diff --git a/archiso/initcpio/hooks/archiso_pxe_nbd b/archiso/initcpio/hooks/archiso_pxe_nbd index 4ccbcbf..8ac44e7 100644 --- a/archiso/initcpio/hooks/archiso_pxe_nbd +++ b/archiso/initcpio/hooks/archiso_pxe_nbd @@ -1,4 +1,6 @@ #!/bin/ash +# +# SPDX-License-Identifier: GPL-3.0-or-later run_earlyhook() { # shellcheck disable=SC2154 diff --git a/archiso/initcpio/hooks/archiso_pxe_nfs b/archiso/initcpio/hooks/archiso_pxe_nfs index be1e4c3..9d3964b 100644 --- a/archiso/initcpio/hooks/archiso_pxe_nfs +++ b/archiso/initcpio/hooks/archiso_pxe_nfs @@ -1,4 +1,6 @@ #!/bin/ash +# +# SPDX-License-Identifier: GPL-3.0-or-later run_hook() { # shellcheck disable=SC2154 diff --git a/archiso/initcpio/hooks/archiso_shutdown b/archiso/initcpio/hooks/archiso_shutdown index db8fb33..ebb6b11 100644 --- a/archiso/initcpio/hooks/archiso_shutdown +++ b/archiso/initcpio/hooks/archiso_shutdown @@ -1,4 +1,6 @@ #!/bin/ash +# +# SPDX-License-Identifier: GPL-3.0-or-later run_cleanuphook() { rm -rf /usr/lib/modules diff --git a/archiso/initcpio/install/archiso b/archiso/initcpio/install/archiso index a12104e..3006b5f 100644 --- a/archiso/initcpio/install/archiso +++ b/archiso/initcpio/install/archiso @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later build() { add_module "cdrom" diff --git a/archiso/initcpio/install/archiso_kms b/archiso/initcpio/install/archiso_kms index 48832ff..8129127 100644 --- a/archiso/initcpio/install/archiso_kms +++ b/archiso/initcpio/install/archiso_kms @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later build() { add_module "amdgpu" diff --git a/archiso/initcpio/install/archiso_loop_mnt b/archiso/initcpio/install/archiso_loop_mnt index 4a5824d..1f2c529 100644 --- a/archiso/initcpio/install/archiso_loop_mnt +++ b/archiso/initcpio/install/archiso_loop_mnt @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later build() { add_runscript diff --git a/archiso/initcpio/install/archiso_pxe_common b/archiso/initcpio/install/archiso_pxe_common index da5f6b6..458fa69 100644 --- a/archiso/initcpio/install/archiso_pxe_common +++ b/archiso/initcpio/install/archiso_pxe_common @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later build() { add_checked_modules -f "(irda|phy|wimax|wireless|ppp_|plip|pppoe)" "/drivers/net/" diff --git a/archiso/initcpio/install/archiso_pxe_http b/archiso/initcpio/install/archiso_pxe_http index 3353eb7..1e80852 100644 --- a/archiso/initcpio/install/archiso_pxe_http +++ b/archiso/initcpio/install/archiso_pxe_http @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later build() { add_runscript diff --git a/archiso/initcpio/install/archiso_pxe_nbd b/archiso/initcpio/install/archiso_pxe_nbd index 9fe3fdd..b4fb3b6 100644 --- a/archiso/initcpio/install/archiso_pxe_nbd +++ b/archiso/initcpio/install/archiso_pxe_nbd @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later build() { add_module "nbd" diff --git a/archiso/initcpio/install/archiso_pxe_nfs b/archiso/initcpio/install/archiso_pxe_nfs index fa4e548..efd609d 100644 --- a/archiso/initcpio/install/archiso_pxe_nfs +++ b/archiso/initcpio/install/archiso_pxe_nfs @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later build() { add_module "nfs" diff --git a/archiso/initcpio/install/archiso_shutdown b/archiso/initcpio/install/archiso_shutdown index 1051d1b..b2c6bd4 100644 --- a/archiso/initcpio/install/archiso_shutdown +++ b/archiso/initcpio/install/archiso_shutdown @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later build() { add_binary cp diff --git a/archiso/initcpio/script/archiso_shutdown b/archiso/initcpio/script/archiso_shutdown index 4a0c7dc..23a8a79 100644 --- a/archiso/initcpio/script/archiso_shutdown +++ b/archiso/initcpio/script/archiso_shutdown @@ -1,4 +1,6 @@ #!/bin/ash +# +# SPDX-License-Identifier: GPL-3.0-or-later # /oldroot depends on things inside /oldroot/run/archiso... mkdir /oldrun diff --git a/archiso/mkarchiso b/archiso/mkarchiso index 5e229a4..ad5232a 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -1,4 +1,6 @@ #!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later set -e -u -- cgit v1.2.3-54-g00ecf From b8dc4484e8ebe0b841e0a5589eb781dc551a620f Mon Sep 17 00:00:00 2001 From: nl6720 Date: Tue, 28 Jul 2020 20:54:56 +0300 Subject: archiso/initcpio/install/archiso: fix GnuPG home directory permissions Gets rid of a gpg warning: gpg: WARNING: unsafe permissions on homedir '/tmp/mkinitcpio.*/root/gpg' --- archiso/initcpio/install/archiso | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'archiso') diff --git a/archiso/initcpio/install/archiso b/archiso/initcpio/install/archiso index 3006b5f..74948c7 100644 --- a/archiso/initcpio/install/archiso +++ b/archiso/initcpio/install/archiso @@ -24,7 +24,7 @@ build() { add_file /usr/lib/udev/rules.d/95-dm-notify.rules add_file /usr/lib/initcpio/udev/11-dm-initramfs.rules /usr/lib/udev/rules.d/11-dm-initramfs.rules if [[ $ARCHISO_GNUPG_FD ]]; then - mkdir -p "$BUILDROOT/gpg" + mkdir -m 0700 -- "$BUILDROOT/gpg" gpg --homedir "$BUILDROOT/gpg" --import <& "$ARCHISO_GNUPG_FD" fi } -- cgit v1.2.3-54-g00ecf From 945f3834c287bd06d33d4ac6c3b777e3df37dea7 Mon Sep 17 00:00:00 2001 From: nl6720 Date: Thu, 30 Jul 2020 18:18:00 +0300 Subject: Show mksquashfs progress bar when mkarchiso is run in verbose mode --- archiso/mkarchiso | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'archiso') diff --git a/archiso/mkarchiso b/archiso/mkarchiso index ad5232a..4e2a868 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -229,7 +229,7 @@ _mkairootfs_img () { -comp "${sfs_comp}" -no-progress &> /dev/null else mksquashfs "${work_dir}/airootfs.img" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend \ - -comp "${sfs_comp}" -no-progress + -comp "${sfs_comp}" fi _msg_info "Done!" rm "${work_dir}/airootfs.img" @@ -248,7 +248,7 @@ _mkairootfs_sfs () { -comp "${sfs_comp}" -no-progress &> /dev/null else mksquashfs "${work_dir}/airootfs" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend \ - -comp "${sfs_comp}" -no-progress + -comp "${sfs_comp}" fi _msg_info "Done!" } -- cgit v1.2.3-54-g00ecf From 6312ccc9bccb453c8506322581aa467538bc123f Mon Sep 17 00:00:00 2001 From: nl6720 Date: Thu, 30 Jul 2020 18:36:21 +0300 Subject: Ensure all files in the ISO's Rock Ridge file system are owned by root archiso/mkarchiso: Add the -rational-rock option to xorriso. This is a preparatory step for creating ISOs as a regular user. See https://gitlab.archlinux.org/archlinux/archiso/-/issues/40 . --- archiso/mkarchiso | 2 ++ 1 file changed, 2 insertions(+) (limited to 'archiso') diff --git a/archiso/mkarchiso b/archiso/mkarchiso index 4e2a868..df7ee05 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -309,6 +309,7 @@ command_iso () { xorriso -as mkisofs -quiet \ -iso-level 3 \ -full-iso9660-filenames \ + -rational-rock \ -volid "${iso_label}" \ -appid "${iso_application}" \ -publisher "${iso_publisher}" \ @@ -324,6 +325,7 @@ command_iso () { xorriso -as mkisofs \ -iso-level 3 \ -full-iso9660-filenames \ + -rational-rock \ -volid "${iso_label}" \ -appid "${iso_application}" \ -publisher "${iso_publisher}" \ -- cgit v1.2.3-54-g00ecf From 8e82bbbe4a239a529a3c7df3ae0664fc551e1213 Mon Sep 17 00:00:00 2001 From: nl6720 Date: Sun, 2 Aug 2020 15:37:30 +0300 Subject: archiso/initcpio/hooks/archiso: remove option terminator from the blockdev command Apparently blockdev does not support it. In an ISO made using '-s img' (Squashfs with dm-snapshot), it results in: blockdev: Unknown command: -- --- archiso/initcpio/hooks/archiso | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'archiso') diff --git a/archiso/initcpio/hooks/archiso b/archiso/initcpio/hooks/archiso index a12c260..716c69e 100644 --- a/archiso/initcpio/hooks/archiso +++ b/archiso/initcpio/hooks/archiso @@ -14,7 +14,7 @@ _mnt_dmsnapshot() { ro_dev="$(losetup --find --show --read-only -- "${img}")" echo "${ro_dev}" >> /run/archiso/used_block_devices - ro_dev_size="$(blockdev --getsz -- "${ro_dev}")" + ro_dev_size="$(blockdev --getsz "${ro_dev}")" if [ "${cow_persistent}" = "P" ]; then if [ -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow" ]; then -- cgit v1.2.3-54-g00ecf From 0387b253c8ff90df30ad35883f710ddce3e04854 Mon Sep 17 00:00:00 2001 From: nl6720 Date: Sat, 1 Aug 2020 14:51:11 +0300 Subject: archiso/mkarchiso: general bash improvements Quote all variables. Terminate option processing using '--' for commands that support it. Do not hardcode file descriptor. Compare integers with arithmetic comparison instead of string comparison. Replace echo with printf. Use heredoc for usage text. Don't print INFO messages when quiet is set. Export SOURCE_DATE_EPOCH. --- archiso/mkarchiso | 192 +++++++++++++++++++++++++++--------------------------- 1 file changed, 96 insertions(+), 96 deletions(-) (limited to 'archiso') diff --git a/archiso/mkarchiso b/archiso/mkarchiso index df7ee05..1dca307 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -4,10 +4,13 @@ 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=$(uname -m) +app_name="${0##*/}" +arch="$(uname -m)" pkg_list=() run_cmd="" quiet="y" @@ -20,13 +23,14 @@ work_dir="work" out_dir="out" sfs_mode="sfs" sfs_comp="xz" -gpg_key= +gpg_key="" # Show an INFO message # $1: message string _msg_info() { local _msg="${1}" - echo "[mkarchiso] INFO: ${_msg}" + [[ "${quiet}" == "y" ]] || printf '[%s] INFO: %s\n' "${app_name}" "${_msg}" + } # Show an ERROR message then exit with status @@ -35,83 +39,83 @@ _msg_info() { _msg_error() { local _msg="${1}" local _error=${2} - echo - echo "[mkarchiso] ERROR: ${_msg}" - echo - if [[ ${_error} -gt 0 ]]; then + 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 -- "${work_dir}/airootfs" _pacman base syslinux } _chroot_run() { - eval arch-chroot ${work_dir}/airootfs "${run_cmd}" + eval -- arch-chroot "${work_dir}/airootfs" "${run_cmd}" } _mount_airootfs() { trap "_umount_airootfs" EXIT HUP INT TERM - mkdir -p "${work_dir}/mnt/airootfs" + 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" + mount -- "${work_dir}/airootfs.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