aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Update pacman.conf to the current version shipped by the pacman packagenl67202020-07-111-2/+1
|
* Sort packages.x86_64nl67202020-07-111-4/+4
| | | | | | Additionally update names of renamed packages: https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/bind&id=1b097b9bcaddd65c7af4f92efef175f959395a7e https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/vim&id=807b49bf022a6d523ca6215d5b34cd1e37457bd5
* Warn about Syslinux's reboot.c32 and poweroff.c32 requiring APMnl67202020-07-111-0/+8
| | | | | | | configs/releng/syslinux/archiso_tail.cfg: APM is old and some motherboard firmwares have removed support for it. reboot.c32 and poweroff.c32 will not work on such firmwares. Add a help text to "Reboot" and "Power Off" boot menu entries that warns about requiring APM.
* Add terminus-fontnl67202020-07-111-0/+1
| | | | | When built with CONFIG_FONT_TER16x32, the Linux kernel includes a TER16x32 font based on ter-i32b from terminus-font. The kernel will automatically choose this font on screen resolutions larger than 1920×1080. The terminus-font package includes fonts for other character sets, which may be useful during installation.
* Add *-terminfo packages to ease installation via SSHnl67202020-07-111-0/+3
|
* Automatically boot the installation environment from syslinuxnl67202020-07-112-0/+6
| | | | Timeout is 3 seconds to match systemd-boot's configuration.
* Adding script to run archiso in qemuDavid Runge2020-07-102-0/+156
| | | | | | | | | | | scripts/run_archiso.sh: A script to run a built archiso image using qemu. It can run the image on an emulated BIOS (using seabios) or UEFI (using edk2-ovmf) system. .gitlab-ci.yml: Adding scripts/run_archiso.sh to shellcheck call. Closes #28
* Add amdgpu and mgag200 to the archiso_kms mkinitcpio hooknl67202020-07-011-0/+2
| | | | See https://wiki.archlinux.org/index.php/Kernel_mode_setting#Early_KMS_start .
* Allow systemd-networkd-wait-online to succeed with one interfacenl67202020-06-301-0/+3
| | | | | It is enough if one network interface is online, there is no need to wait for all of them. Without this, when connecting with Wi-Fi and leaving Ethernet disconnected, the network-online.target will get unnecessarily delayed.
* Fixing issues with variable quoting and arraysDavid Runge2020-06-302-25/+42
| | | | | | | | | | | | | archiso/mkarchiso: Calls to _pacman() need to be done with multiple parameters (e.g. array) instead of one string, as string splitting is not done in that function anymore. Turning _iso_efi_boot_args from string into an array to have an easier time of passing it to xorriso. Calling xorriso within the if statements instead of providing -quiet via variable. Fixing command_install() to provide packages separately to _pacman() configs/releng/build.sh: Replacing all newlines when retrieving the packages from packages.x86_64 with spaces so they will be properly provided to "mkarchiso install".
* Move choose-mirror script to /usr/local/bin/nl67202020-06-303-1/+2
| | | | | | /etc/systemd/scripts/ is not a standard directory. Run shellchek on the choose-mirror script.
* Do not download a mirrorlist durring buildnl67202020-06-301-3/+0
| | | | Pacman's mirrolist will be updated by reflector.service in the live system.
* Add reflector and enable reflector.servicenl67202020-06-303-0/+44
| | | | | reflector.service will update pacman's mirrorlist after a network connection is established in the live system. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/26 .
* Standardizing boot loader entry formatDavid Runge2020-06-304-10/+10
| | | | | | | | | | | {configs/releng/efiboot/loader/entries/archiso-x86_64-{cd,usb}.conf,configs/releng/syslinux/archiso_{pxe,sys}.cfg}: Standardizing the boot loader entry format by switching all entries to the form: "Arch Linux install medium (<CARCH>[, <PROPERTY>])". This removes the distinction between "CD" and "USB" when booting in UEFI "el-torito" (as the information is not useful). Changing some of the syslinux help text as well to reflect this change. This also drops the specific <CARCH> from the syslinux help text as it is duplicated information. Closes #24
* Add efibootmgrnl67202020-06-301-0/+1
| | | | It was previously pulled in as a dependency of refind. Now that refind is removed, add efibootmgr explicitly.
* Add back lsscsinl67202020-06-301-0/+1
| | | | It cannot be fully replaced by lsblk.
* Clear the screen after syslinux exitsnl67202020-06-302-0/+3
| | | | Reduce the time where boot loader artifacts linger on screen after the boot loader has done its job.
* Set timezone from outside chrootnl67202020-06-302-2/+1
|
* Enable systemd units with symlinks instead of doing it via systemctl in chrootnl67202020-06-3010-3/+9
|
* Use drop-in files for journald and logind configurationnl67202020-06-303-5/+6
|
* Introducing shellcheck in gitlab CIDavid Runge2020-06-295-141/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | archiso/mkarchiso: Quoting all variables. Changing pkg_list to be an array instead of a string for easier handling. Using read to properly populate pkg_list from OPTARG with stripped whitespaces. Not exporting iso_label anymore as there seems to be no reason to do so. Introducing line breaks. .editorconfig: Setting max_line_length to 120. Adding a section for YAML files (e.g. .gitlab-ci.yml). configs/releng/build.sh Quting nearly all variables. Introducing line breaks. configs/baseline/build.sh: Quoting all variables. Introducing line breaks. .gitlab-ci.yml: Adding gitlab CI for shelleck linting of the config build scripts, mkarchiso and startup scripts in releng. Closes #19
* IPv6 DHCPDavid Runge2020-06-292-4/+2
| | | | | | | | | configs/releng/airootfs/etc/systemd/network/20-{ethernet,wirless}.network: Making sure that systemd-networkd enables DHCP capabilities also for IPv6 ('DHCP=yes' and unsetting IPv6AcceptRA - see `man 5 systemd.network` for further information). Closes #23
* Adding systemd-resolvconfDavid Runge2020-06-241-0/+1
| | | | | | | | | | configs/releng/packages.x86_64: Due to dropping netctl from the image, no packgae currently directly pulls in a resolvconf provider. The systemd-resolvconf package is compatible with systemd-resolved which is in use on the image now and the preferred choice. Closes #22
* Enabling iwdDavid Runge2020-06-241-0/+1
| | | | | | | | configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service: Adding a symlink to /usr/lib/systemd/system/iwd.service to enable iwd in airootfs (and thus on the image). Closes #18
* Removin unneeded packagesDavid Runge2020-06-231-6/+0
| | | | | | | | | | | | | | | configs/releng/packages.x86_64: Removing packages: * grub :rescue/ installation actions for grub should be run from within a chroot * lsscsi: lsblk provides the same functionality * netctl: we have systemd-networkd enabled by default * ntp: we have systemd-timesyncd * refind: rescue/ installation actions for refind should be run from within a chroot * vi: we have vim Closes #15
* Fixing ownership in airootfs customizationDavid Runge2020-06-231-1/+1
| | | | | | | | | | | | | | configs/releng/build.sh: Fixing wrong ownership of files when copying overlay modifications from the config's airootfs directory to the working directory in make_customize_airootfs() by using the cp flag '--no-preserve=ownership'. Thanks to Marcos Mello and Francois Dupoux of sysresccd (https://gitlab.com/fdupoux/sysresccd-src) for making this fix available. Closes #11
* Adding nvme-cli to package listDavid Runge2020-06-231-0/+1
| | | | | | | | configs/releng/packages.x86_64: Adding nvme-cli to the list of packages for working with NVME drives in a live environment (as discussed in FS#63769). Closes #20
* Removing wget in favor of curlDavid Runge2020-06-232-2/+1
| | | | | | | | | | | | configs/releng/airootfs/root/.automated_script.sh: Replacing wget with curl for the use-case of downloading a pre-specified remote startup script (changing flags where needed). configs/releng/packages.x86_64: Removing wget from the list of installed packages, as .automated_script.sh was the only reason for it being installed. Closes #16