* 151-mkarchiso-should-show-code-signing-certificates-none-if-no-keys-cerfificates-are-specified:
mkarchiso: show "Code signing certificates: None" if no keys/certificates are specified
The curl --retry-connrefused option is used with not instead of the --retry <num> option to add an extra type of failure to retry on, without --retry <num> it does not retry at all even on a connection refused.
https://man.archlinux.org/man/curl.1.en
"rescue/installation actions for {grub,refind} should be run from
within a chroot" is a false statement. See --boot-directory of
grub-install and --root of refind-install. (In the case of grub,
there are people that do not use the ugly grub-mkconfig at all.)
* nl6720/more-quiet:
mkarchiso: use mkfs.erofs --quiet in quiet mode
mkarchiso: use mksquashfs -quiet instead of redirecting its stdout to /dev/null
mkarchiso: do not show subdirectory sizes in netboot mode
mkarchiso: redirect command -v output to /dev/null
mkarchiso: silence xorriso's note about SOURCE_DATE_EPOCH
mkarchiso: silence mkfs.fat in quiet mode
mksquashfs supports a -quiet option since squashfs-tools 4.4.
Use this option in non-verbose mode instead of redirecting stdout of the whole command to /dev/null.
This allows to have only one instance of mksquashfs in _run_mksquashfs instead of multiple ones in if-then-else.
Related to #148.
The `xorriso -as mkisofs` option `-quiet` is interpreted too late. Use native xorriso option `-report_about SORRY` instead and ensure it is the first option.
Related to #148.
printf is a bash builtin, so by using it an external command can be avoided.
Due to the differences between date(1) and strftime(3), the time zone output will not contain a colon anymore. Fortunately, that is still a supported format according to https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC .
* nl6720/fix-unbound-variables-in-_validate_options:
mkarchiso: error out of iso and netboot build modes if no boot modes are specified
mkarchiso: split out build mode specific checks from _validate_options to _validate_requirements_buildmode_*
mkarchiso: fix unbound variable errors in _validate_options
The bootstrap build mode does not use packages.${arch}, ${bootmodes[@]} or $airootfs_image_type so there's no need to validate them.
Requirements common to iso and netboot are checked with the _validate_common_requirements_buildmode_iso_netboot function.
Fixes#149.
* Rename _validate_requirements_buildmode_all to _validate_common_requirements_buildmode_all to prevent potential conflicts since we are using _validate_requirements_buildmode_${_buildmode} to run the functions.
* Improve searching in an array. See https://stackoverflow.com/a/15394738.
$pkg_list_from_file and $bootstrap_pkg_list_from_file are arrays, they must be referenced as such. Fixes https://bugs.archlinux.org/task/71852.
Remove quotes from arithmetic expressions.
* nl6720/gpg-sender:
.gitlab/ci/build_archiso.sh: use mkarchiso's -G option
mkarchiso: support setting gpg sender
mkarchiso: add some sane gpg options to override those set in user's gpg.conf
Add new -G option to set gpg's --sender. This allows to see who signed the rootfs image without needing to import the gpg key from the keyring in initramfs.
* Add --batch, since gpg is run in a script.
* Add --no-armor (this is the default). Armored output provides no benifit here.
* Add --no-include-key-block (this is the default). There is no need to have the gpg key in the signature. The mkinitcpio hook will verify the signature against the included keyring.
Remove the output files before running gpg. Otherwise gpg --batch will fail if they exist.
* nl6720/no-mount:
mkarchiso: ensure there are no existing image files before trying to create them
mkarchiso: copy files to ext4 image using mkfs.ext4's -d option instead of mounting the file system
This could prevent a few issues when creating an image file when re-running mkarchiso after a failure.
Remove useless test before running rm -f. The command will always succeed.
mkfs.ext4 with its -d option can "copy the contents of the given directory into the root directory of the filesystem".
This allows to get rid of the last directly used mount and umount commands in mkarchiso.
Additionally try to make the ext4 image somewhat reproducible by setting E2FSPROGS_FAKE_TIME to SOURCE_DATE_EPOCH, clearing the UUID and using a reproducible hash seed.
See https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=e1f7100643a46456be107b33098f6034b0835e6d .
Place mkfs.ext4 options in an array to avoid duplicating the command.
Related to #40.
Makefile:
Remove all code specific to mkinitcpio-archiso.
Allow overriding PREFIX (defaults to /usr/local).
Gather scripts to check more generically.
Add abstractions for installation directories.