Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-09-02Create directories and copy files to the FAT image using mtools instead of ↵nl6720
mounting the file system - mtools supports SOURCE_DATE_EPOCH. - The image file is operated on directly instead of mounting the file system. This is a prerequisite to limit the commands that run with root privileges. Related to https://gitlab.archlinux.org/archlinux/archiso/-/issues/40 . - Add a reminder comment to not get rid of the dosfstools dependency, since a mformat made FAT image can fail to boot on some systems.
2020-08-25Add missing declaration of override_install_dirDavid Runge
**archiso/mkarchiso**: In d90184a the unbound variable `override_install_dir` was introduced by accident. It is required to be set to empty string to provide override functionality for `install_dir`. Fixes #57
2020-08-25Pass profile directory as parameter to mkarchisoDavid Runge
**archiso/mkarchiso**: Change all override option parameters (i.e. `-A`, `-C`, `-D`, `-L`, `-P` and `-g`) to not directly override the global variable they are tied to, but instead using an `override_` prefixed variable. Add `_set_overrides()` to use `override_` prefixed variables (if set) to override those without a prefix. Remove `-B` (a profile directory) from the list of parameters. The profile directory is now provided as separate non-option parameter. Add a call to `_read_profile()`, `_set_overrides()` and `command_build_profile()` to the fallthrough option of the switch-case checking `command_name` - a non-option parameter to mkarchiso. This effectively provides the possibility to set the profile directory using a non-option parameter, while still maintaining compatibility to legacy named arguments used in the configs' `build.sh` scripts. Extend the warning in regards to legacy `build.sh` based commands to mkarchiso by providing an EOL with archiso v49. Change the help output to reflect the changes and further elaborate on the legacy commands used by `build.sh` scripts. Change help output to be ordered alphabetically. Add help output for `-r` and `-g` options. Call `_set_overrides()` for legacy commands that accept one or more of the overriden options (i.e. `command_init`, `command_install`, `command_prepare` and `command_iso`). Various style fixes. **configs/{baseline,releng}/build.sh**: Change call to mkarchiso to use the profile's directory as a named argument instead of an option-argument. **README.rst**: Fix documentation on how to call mkarchiso with a profile directory. Fix wording and ordering of option arguments for run_archiso documentation. Fixes #52
2020-08-21archiso/mkarchiso: reduce duplication and add more info messagesnl6720
Fixes to issues introduced in https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/59 : - _make_boot_on_fat(): copy initramfs from "${airootfs_dir}/boot/" not "${isofs_dir}/". Otherwise UEFI-only ISOs cannot be built. Some general fixes: - Replace mkdir with install. Unlike mkdir, install does not complain when the target exists. - Reduce excess newlines produced by messages. - Ensure FAT image gets unmounted in case the script is interrupted. - Create the ext4 image with mkfs.ext4 instead of truncate. - Do not rely on user and group names for chown commands. Use numeric UID and GID instead. - Minimize the times stderr is redirected to /dev/null. - Add missing '?' to getopts. - Standardize function definitions by removing spaces between the function name and () .
2020-08-18archiso/mkarchiso: correct the path of airootfs/etc/machine-idnl6720
Use "${airootfs_dir}". Fixes a mistake introduced when rebasing https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/64 .
2020-08-18Add Joliet file system to the ISOnl6720
Joliet ensures correct file names capitalization on operating systems that support Joliet but not support Rock Ridge. Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/45 .
2020-08-18archiso/mkarchiso: create an empty /etc/machine-idnl6720
Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/42 .
2020-08-18scripts/run_archiso.sh: support booting the image as a hard disk or an ↵nl6720
optical disc Use virtio-scsi to attach the image. virtio-blk (if=virtio) is inconsistent about the used media type.
2020-08-18scripts/run_archiso.sh: disable PXE ROMnl6720
ISO testing doesn't require the emulated firmware's PXE stack. For UEFI, it only disable iPXE in favor of EDK II network stack. https://github.com/tianocore/tianocore.github.io/wiki/EDKII-Network-Over-QEMU#verification-result
2020-08-18scripts/run_archiso.sh: don't duplicate qemu commands for each boot modenl6720
Various bash script improvements.
2020-08-17Deprecate build.sh scripts and old mkarchiso commandsnl6720
Replace build.sh scripts with calls to mkarchiso -B "profiledir" build_profile. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/37 .
2020-08-17archiso/mkarchiso: delete all files in /boot not just the kernel and initramfsnl6720
There is nothing useful in /boot for the live system.
2020-08-17archiso/mkarchiso: allow choosing boot modes from profiledef.shnl6720
Boot mode names are: - bios_syslinux.mbr: SYSLINUX in MBR - bios.syslinux.eltorito: SYSLINUX (ISOLINUX) via El Torito - uefi-x64.systemd-boot.esp: systemd-boot on ESP in MBR - uefi-x64.systemd-boot.eltorito: systemd-boot on ESP via El Torito It is not yet possible to create an ISO with only El Torito or only MBR boot modes!
2020-08-17archiso/mkarchiso: copy make_* functions from configs/releng/build.shnl6720
Adapt _make_* functions to mkarchiso. Related to https://gitlab.archlinux.org/archlinux/archiso/-/issues/37 .
2020-08-17archiso/mkarchiso: start preparing a build_profile commandnl6720
Nothing is implemented yet! configs/releng/profiledef.sh: A test profile.
2020-08-17archiso/mkarchiso: general bash improvementsnl6720
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.
2020-08-11configs/releng/packages.x86_64: replace exfat-utils with exfatprogsnl6720
exfatprogs uses the kernel's driver unlike exfat-utils which provides a FUSE driver.
2020-08-11configs/releng/syslinux/archiso_pxe.cfg: add "checksum" and "verify" boot ↵nl6720
options An ISO's checksum and GPG validation primarily matters when PXE booting, so it would be appropriate to enable these options for releng. They should protect against booting a corrupt image.
2020-08-11archiso/initcpio/hooks/archiso: remove option terminator from the blockdev ↵nl6720
command Apparently blockdev does not support it. In an ISO made using '-s img' (Squashfs with dm-snapshot), it results in: blockdev: Unknown command: --
2020-07-30Ensure all files in the ISO's Rock Ridge file system are owned by rootnl6720
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 .
2020-07-30Show mksquashfs progress bar when mkarchiso is run in verbose modenl6720
2020-07-30releng: copy UEFI shell from airootfs instead of the host systemnl6720
Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/35 .
2020-07-30releng: place custom sshd_config in airootfsnl6720
Properly track the file instead of modifying it on-the-fly with customize_airootfs.sh. See https://gitlab.archlinux.org/archlinux/archiso/-/issues/21 .
2020-07-30CONTRIBUTING.rst: use make lint to run shellchecknl6720
`make check` could get extended to include other things besides just linting.
2020-07-30Move shell script linting into a separate make targetnl6720
Makefile: Move shellcheck to a "lint" target and change "check" so that it runs "lint". This provides a more finer grained control and allows to extend "check" with things beyond just linting. .gitlab-ci.yml: Run `make lint` in the lint job.
2020-07-30Use latest synced mirrors instead of ageDavid Runge
configs/releng/airootfs/etc/systemd/system/reflector.service: Use the 70 mirrors synced most recently (--latest) instead of a specific time since last sync (--age). According to FS#67399 using 1hour as sync age is too short, as it sometimes leads to empty list.
2020-07-30Install mkinitcpio-archiso-hooks in airootfs instead of copying the hooks ↵nl6720
from host
2020-07-29Makefile: do not install mkinitcpio hooks by defaultnl6720
They are not required in the host system. See https://gitlab.archlinux.org/archlinux/archiso/-/issues/34 .
2020-07-29Build initramfs images only oncenl6720
Place custom mkinitcpio.conf in airootfs. Use a custom mkinitcpio preset to specify generated image file path.
2020-07-29Remove unnecessary files from releng's airootfsnl6720
configs/releng/airootfs/etc/fstab: /etc/fstab shipped by the filesystem package has only comments. There is no reason to replace it with an empty file. configs/releng/airootfs/etc/systemd/system/default.target: There is no harm in booting to graphical.target. releng does not enable (or even install) any service that has {Required,Wanted}By=graphical.target.
2020-07-29archiso/initcpio/install/archiso: fix GnuPG home directory permissionsnl6720
Gets rid of a gpg warning: gpg: WARNING: unsafe permissions on homedir '/tmp/mkinitcpio.*/root/gpg'
2020-07-29Add license and basic documentationDavid Runge
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
2020-07-28Copy files more genericallyDavid Runge
configs/*: Copy all files that do not need a rename generically (not specifying a destination file name). Do not rename vmlinuz-linux to vmlinuz or vmlinuz.efi (as this serves no purpose and makes the scripts more complicated). Do not rename microcode (i.e. {amd,intel}-ucode.img) when copying them and change all boot loader configuration files that assume a renamed microcode image. Add note and link to Arch Linux wiki to state why memtest.bin is renamed to memtest. Copy license files for {amd,intel}-ucode and memtest more generically by placing them into subdirectories with the same name as the package (to circumenvent overwriting one other). Closes #33
2020-07-28Copy /etc/skel/ to user's home from build.sh instead of customize_airootfs.shnl6720
Additionally copy the files to all custom user homes, not just root's.
2020-07-28Set up custom user home directories and their permissionsnl6720
2020-07-28Deprecate customize_airootfs.shnl6720
Show a deprecation notice if airootfs/root/customize_airootfs.sh is found.
2020-07-28Install all packages in one go and don't copy pacman.conf to airootfsnl6720
configs/{baseline,releng}/build.sh: Copy custom files to airootfs before installing packages. Instead of calling `mkarchiso init`, list all required packages in packages.x86_64 and install them all at once with `mkarchiso install`. The mkdir command which `mkarchiso init` performs is now done by make_custom_airootfs. configs/releng/build.sh: Don't copy configs/releng/pacman.conf to airootfs, it is only meant to provide a unmodified pacman.conf durring pacstrap. In airootfs, an unmodified /etc/pacman.conf will be installed with the pacman package.
2020-07-28Fix baseline profilenl6720
Install linux and mkinitcpio packages. Remove root user's password. Fixes https://bugs.archlinux.org/task/64236 .
2020-07-20Set root user's shell and password with custom /etc/passwd and /etc/shadownl6720
Correct shadow file permissions from build.sh.
2020-07-17Revert "Add GitHub Actions workflow"nl6720
This reverts commit 2993b80816be1b06f7bb57b500a47989ac3af0e9. Actions are disabled in archiso's GitHub mirror.
2020-07-17Separate custom comments from shellcheck commentsnl6720
Having a shellcheck directive and custom comments in the same line can trigger SC1107 on old versions of shellcheck.
2020-07-17Add GitHub Actions workflownl6720
.github/workflows/lint.yml: Run `make check`.
2020-07-17Add check target to Makefilenl6720
Makefile: Move shellcheck commands from .gitlab-ci.yml. .gitlab-ci.yml: Run `make check`. Prevent partial upgrades, i.e. use '-Syu'. Prevent reinstalling already installed packages by using pacman's '--needed' option. Don't force-download the package database.
2020-07-16Fix unexpected script_path behaviourJustin Kromlinger
When one calls the `build.sh` scripts with bash instead of the shebang `$script_path` contains the filepath, not the parent dir: ``` % cd /path % grep -A2 script_path= build.sh script_path=$(readlink -f "${0%/*}") echo "$script_path" exit 0 % ./build.sh /path % bash build.sh /path/build.sh ``` This commit fixes that: ``` % grep -A2 script_path= build.sh script_path="$( cd -P "$( dirname "$(readlink -f "$0")" )" && pwd )" echo "$script_path" exit 0 % ./build.sh /path % bash build.sh /path ```
2020-07-12Explicitly add linux and mkinitcpio to packages.x86_64nl6720
linux only gets pulled in because of broadcom-wl and mkinitcpio (usually) gets pulled in by linux.
2020-07-12Don't hardcode packages in build.shnl6720
Move all required packages to packages.x86_64. Test file availability before copying them.
2020-07-11Adding linting for initcpio scriptsDavid Runge
archiso/initcpio/install/*: Setting bash shebang for all scripts and making them comform with shellcheck. archiso/initcpio/{hooks,script}/*: Setting ash shebang for all scripts and making them comform with shellcheck (for dash, as shellcheck has no ash specific ruleset). Essentially the ash based scripts should be POSIX compliant as much as possible to have an easier time writing, debugging and maintaining them. Ensuring that variables are not treated as options and introducing variable quoting. .gitlab-ci.yml: Integrating shellcheck for initcpio scripts. Closes #32
2020-07-11Remove lynx usage in configs/releng/build.shnl6720
/usr/local/bin/Installation_guide: Add a convenience script which opens the installation guide in lynx. /etc/motd: Provide a message with minimal instructions for connecting to internet and inform about the Installation_guide convenience script.
2020-07-11Remove unnecessary dialog packagenl6720
dialog was only added because it was needed for netctl's wifi-menu. Now that netctl is removed, nothing requires dialog.
2020-07-11Use /usr/bin/env in shebangsnl6720