Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-02-02configs/*/grub/grub.cfg: search for a .uuid file in /.disk/ and use the ↵nl6720
volume it's on Search for `/.disk/%UUID_SEARCH_FILENAME%.uuid` and pass the UUID of the volume it's on as `archisodevice`. mkarchiso will replace `%UUID_SEARCH_FILENAME%` with a hardcoded value generated using `SOURCE_DATE_EPOCH` durring ISO build. This allows to prepare an UEFI bootable installation medium by simply copying the directory structure without having to touch `grub.cfg`. Relying on the volume UUID instead of its LABEL also avoids collisions of multiple ISOs created in the same month. Fixes #202
2023-02-02mkarchiso: write a .uuid file to /.disk/ on ISO 9660 to allow GRUB to search ↵nl6720
for it Create a `/.disk/INSERT_UUID_HERE.uuid` file to implement something called "file system transposition". See https://www.mail-archive.com/grub-devel@gnu.org/msg34346.html for the proposal of it for grub-mkrescue. This will allow GRUB to search for the volume containing the file instead of hardcoding the ISO volume label or another file system or partition attribute in GRUB configuration. By only relying on the directory structure simplifies supporting medium preparation methods with manual partitioning such as https://wiki.archlinux.org/title/USB_flash_installation_medium#In_GNU/Linux_4
2023-01-29Update URLsnl6720
* Update mkinitcpio-archiso project link, * Update code of conduct link, * Update arch-releng mailing list link, * Use HTTPS where possible, * Replace dead link.
2022-12-24Add changelog for 69nl6720
2022-12-24Merge remote-tracking branch 'origin/merge-requests/304'nl6720
By Alexander Speshilov * origin/merge-requests/304: fix typo in README.profile.rst See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/304
2022-12-24Merge remote-tracking branch 'origin/merge-requests/303'nl6720
By Christian Hesse * origin/merge-requests/303: archiso/mkarchiso: write "uninitialized" to /etc/machine-id See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/303
2022-12-22fix typo in README.profile.rstAlexander Speshilov
2022-12-22archiso/mkarchiso: write "uninitialized" to /etc/machine-idChristian Hesse
This is a new value introduced in systemd v247. It makes sure a new machine-id is generated, but is handled as first boot as well. See "First Boot Semantics" in machine-id(5) for details.
2022-12-17configs/baseline/profiledef.sh: use LZMA compression for the EROFS imagenl6720
Now that xz 5.4 is out and erofs-utils is built with LZMA support, it is possible to compress the EROFS image with LZMA for higher compression. `mkfs.erofs` trows a few warnings about using experimental features, but they should not be an issue. Nothing changes for the releng profile, for now at least.
2022-12-10configs/releng/syslinux/archiso_pxe-linux.cfg: replace checksum and verify ↵nl6720
with cms_verify=y Specify `cms_verify=y` in SYSLINUX/PXELINUX configuration to use OpenSSL CMS based method for verifying the root file system image against the code signing certificates in the initramfs. `checksum` and `verify` are removed since they essentially serve the same purpose and performing all the checks just needlessly delays boot. Additionally, the removal of `verify` allows to build the ISO without gpg, i.e. without using `mkarchiso`'s `-g` and `-G` options. Fixes #200
2022-12-10mkarchiso: check if the code signing files specified with option -c existnl6720
Look for the files in `*_validate_options` and error out early if they do not exist.
2022-12-06mkarchiso: open the ARCHISO_GNUPG_FD, ARCHISO_TLS_FD and ARCHISO_TLSCA_FD ↵nl6720
file descriptors only for reading Nothing should ever be written to these files, so let's make sure it cannot happen.
2022-12-06mkarchiso: do not try to use an non existent GPG public key filenl6720
The `bootstrap` build mode never calls `_export_gpg_publickey`, so even if the GPG key is passed with the `-g` option and thus the `gpg_key` variable is set, the `${work_dir}/pubkey.gpg` file will not exist. This has not caused any issue so far because the `ARCHISO_GNUPG_FD` file descriptor opens the file for both reading and writing, which means the file gets created if it does not exist. Assign the exported public key file name to a `gpg_publickey` variable in `_export_gpg_publickey` and check for it when the file is used. Since the exist status of the gpg command cannot be checked, look for the exported public key file instead.
2022-12-06mkarchiso: disable shellcheck warning when searching an arraynl6720
The warning about SC2076 does not apply here.
2022-12-06Merge remote-tracking branch 'origin/merge-requests/298'nl6720
By Jonathan Liu * origin/merge-requests/298: Add Memtest86+ to x86_64 UEFI GRUB boot menu See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/298
2022-12-03Add Memtest86+ to x86_64 UEFI GRUB boot menuJonathan Liu
Implements #203.
2022-11-12configs/releng/airootfs/root/.zlogin: use grep -a to ensure /proc/cmdline is ↵nl6720
treated as text This protects against the case where /proc/cmdline contains garbage triggering grep to think it is a binary. See e.g. https://bugs.archlinux.org/task/76468 for an example.
2022-10-30Add changelog for 68nl6720
2022-10-25configs/releng/airootfs/etc/mkinitcpio.conf: replace the deprecated ↵nl6720
archiso_kms hook with kms The archiso_kms hook was moved from mkinitcpio-archiso to the mkinitcpio project. See https://github.com/archlinux/mkinitcpio/commit/7bfe4861eacb3bf6cb70d9a17a0262542733a8ed and https://gitlab.archlinux.org/mkinitcpio/mkinitcpio-archiso/-/commit/dec17db5324285118e2faee296cc990ff1281bd8
2022-10-22configs/: remove "Copy to RAM" boot entries since it is automatic nownl6720
The default is now copytoram=auto which enables copying to RAM when the rootfs image size is less than 4 GiB and free RAM exceeds the rootfs image size + 2 GiB. See https://gitlab.archlinux.org/mkinitcpio/mkinitcpio-archiso/-/issues/13 and https://gitlab.archlinux.org/mkinitcpio/mkinitcpio-archiso/-/merge_requests/26. Implements #177.
2022-10-13mkarchiso: do not sign .sig filesnl6720
Make sure existing sig files are deleted before creating new ones and make sure to not sign any sig files. This allows retrying failed mkarchiso runs without ending up with files such as vmlinuz.ipxe.sig.ipxe.sig. Fixes #198
2022-10-06configs/: Do not explicitly enable qemu-guest-agent.servicenl6720
qemu-guest-agent.service will be started by the /usr/lib/udev/rules.d/99-qemu-guest-agent.rules udev rule. Fixes #199
2022-09-25Add changelog for version 67David Runge
CHANGELOG.rst: Add changelog for version 67.
2022-09-25Update PGP key ID for David RungeDavid Runge
README.rst: Change referenced PGP key ID from `C7E7849466FE2358343588377258734B41C31549` to `991F6E3F0765CF6295888586139B09DA5BF0D338`, as the latter is now in used. The keys are cross-signed and both available via Arch Linux's WKD.
2022-09-25Add the ability to generate rootfs signatures using openssl CMS module if ↵Anton Hvornum
``-c`` is given. (gitlab ci) Added a CA structure to the codesigning certificates. This to test the functionality of optional CA being in the signing message. (mkarchiso) Removed the ``sign_netboot_artifacts`` variable and instead we'll now rely on ``if [[ -v cert_list ]]; then``. Added ``ARCHISO_TLS_FD`` and ``ARCHISO_TLSCA_FD`` environment variables to override the certificates used. This is so that third party CA's can be used during building in a meaningful way without distrupting the CA trust that is shipped by default. _cms_sign_artifact() was added which signs the rootfs using OpenSSL CMS. The files will be saved as "${artifact}.cms.sig". That would be for instance "${isofs_dir}/${install_dir}/${arch}/airootfs.sfs.cms.sig".
2022-09-25Add changelog entry for ordering pacman-init after time-sync.targetDavid Runge
CHANGELOG.rst: Add changelog entry for ordering pacman-init after time-sync.target
2022-09-25Order pacman-init.service after time-sync.targetDavid Runge
configs/releng/airootfs/etc/systemd/system/pacman-init.service: Order pacman-init.service after time-sync.target, so that time on the host is synchronized before initializing pacman.
2022-09-25Enable systemd-timesyncd and systemd-time-wait-syncDavid Runge
configs/releng/airootfs/etc/systemd/system/{dbus-org.freedesktop.timesync1},sysinit.target.wants/systemd-timesyncd}.service: Enable systemd-timesyncd which aliases to dbus-org.freedesktop.timesync1 to ensure time gets synced on the host. configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service: Enable systemd-time-wait-sync to ensure time is finished syncing when time-sync.target is finished.
2022-09-22Merge remote-tracking branch 'origin/merge-requests/286'nl6720
By Tobias Powalowski * origin/merge-requests/286: remove ipw2100-fw and ipw2200-fw, cleanup of [core] https://lists.archlinux.org/archives/list/arch-dev-public@lists.archlinux.org/thread/UKXPJEJZPU5PFKAPSATNL2DSWFGNEUCK/ See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/286
2022-09-22remove ipw2100-fw and ipw2200-fw, cleanup of [core]Tobias Powalowski
2022-09-01Order pacman-init.service before archlinux-keyring-wkd-sync.servicenl6720
archlinux-keyring-wkd-sync.service needs an initialized pacman keyring to work. Add BindsTo=etc-pacman.d-gnupg.mount to stop pacman-init.service if the mount unit suddenly enters inactive state.
2022-08-28Add changelog for 66nl6720
2022-08-28Merge remote-tracking branch 'origin/merge-requests/281'nl6720
By Christian Hesse * origin/merge-requests/281: mkarchiso: touch clock-epoch for extra hint on date and time See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/281 While it feels dirty to place files in /usr/lib/, since it is the package manager's teritory, the path is unfortunately hardcoded. https://github.com/systemd/systemd/commit/5170afbc55d492f270c8948579324910c8c0b838
2022-08-26mkarchiso: touch clock-epoch for extra hint on date and timeChristian Hesse
This helps on systems with screwed or broken RTC.
2022-08-22Merge remote-tracking branch 'origin/merge-requests/277'nl6720
By Kristian Klausen * origin/merge-requests/277: Use VM runners[1] for building See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/277
2022-08-21Use VM runners[1] for buildingKristian Klausen
Building inside a TCG accelerated qemu VM is slow and painful, but it is the only option when running in a non-privileged container. arch-boxes has been built inside a KVM accelerated VMs ("VM runner") for over 11 months[2] and recently the MR[1] was merged into the infrastructure repo. With it now being a official part of arch's infrastructure we should switch to it and get much faster builds. Doing some quick testing, the whole pipeline is now roughly ~29-84 minutes faster (taking between 7-9 minutes, instead of 36-93 minutes). [1] https://gitlab.archlinux.org/archlinux/infrastructure/-/merge_requests/385 [2] https://gitlab.archlinux.org/archlinux/arch-boxes/-/commit/3bda5b26a675f241a1e0ba596dc94858839d96fc Fix #161
2022-08-19mkarchiso: preload more GRUB modules and disable shim_lock verifiernl6720
--disable-shim-lock is required to support Secure Boot with custom signatures without using shim. Otherwise GRUB will trow an error when trying to boot a kernel: error: shim_lock protocol not found. error: you need to load the kernel first. The modules GRUB will use need to be preloaded otherwise the EFI binaries cannot be signed and used for Secure Boot. See https://bugs.archlinux.org/task/71382. GRUB will trow en error: error: verification requested but nobody cares These changes are done to support Secure Boot using custom keys (not shim) by simply extracting the boot loader (BOOTx64.EFI and BOOTIA32.EFI), kernel, UEFI shell, signing them and then repacking the ISO. For example. Extract the files: $ osirrox -indev archlinux-YYYY.MM.DD-x86_64.iso \ -extract_boot_images ./ \ -extract /EFI/BOOT/BOOTx64.EFI BOOTx64.EFI \ -extract /EFI/BOOT/BOOTIA32.EFI BOOTIA32.EFI \ -extract /shellx64.efi shellx64.efi \ -extract /shellia32.efi shellia32.efi \ -extract /arch/boot/x86_64/vmlinuz-linux vmlinuz-linux Make the files writable: $ chmod +w BOOTx64.EFI BOOTIA32.EFI shellx64.efi shellia32.efi vmlinuz-linux Sign the files: $ sbsign --key db.key --cert db.crt --output BOOTx64.EFI BOOTx64.EFI $ sbsign --key db.key --cert db.crt --output BOOTIA32.EFI BOOTIA32.EFI $ sbsign --key db.key --cert db.crt --output shellx64.efi shellx64.efi $ sbsign --key db.key --cert db.crt --output shellia32.efi shellia32.efi $ sbsign --key db.key --cert db.crt --output vmlinuz-linux vmlinuz-linux Copy the boot loader and UEFI shell to the EFI system partition image: $ mcopy -D oO -i eltorito_img2_uefi.img BOOTx64.EFI BOOTIA32.EFI ::/EFI/BOOT/ $ mcopy -D oO -i eltorito_img2_uefi.img shellx64.efi shellia32.efi ::/ Repack the ISO using the modified El Torito UEFI boot image and add the signed boot loader files, UEFI shell and kernel to ISO9660: $ xorriso -indev archlinux-YYYY.MM.DD-x86_64.iso \ -outdev archlinux-YYYY.MM.DD-x86_64-Secure_Boot.iso \ -boot_image any replay \ -append_partition 2 0xef eltorito_img2_uefi.img \ -map BOOTx64.EFI /EFI/BOOT/BOOTx64.EFI \ -map BOOTIA32.EFI /EFI/BOOT/BOOTIA32.EFI \ -map shellx64.efi /shellx64.efi \ -map shellia32.efi /shellia32.efi \ -map vmlinuz-linux /arch/boot/x86_64/vmlinuz-linux Boot the resulting archlinux-YYYY.MM.DD-x86_64-Secure_Boot.iso.
2022-08-17mkarchiso: copy all GRUB files to the ISOnl6720
Do not limit file copying to only grub.cfg and instead copy all GRUB configuration files and assets to both the ISO9660 and FAT image. This will allow for including custom images, fonts, etc. To easily match all non-configuration files (i.e. files without the .cfg extension), bash's extended glob feature will be enabled. Actions common to multiple _make_bootmode_uefi-*.grub are split off into dedicated functions: * _make_common_bootmode_grub_copy_to_efibootimg, * _make_common_bootmode_grub_copy_to_isofs, * _make_common_bootmode_grub_cfg. Use the same du command in all efiboot_imgsize variable assignments. Fixes #185.
2022-08-07mkarchiso: unset LANGUAGEnl6720
LC_ALL=C.UTF-8, unlike LC_ALL=C, does not override LANGUAGE. See https://sourceware.org/bugzilla/show_bug.cgi?id=16621 and https://savannah.gnu.org/bugs/?62815
2022-07-17Merge remote-tracking branch 'origin/merge-requests/273'nl6720
* origin/merge-requests/273: Add efibootimg variable in place of full path See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/273
2022-07-16Add efibootimg variable in place of full pathPellegrino Prevete
Update authors Update CHANGELOG
2022-06-30Add changelog for 65nl6720
2022-06-26configs/*/grub/grub.cfg: enable serial input and outputnl6720
Try to initialize a serial device and use it for input and output. Add more comments to grub.cfg to explain what is done. Related to #75
2022-06-24mkarchiso: work arround GRUB's cmdpath having incorect case on some firmwarenl6720
Fixes #183
2022-06-23configs/*/grub/grub.cfg: auto-boot after 15 secondsnl6720
* Set the default boot entry and its timeout. * Add classes to menu entries to allow theming them. Fixes #179
2022-06-23Merge remote-tracking branch 'origin/merge-requests/266'nl6720
By Alexander Epaneshnikov * origin/merge-requests/266: change grub init tune Closes #180 See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/266
2022-06-18change grub init tuneAlexander Epaneshnikov
yes it was descriptive but too large. this fixes #180
2022-06-18mkarchiso: add SBAT metadata to grub-mkstandalone created EFI binariesnl6720
Even though archiso created ISOs do not support Secure Boot, having SBAT would allow users to more easily repack the files in the ISO to add a signed shim. Fixes #174
2022-06-18mkarchiso: improve commentsnl6720
* Fix typos and wording, * Remove impossible TODO.
2022-06-18configs/baseline/profiledef.sh: add `-E ztailpacking` to ↵nl6720
airootfs_image_tool_options for mkfs.erofs As the man page says, it saves more space, although the feature is experimental.