aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* archiso/mkarchiso: reduce duplication and add more info messagesnl67202020-08-211-123/+149
| | | | | | | | | | | | | | | 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 () .
* archiso/mkarchiso: correct the path of airootfs/etc/machine-idnl67202020-08-181-1/+1
| | | | | Use "${airootfs_dir}". Fixes a mistake introduced when rebasing https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/64 .
* Add Joliet file system to the ISOnl67202020-08-181-0/+2
| | | | | 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 .
* archiso/mkarchiso: create an empty /etc/machine-idnl67202020-08-182-0/+2
| | | | Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/42 .
* scripts/run_archiso.sh: support booting the image as a hard disk or an ↵nl67202020-08-181-2/+9
| | | | | | optical disc Use virtio-scsi to attach the image. virtio-blk (if=virtio) is inconsistent about the used media type.
* scripts/run_archiso.sh: disable PXE ROMnl67202020-08-181-1/+1
| | | | | 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
* scripts/run_archiso.sh: don't duplicate qemu commands for each boot modenl67202020-08-181-57/+46
| | | | Various bash script improvements.
* Deprecate build.sh scripts and old mkarchiso commandsnl67202020-08-175-436/+22
| | | | | | Replace build.sh scripts with calls to mkarchiso -B "profiledir" build_profile. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/37 .
* archiso/mkarchiso: delete all files in /boot not just the kernel and initramfsnl67202020-08-171-6/+2
| | | | There is nothing useful in /boot for the live system.
* archiso/mkarchiso: allow choosing boot modes from profiledef.shnl67202020-08-173-91/+136
| | | | | | | | | | | 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!
* archiso/mkarchiso: copy make_* functions from configs/releng/build.shnl67202020-08-171-31/+317
| | | | | | Adapt _make_* functions to mkarchiso. Related to https://gitlab.archlinux.org/archlinux/archiso/-/issues/37 .
* archiso/mkarchiso: start preparing a build_profile commandnl67202020-08-173-44/+91
| | | | | | | Nothing is implemented yet! configs/releng/profiledef.sh: A test profile.
* archiso/mkarchiso: general bash improvementsnl67202020-08-171-96/+96
| | | | | | | | | | | 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.
* configs/releng/packages.x86_64: replace exfat-utils with exfatprogsnl67202020-08-111-1/+1
| | | | exfatprogs uses the kernel's driver unlike exfat-utils which provides a FUSE driver.
* configs/releng/syslinux/archiso_pxe.cfg: add "checksum" and "verify" boot ↵nl67202020-08-111-3/+3
| | | | | | | 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.
* archiso/initcpio/hooks/archiso: remove option terminator from the blockdev ↵nl67202020-08-111-1/+1
| | | | | | | | | command Apparently blockdev does not support it. In an ISO made using '-s img' (Squashfs with dm-snapshot), it results in: blockdev: Unknown command: --
* Ensure all files in the ISO's Rock Ridge file system are owned by rootnl67202020-07-301-0/+2
| | | | | | 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 .
* Show mksquashfs progress bar when mkarchiso is run in verbose modenl67202020-07-301-2/+2
|
* releng: copy UEFI shell from airootfs instead of the host systemnl67202020-07-303-2/+2
| | | | Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/35 .
* releng: place custom sshd_config in airootfsnl67202020-07-302-1/+116
| | | | | Properly track the file instead of modifying it on-the-fly with customize_airootfs.sh. See https://gitlab.archlinux.org/archlinux/archiso/-/issues/21 .
* CONTRIBUTING.rst: use make lint to run shellchecknl67202020-07-301-1/+1
| | | | `make check` could get extended to include other things besides just linting.
* Move shell script linting into a separate make targetnl67202020-07-302-3/+5
| | | | | | | | | 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.
* Use latest synced mirrors instead of ageDavid Runge2020-07-301-1/+1
| | | | | | 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.
* Install mkinitcpio-archiso-hooks in airootfs instead of copying the hooks ↵nl67202020-07-305-16/+8
| | | | from host
* Makefile: do not install mkinitcpio hooks by defaultnl67202020-07-291-1/+1
| | | | They are not required in the host system. See https://gitlab.archlinux.org/archlinux/archiso/-/issues/34 .
* Build initramfs images only oncenl67202020-07-298-49/+179
| | | | | Place custom mkinitcpio.conf in airootfs. Use a custom mkinitcpio preset to specify generated image file path.
* Remove unnecessary files from releng's airootfsnl67202020-07-292-3/+0
| | | | | | | | 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.
* archiso/initcpio/install/archiso: fix GnuPG home directory permissionsnl67202020-07-291-1/+1
| | | | | Gets rid of a gpg warning: gpg: WARNING: unsafe permissions on homedir '/tmp/mkinitcpio.*/root/gpg'
* Add license and basic documentationDavid Runge2020-07-2959-6/+1000
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Copy files more genericallyDavid Runge2020-07-287-33/+37
| | | | | | | | | | | | | | 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
* Copy /etc/skel/ to user's home from build.sh instead of customize_airootfs.shnl67202020-07-282-3/+10
| | | | Additionally copy the files to all custom user homes, not just root's.
* Set up custom user home directories and their permissionsnl67202020-07-282-1/+28
|
* Deprecate customize_airootfs.shnl67202020-07-282-7/+11
| | | | Show a deprecation notice if airootfs/root/customize_airootfs.sh is found.
* Install all packages in one go and don't copy pacman.conf to airootfsnl67202020-07-284-29/+27
| | | | | | | | | 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.
* Fix baseline profilenl67202020-07-283-0/+118
| | | | | | | Install linux and mkinitcpio packages. Remove root user's password. Fixes https://bugs.archlinux.org/task/64236 .
* Set root user's shell and password with custom /etc/passwd and /etc/shadownl67202020-07-206-4/+16
| | | | Correct shadow file permissions from build.sh.
* Revert "Add GitHub Actions workflow"nl67202020-07-171-27/+0
| | | | | | This reverts commit 2993b80816be1b06f7bb57b500a47989ac3af0e9. Actions are disabled in archiso's GitHub mirror.
* Separate custom comments from shellcheck commentsnl67202020-07-176-19/+38
| | | | Having a shellcheck directive and custom comments in the same line can trigger SC1107 on old versions of shellcheck.
* Add GitHub Actions workflownl67202020-07-171-0/+27
| | | | | .github/workflows/lint.yml: Run `make check`.
* Add check target to Makefilenl67202020-07-172-13/+12
| | | | | | | | | | | 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.
* Fix unexpected script_path behaviourJustin Kromlinger2020-07-162-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ```
* Explicitly add linux and mkinitcpio to packages.x86_64nl67202020-07-121-0/+2
| | | | linux only gets pulled in because of broadcom-wl and mkinitcpio (usually) gets pulled in by linux.
* Don't hardcode packages in build.shnl67202020-07-122-15/+24
| | | | | Move all required packages to packages.x86_64. Test file availability before copying them.
* Adding linting for initcpio scriptsDavid Runge2020-07-1117-156/+188
| | | | | | | | | | | | | | | | 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
* Remove lynx usage in configs/releng/build.shnl67202020-07-115-7/+13
| | | | | | | | /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.
* Remove unnecessary dialog packagenl67202020-07-111-1/+0
| | | | | dialog was only added because it was needed for netctl's wifi-menu. Now that netctl is removed, nothing requires dialog.
* Use /usr/bin/env in shebangsnl67202020-07-114-4/+4
|
* Add work and out directories to .gitignorenl67202020-07-111-0/+2
|
* Remove unneded ReadOnlyPaths from reflector.servicenl67202020-07-111-1/+0
| | | | | configs/releng/airootfs/etc/systemd/system/reflector.service: Remove references to a nonexistent file.
* Keep /root permissions as 750nl67202020-07-112-1/+2
| | | | | | The filesystem package installs /root as 750 not 700. Move chmod from customize_airootfs.sh to build.sh.