aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* configs/releng: start DHCP client for mobile broadbandnl67202021-03-261-0/+15
| | | | | | Add /etc/systemd/network/20-wwan.network Related to #110.
* configs/releng: rename 20-wireless.network to 20-wlan.networknl67202021-03-261-0/+0
| | | | The file is limited to Wi-Fi (Type=wlan in networkd configuration).
* Update ↵nl67202021-03-262-6/+10
| | | | | | | configs/releng/airootfs/etc/systemd/network/20-{ethernet,wireless}.network * Match the device type instead of the interface name. * Replace DHCP section with DHCPv4/DHCPv6. systemd split the sections.
* mkarchiso: do not set default mksquashfs optionsnl67202021-03-262-7/+1
| | | | | | Remove hardcoded '-comp xz', it prevents using mksquashfs defaults. Fixes #112.
* .gitlab/ci/build-host.sh: install erofs-utilsnl67202021-03-261-1/+1
| | | | Allow building ISOs with EROFS airootfs images in CI.
* .gitlab/ci/build-host.sh: Do not upgrade packages with files in ↵nl67202021-03-211-1/+1
| | | | | | /usr/lib/modules/ Packages with files in /usr/lib/modules/ depend on the current kernel, thus they should not be updated.
* Recursively change file permissions for folders listed in profiledef.shMichael Gilchrist2021-03-212-3/+8
| | | | | - if a folder listed in the associative array ends with a "/", recursively apply chmod and chown.
* add a sound card firmwareAlexander Epaneshnikov2021-03-141-0/+1
|
* .gitlab-ci.yml: do not use build:secure on forksnl67202021-03-141-6/+6
| | | | | | Forks may not have access to secure runners. Restrict build:secure to https://gitlab.archlinux.org/archlinux/archiso/ only. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/106 .
* .gitlab/ci/build-host.sh: increase mksquashfs timeout to 40 minutesnl67202021-03-141-1/+1
| | | | Some mksquashfs runs take a very long time and 1000 seconds might not be enough.
* Create zsync control file for delta downloadsJonathon Fernyhough2021-03-142-1/+11
|
* Support EROFSnl67202021-03-096-12/+85
| | | | | | | | | EROFS, like Squashfs, is a read-only file system. It can be used to store airootfs in an image file. Its advantage is the support for POSIX ACLs. EROFS downside is that currently it only supports LZ4 compression (LZMA support is not yet fully implemented). A difference from Squashfs is that, EROFS stores change time (ctime) not modification time (mtime). The reverse is true for Squashfs. Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/59
* archiso/initcpio/hooks/archiso: remove redundant /sfs/ from airootfs mount pointnl67202021-03-091-4/+5
| | | | Remove /run/archiso/bootmnt directory if nothing is mounted there. An empty directory is just confusing.
* releng: Add usbmuxd to list of packagesDavid Runge2021-02-161-0/+1
| | | | | | | | configs/releng/packages.x86_64: Add usbmuxd to list of packages, so that users have the option to use iOS devices out-of-the-box for data connection during installation. Fixes #99
* Remove havegedKristian Klausen2021-02-162-3/+0
| | | | | | | | | | | | | | | | | | | haveged was added 8 years ago[1] to increase entropy and presumably to prevent entropy starvation. A few things has changed since, most notable: * the kernel actively tries to add entropy (jitter entropy)[2][3][4][5] * /dev/random no longer blocks after CRNG initialization[6][7] [1] d7e790d ("Initialize pacman keyring on bootup") [2] https://github.com/torvalds/linux/commit/3f2dc2798b81531fd93a3b9b7c39da47ec689e55 [3] https://github.com/torvalds/linux/commit/50ee7529ec4500c88f8664560770a7a1b65db72b [4] https://lore.kernel.org/lkml/alpine.DEB.2.21.1909290010500.2636@nanos.tec.linutronix.de/T/ [5] https://lwn.net/Articles/800509/ [6] https://github.com/torvalds/linux/commit/30c08efec8884fb106b8e57094baa51bb4c44e32 [7] https://lwn.net/Articles/808575/ Fix #98
* .gitlab-ci.yml: use correct units for image size descriptionnl67202021-02-061-1/+1
| | | | | | `du --block-size=MiB` (and `du -m`) returns mebibytes not megabytes. Additionally, shorten the du command. `du --block-size=MiB` is the same as `du -m`.
* Add changelog fileDavid Runge2021-02-011-0/+31
| | | | | CHANGELOG.rst: Add file to track changes (at least for v51).
* build-host.sh: Style and syntax fixesDavid Runge2021-01-311-17/+25
| | | | | | | | | | | | | | | | | | | .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.
* Add build stage for continuous integrationDavid Runge2021-01-311-4/+45
| | | | | | | | | | .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.
* Add continuous integration scripts to lintingDavid Runge2021-01-311-0/+1
| | | | | Makefile: Add scripts below .gitlab/ci/ to the lint target of the Makefile.
* Add scripts for continuous integrationDavid Runge2021-01-312-0/+188
| | | | | | | | | | .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.
* configs/releng: move locale-gen from customize_airootfs.sh to a pacman hooknl67202021-01-312-10/+13
| | | | | | This finally removes customize_airootfs.sh from releng. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/21 .
* config/releng: remove pacman hooks specific to ISO build process from ↵nl67202021-01-312-0/+19
| | | | | | | | | 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 .
* Update my email in AUTHORSSven-Hendrik Haase2021-01-311-1/+1
|
* rm un-used set_image() dupe of check_image() in run_archiso.shMichael Vorburger2021-01-311-12/+0
|
* add vorburger to AUTHORS.rstMichael Vorburger.ch2021-01-311-0/+1
|
* Support setting more variables in profiledef.sh and rework the way overrides ↵nl67202021-01-291-89/+133
| | | | | | | are applied - Apply overrides before validating the options. - Parse all paths with realpath. Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/84 .
* add cloud-init to baselineMichael Vorburger2021-01-275-0/+5
|
* make baseline have working ethernet networking, like relengMichael Vorburger2021-01-276-0/+22
|
* add SSH server to baselineMichael Vorburger2021-01-273-0/+118
| | | | inspired by https://wiki.archlinux.org/index.php/Archiso#Prepare_an_ISO_for_an_installation_via_SSH
* use same airootfs_image_tool_options in baseline as in relengMichael Vorburger2021-01-271-0/+1
|
* configs/releng: move the mirror uncommenting sed command from ↵nl67202021-01-272-2/+12
| | | | | | | | | 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 .
* archiso_pxe_common: remove resolv.conf before copyChristian Hesse2021-01-261-0/+1
| | | | | | | | | | | 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'
* mkarchiso: add version informationChristian Hesse2021-01-262-1/+23
| | | | | | | | | | | | | | | | | | | | | | 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.
* mkarchiso: fix typosChristian Hesse2021-01-231-2/+2
|
* lint ALL (future) scripts/*.sh, not just run_archiso.shMichael Vorburger2021-01-231-1/+1
|
* add -c => -cdrom cloud-init.iso support to run_archiso.shMichael Vorburger2021-01-231-1/+13
| | | | Co-authored-by: nl6720 <nl6720@gmail.com>
* add cloud-init files to .gitignore (and loosen out/ and work/)Michael Vorburger2021-01-231-2/+5
|
* make run_archiso forward VM's port 22 to host 60022, for easy SSH testingMichael Vorburger2021-01-231-1/+1
|
* enable SSH server in releng profileMichael Vorburger2021-01-231-0/+1
|
* add cloud-init to relengMichael Vorburger2021-01-235-0/+5
|
* add VNC support to run_archiso.shMichael Vorburger2021-01-231-3/+9
| | | | | | | | | | | | | | | | | | | 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
* Combine sed commands to reduce file writesnl67202021-01-071-8/+5
|
* profiledef.sh: Remove www. from archlinux.orgnl67202020-12-262-2/+2
| | | | See https://lists.archlinux.org/pipermail/arch-devops/2020-December/000474.html .
* configs/releng/syslinux/archiso_pxe-linux.cfg: add missing /boot to initrd ↵nl67202020-12-011-1/+1
| | | | | | file path Fixes https://bugs.archlinux.org/task/68803 .
* Fix issues with file ownerships/modesDavid Runge2020-11-302-4/+4
| | | | | | | | | | | 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
* Keep all SYSLINUX files in /syslinuxnl67202020-11-3014-130/+64
| | | | | | 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 .
* Prevent path traversal outside of $airootfs_dirnl67202020-11-301-9/+20
|
* Allow specifying ownership and mode of custom airootfs files and directoriesnl67202020-11-304-24/+36
| | | | | | | | | | | | | 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 .
* Reset network interfaces at the end of the PXE boot to allow DHCP to runfdupoux2020-11-181-4/+5
|