Age | Commit message (Collapse) | Author |
|
.gitlab/ci/build-host.sh:
Set shebang to /usr/bin/env bash to be more portable/flexible.
Turn all posix statements ([]) to bash style statements ([[]]), as we are using bash.
Terminate the list of parameters to rm or cp with --.
Replace the implementation of finding a local ISO to use with one that relies on a sorted list of potential images.
Use virtio-net-pci for networking with qemu.
Set the cow_spacesize to 4G for the archiso environment.
Use --needed in the call to pacman to not re-install already up-to-date targets.
Attempt a full system upgrade (but ignore the kernel).
Increase the timeout for when installing packages to the archiso environment using pacman to 120s, as a system upgrade
is being done as well.
Use systemctl poweroff -i to shut down the virtual machine as it is more future proof and robust.
|
|
.gitlab-ci.yml:
Add a build stage to the gitlab CI, that facilitates the scripts below .gitlab/ci/, building the baseline and releng
profiles in parallel.
Distinguish the use-case in which builds are done for master, schedules and tags in a secure environment and any other
where builds just have to be fast (for ensuring nothing is broken).
Use MiB as block size for the du call when generating data for the metrics file.
|
|
Makefile:
Add scripts below .gitlab/ci/ to the lint target of the Makefile.
|
|
.gitlab/ci/build-host.sh:
Add script to be run in a container with access to qemu.
It is a slight modification of arch-boxes' build-host.sh script to cater to the specific archiso requirements.
.gitlab/ci/build-inside-vm.sh:
Add script to be run in virtualized environment, established by build-host.sh.
This script builds the actual archiso profiles and creates checksum for the resulting image files.
|
|
This finally removes customize_airootfs.sh from releng.
Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/21 .
|
|
airootfs after they run
This works around https://bugs.archlinux.org/task/49347 .
Leaving the hooks in the airootfs image will result in it being run when pacstrap is run in the live environment. This should not happen as they are intended for the ISO build process only.
Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/91 .
|
|
|
|
|
|
|
|
are applied
- Apply overrides before validating the options.
- Parse all paths with realpath. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/84 .
|
|
|
|
|
|
inspired by https://wiki.archlinux.org/index.php/Archiso#Prepare_an_ISO_for_an_installation_via_SSH
|
|
|
|
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 .
|
|
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'
|
|
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.
|
|
|
|
|
|
Co-authored-by: nl6720 <nl6720@gmail.com>
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
See https://lists.archlinux.org/pipermail/arch-devops/2020-December/000474.html .
|
|
file path
Fixes https://bugs.archlinux.org/task/68803 .
|
|
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
|
|
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 .
|
|
|
|
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 .
|
|
|
|
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
|
|
archlinux/base is being deprecated anyway.
|
|
of hardcoding them in _build_iso
|
|
Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/76 .
|
|
- 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.
|
|
Default: 732M
With these options: 675M
|
|
- 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 .
|
|
configs/releng/syslinux/archiso_sys.cfg:
Set the syslinux bootloader timeout to 15s.
In !97 it has accidentally been set to 1.5s.
|
|
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
|
|
|
|
|
|
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
|
|
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
|
|
this fixes #67
|
|
The default mkinitcpio.conf includes modconf in HOOKS.
|
|
- 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.
|
|
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
|