**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
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!
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.
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.
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.
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#7Closes#3
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
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.
/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.
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.
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.
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.
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".
{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
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
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
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
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