Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-01-31Update my email in AUTHORSSven-Hendrik Haase
2021-01-31rm un-used set_image() dupe of check_image() in run_archiso.shMichael Vorburger
2021-01-31add vorburger to AUTHORS.rstMichael Vorburger.ch
2021-01-29Support setting more variables in profiledef.sh and rework the way overrides ↵nl6720
are applied - Apply overrides before validating the options. - Parse all paths with realpath. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/84 .
2021-01-27add cloud-init to baselineMichael Vorburger
2021-01-27make baseline have working ethernet networking, like relengMichael Vorburger
2021-01-27add SSH server to baselineMichael Vorburger
inspired by https://wiki.archlinux.org/index.php/Archiso#Prepare_an_ISO_for_an_installation_via_SSH
2021-01-27use same airootfs_image_tool_options in baseline as in relengMichael Vorburger
2021-01-27configs/releng: move the mirror uncommenting sed command from ↵nl6720
customize_airootfs.sh to a pacman hook After pacman-mirrorlist is installed, /etc/pacman.d/hooks/uncomment-mirrors.hook will run a sed command which uncomments all Server lines in /etc/pacman.d/mirrorlist. This brings us another step closer to the complete removal of customize_airootfs.sh. Related to https://gitlab.archlinux.org/archlinux/archiso/-/issues/21 .
2021-01-26archiso_pxe_common: remove resolv.conf before copyChristian Hesse
Booting via PXE we want to keep our DNS configuration. So remove /etc/resolv.conf in new root before copying the current file. Without this systemd-resolved fallback nameservers are used and we see an error message when the root ships a symbolic link to systemd-resolved's stub-resolv.conf: cp: not writing through dangling symlink '/new_root/etc/resolv.conf'
2021-01-26mkarchiso: add version informationChristian Hesse
To date the iso version was used for iso volume information and iso file name. In my custom builds I do use it a lot more: * Inside the root fs: The system knows about its own version. I use this to: -> report the version to a server (poor man's inventory) -> let the system update itself * On the iso fs: The files are served via rsync, running systems transfer version file first to check for available update. * A grub environment file on the iso fs: Booting the iso from grub allows to create cow directory per version: loopback loop archlinux.iso load_env -f (loop)/arch/grubenv linux (loop)/arch/boot/x86_64/vmlinuz-linux ... \ cow_directory=archlinux/${VERSION} ... So let's just create these files.
2021-01-23mkarchiso: fix typosChristian Hesse
2021-01-23lint ALL (future) scripts/*.sh, not just run_archiso.shMichael Vorburger
2021-01-23add -c => -cdrom cloud-init.iso support to run_archiso.shMichael Vorburger
Co-authored-by: nl6720 <nl6720@gmail.com>
2021-01-23add cloud-init files to .gitignore (and loosen out/ and work/)Michael Vorburger
2021-01-23make run_archiso forward VM's port 22 to host 60022, for easy SSH testingMichael Vorburger
2021-01-23enable SSH server in releng profileMichael Vorburger
2021-01-23add cloud-init to relengMichael Vorburger
2021-01-23add VNC support to run_archiso.shMichael Vorburger
Usage: Launch run_archiso.sh -v ..., and then use a VNC viewer (e.g. from https://wiki.archlinux.org/index.php/List_of_applications/Internet#Remote_desktop) to connect (typically to `localhost`) on the default VNC port (5900). This enables using run_archiso in a "headless" session; e.g. when SSH logged in to the CLI of a VM, without a local display attached. This is handy e.g. when playing https://en.wikipedia.org/wiki/Inception and running an archlinux*.iso on any non-Arch (say Fedora workstation), on which one built a new ISO, that you then "run_archiso", inside which you could build another ISO, which you could itself start inside the nested VM... ;-) Jokes apart, this could also be used to run automated CI/CD tests of the built ISO, which is particularly interesting in combination with the cloud-init support; see https://wiki.archlinux.org/index.php/Cloud-init. see https://bugs.archlinux.org/task/69142
2021-01-07Combine sed commands to reduce file writesnl6720
2020-12-26profiledef.sh: Remove www. from archlinux.orgnl6720
See https://lists.archlinux.org/pipermail/arch-devops/2020-December/000474.html .
2020-12-01configs/releng/syslinux/archiso_pxe-linux.cfg: add missing /boot to initrd ↵nl6720
file path Fixes https://bugs.archlinux.org/task/68803 .
2020-11-30Fix issues with file ownerships/modesDavid Runge
archiso/mkarchiso: Make sure to always compare absolute paths in `_make_custom_airootfs()` (as `realpath` is used). Remove `echo` calls that prevent the setting of actual file ownerships and modes. configs/releng/profiledef.sh: Set file mode of /root/.automated_script.sh to 755. Fixes #82
2020-11-30Keep all SYSLINUX files in /syslinuxnl6720
This gets rid of the duplicate ldlinux.c32 and the useless isolinux.cfg which only points to syslinux.cfg. Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/46 .
2020-11-30Prevent path traversal outside of $airootfs_dirnl6720
2020-11-30Allow specifying ownership and mode of custom airootfs files and directoriesnl6720
profiledef.sh can now contain an associative array called file_permissions which can be used to set custom ownership and mode of custom airootfs files. The array's keys contain the path and the value is a colon separated list of owner UID, owner GID and access mode. For example: file_permissions=( ["/etc/shadow"]="0:0:400" ) This means that mkarchiso now copies airootfs files (and directores) without permissions and anything that should be owned by a user other than root and/or if the mode should be something other than 644 for files and 755 for directories must to be listed in ${file_permission[@]} in profiledef.sh. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/61 .
2020-11-18Reset network interfaces at the end of the PXE boot to allow DHCP to runfdupoux
2020-11-18Fix evaluation bugs in mkarchisoDavid Runge
archiso/mkarchiso: Guard the call to `_mksignature()` in `_prepare_airootfs_image()` by an if statement. Using the `&&` logic leads to `_prepare_airootfs_image()` evaluating to false if `$gpg_key` is not set. Add `_msg_info()` calls to `_set_override()` which prevent the function from evaluating to false if no override is being done. Additionally this is great for debugging purposes. Add `_msg_info()` calls to `_read_profile()` (which is great for debugging purposes). Fixes #81
2020-11-17Use official archlinux Docker imageSven-Hendrik Haase
archlinux/base is being deprecated anyway.
2020-11-14mkarchiso: add xorrisofs options from boot mode specific functions instead ↵nl6720
of hardcoding them in _build_iso
2020-11-14mkarchiso: validate profile right after reading itnl6720
Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/76 .
2020-11-14mkarchiso: general cleanup and simplificationnl6720
- Remove remnants of the now removed legacy commands. - Improve readability by getting rid of some "if" statements when performing string comparisons. - Rename functions to make their purpose more clear. - Move some conditions from functions to their invocations.
2020-11-03Use better xz optionsSven-Hendrik Haase
Default: 732M With these options: 675M
2020-11-01configs/releng/packages.x86_64: add fatresize, gpart and tmuxnl6720
- fatresize is a utility to resize FAT filesystems using libparted. - gpart is partition table rescue/guessing tool. - tmux is a terminal multiplexer. Requested in https://bugs.archlinux.org/task/68252 .
2020-10-31Set syslinux bootloader timeout to 15sDavid Runge
configs/releng/syslinux/archiso_sys.cfg: Set the syslinux bootloader timeout to 15s. In !97 it has accidentally been set to 1.5s.
2020-10-31Set bootloader timeouts to 15sDavid Runge
configs/releng/efiboot/loader/loader.conf, configs/releng/syslinux/archiso_sys.cfg: Set the bootloader timeout to 15s, as they have been set to an overly generous 30s in !79. Fixes #80
2020-10-30Configure the image type and image creation options using profiles (#54)fdupoux
2020-10-29fix a typo, add myself in AUTHORS.rstAlexander Epaneshnikov
2020-10-29Add accessibility support based on option flagDavid Runge
scripts/run_archiso.sh: Add the `-a` option flag to add accessibility support on demand for `run_archiso`. Add accessibility specific options to qemu in `run_image()`. Not providing the specific braille chardev hardware otherwise blocks running run_archiso with `qemu-system-x86_64: -chardev braille,id=brltty: brlapi__openConnection: connect: No such file or directory`. Fixes #77
2020-10-29Fix linter errors in livecd-soundDavid Runge
configs/releng/airootfs/usr/local/bin/livecd-sound: Replace oldstyle expr with a bash test in `is_numeric()`. Replace use of `nword()` with call to `wc -w`. Quote variables in `pick_a_card()`. Fixes #78
2020-10-29implement accessibility support in archisoAlexander Epaneshnikov
this fixes #67
2020-10-29Add modconf to HOOKS array in mkinitcpio.confnl6720
The default mkinitcpio.conf includes modconf in HOOKS.
2020-10-29configs/releng/packages.x86_64: add squashfs-tools and udftoolsnl6720
- squashfs-tools can be used for system backup. https://wiki.archlinux.org/index.php/Full_system_backup_with_SquashFS - udftools is needed to format UDF file systems.
2020-10-29Remove build.sh support from profiles and mkarchisoDavid Runge
configs/{baseline,releng}/build.sh: Remove `build.sh` scripts. They were deprecated with v47. archiso/mkarchiso: Remove all `build.sh` related functionality (i.e. `command_pkglist()`, `command_iso()`, `command_prepare()`, `command_install()`, `command_init()`, `command_run()`). Rename `command_build_profile()` to `_build_profile()` to be more in line with the style of the other function naming. Change `_show_config()` to only print info about the profile and make no more use of parameters. Remove all help output related to legacy `build.sh` commands. Fixes #51
2020-10-29Add documentation about how to create profilesDavid Runge
README.profile.rst: Add information on all necessary components of a profile: * profiledef.sh * packages.arch * airootfs/ * efiboot/ * isolinux/ * syslinux/ Fix wording for pacman.conf documentation README.rst: Add a link to README.profile.rst. Fixes #38
2020-10-25run_archiso: fixup !86Alexander Epaneshnikov
forgot to enable USB support.
2020-10-24run_archiso: add braille supportAlexander Epaneshnikov
necessary for testing brltty in archiso
2020-10-24configs/baseline: support UEFInl6720
2020-10-24Set CacheDir and HookDir for profile more sanelyDavid Runge
archiso/mkarchiso: Change `_pacman()` to use the *modified* pacman.conf from the work_dir, instead of using the *unmodified* pacman.conf from the profile. Change `_make_pacman_conf()` to compare the system's and the profile's CacheDir setting and use the profile's CacheDir setting only if it's not the default and not the same as the system's. Always set the HookDir to the airootfs' override directory, so that no hooks from the host system are being run. Remove DBPath, LogFile and RootDir settings from the work_dir pacman.conf as they are otherwise referring to the host system, **even if** pacman is being called with the `-r` flag. Fix a typo in _make_custom_airootfs(). README.profile.rst: Add information about the pacman.conf in a profile and how configuration options behave, when used by mkarchiso. Fixes #73 Fixes #74
2020-10-24Move FAT image to a separate partition outside the ISO 9660 file systemnl6720
Support bios.syslinux.eltorito boot mode without bios.syslinux.mbr. bios.syslinux.mbr does not work without bios.syslinux.eltorito because -isohybrid-mbr requires the El Torito boot image. Support uefi-x64.systemd-boot.esp boot mode without uefi-x64.systemd-boot.eltorito and vice versa. If uefi-x64.systemd-boot.eltorito is used without uefi-x64.systemd-boot.esp, the El Torito boot image will be placed in the ISO 9660 file system as before. Note that an ISO created with only uefi-x64.systemd-boot.eltorito will still be bootable as a "hard disk" on OVMF. OVMF will boot the El Torito image. This change has the following effect on the partition tables: - *.eltorito options add El Torito boot catalog entries. MBR and GPT are not affected. - uefi-x64.systemd-boot.esp creates a protective MBR partition table and a GPT table that includes a Linux filesystem data partition for the ISO 9660 volume, an EFI system partition and a Microsoft basic data partition that maps the 300 KiB padding added by xorriso. - bios.syslinux.mbr (without uefi-x64.systemd-boot.esp): adds a MBR partition table and maps the ISO 9660 volume as a partition of type 0x83. No GPT is produced. - bios.syslinux.mbr (with uefi-x64.systemd-boot.esp): adds an second partition in the MBR (after 0xEE) starting from sector 0 to sector 1 with type 0 and marks it as bootable. This violates the GPT specification, but allows some systems to succesfully boot in BIOS mode from GPT. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/49