Commit graph

1445 commits

Author SHA1 Message Date
73c071b55c Removed os-release function 2024-12-22 11:00:05 +03:30
nl6720
a92371f940
Add changelog for 82 2024-11-27 11:27:47 +02:00
nl6720
0995113189
Remove DownloadUser from pacman.conf
`DownloadUser = alpm` does not appear to be suitable for mkarchiso use
since there is no guarantee that `alpm` user has access to the working
directory.

Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/232
Fixes: 691c57fc2e ("Update pacman.conf for pacman 7")
2024-11-22 12:29:13 +02:00
David Runge
d62e49b624
Add changelog entry for v81
Signed-off-by: David Runge <dvzrv@archlinux.org>
2024-10-28 17:11:47 +01:00
David Runge
a0af54f3a2
configs: Adapt enabled systemd services to changes in cloud-init 24.3
Adapt enabled services in both baseline and releng profiles to cope with
changes in cloud-init 24.3.

Related-to: https://gitlab.archlinux.org/archlinux/packaging/packages/cloud-init/-/issues/3
Related-to: https://github.com/canonical/cloud-init/pull/5489
Fixes: https://gitlab.archlinux.org/archlinux/archiso/-/issues/236
Signed-off-by: David Runge <dvzrv@archlinux.org>
2024-10-28 16:13:30 +01:00
David Runge
9fb735bf65 Merge branch 'fix/netcat-mess' into 'master'
Remove gnu-netcat from releng profile

Closes #234

See merge request archlinux/archiso!395
2024-10-27 08:52:29 +00:00
David Runge
ac80d83ebf
Remove gnu-netcat from releng profile
After adding openbsd-netcat to the list of dependencies for cloud-init,
we have to remove gnu-netcat from the releng profile, as both netcat
implementations conflict with one another.

Related-to: https://gitlab.archlinux.org/archlinux/packaging/packages/cloud-init/-/issues/3
Fixes: https://gitlab.archlinux.org/archlinux/archiso/-/issues/234
Signed-off-by: David Runge <dvzrv@archlinux.org>
2024-10-26 21:01:05 +02:00
nl6720
0aa64126a4
Add changelog for 80 2024-09-24 18:08:06 +03:00
nl6720
691c57fc2e
Update pacman.conf for pacman 7
Add new options from
https://gitlab.archlinux.org/archlinux/packaging/packages/pacman/-/blob/main/pacman.conf
2024-09-22 10:41:18 +03:00
nl6720
a0f7584e01
Merge remote-tracking branch 'origin/merge-requests/392'
By Tobias Powalowski
* origin/merge-requests/392:
  Update CHANGELOG.rst reflect remove of reiserfsprogs
  Remove reiserfsprogs (EOL)

See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/392
2024-09-22 10:40:18 +03:00
Tobias Powalowski
3d694b2e46 Update CHANGELOG.rst reflect remove of reiserfsprogs 2024-09-05 09:03:22 +00:00
Tobias Powalowski
989c41f291 Remove reiserfsprogs (EOL) 2024-09-05 07:13:12 +00:00
nl6720
bc9a91fe73
mkarchiso: support compressing the bootstrap tarball with xz
Despite usually preferring it, I somehow forgot about xz in
3b3984b484 ("mkarchiso: implement configurable bootstrap tarball compression")
2024-08-26 12:03:52 +03:00
nl6720
bf1c7ff041
configs/baseline/profiledef.sh: do not use mkfs.erofs extended options "fragments" and "dedupe"
These options are not compatible with multi-threaded compression and
actually increase the image file size.

With this change, the baseline profile's EROFS image file size is
reduced from 488 MiB to 398 MiB.
On my system, the compression time is reduced from about 2m6.274s to
1m59.410s when using erofs-utils built without multi-threaded
compression and to 0m27.883s when using erofs-utils built with
multi-threaded compression.
2024-08-26 11:53:29 +03:00
nl6720
6cd79e6505
mkarchiso: use an empty UUID for EROFS
The UUID is never used for anything, since the file system resides in a
file. Instead of generating a reproducible UUID for it, use
`00000000-0000-0000-0000-000000000000` instead.
2024-08-21 09:08:08 +03:00
nl6720
654e834f8c
mkarchiso: make bootstrap tarball extension part of the image_name
This shows the correct image file name in `_show_config` and simplifies
actions with the `image_name` in other functions.
2024-07-27 15:13:59 +03:00
nl6720
fa3aba32c8
Add changelog for 79 2024-07-24 10:55:48 +03:00
nl6720
88102d8b44
mkarchiso: remove unneeded workarounds in _mkairootfs_ext4+squashfs
* Do not run `tune2fs` on the image. The file system is not mounted, so
the default values for "Maximum mount count" (`tune2fs` option `-c`) and
"Check interval" (`tune2fs` option `-i`) are fine as is. With this change
the ext4 image is reproducible.
* Remove `E2FSPROGS_FAKE_TIME`. e2fsprogs 1.47.1 supports
`SOURCE_DATE_EPOCH` so setting this e2fsprogs specific variable is not needed
anymore.
See https://github.com/tytso/e2fsprogs/issues/131 for details.
2024-06-05 11:44:41 +03:00
nl6720
57589df1d6
Merge remote-tracking branch 'origin/merge-requests/386'
By Dariusz Pelowski
* origin/merge-requests/386:
  .automated_script.sh: add proper HTTP status checking

See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/386
2024-06-05 11:43:18 +03:00
Dariusz Pelowski
75e57093e6 .automated_script.sh: add proper HTTP status checking
When a download attempt fails with an HTTP error, the body of the failed
request will be written to the output file with a 0 exit status, causing the
execution of an error message as a script.

This issue is resolved by adding the --fail option to curl.

Co-authored-by: David Runge <dvzrv@archlinux.org>
2024-06-05 11:18:45 +03:00
nl6720
4b709bcd5f
Add changelog for 78 2024-05-23 10:58:18 +03:00
David Runge
2a5e4e3aa0 Merge branch 'remove-deps' into 'master'
configs/releng/packages.x86_64: Remove wezterm-terminfo

See merge request archlinux/archiso!384
2024-05-23 07:45:58 +00:00
David Runge
3c6cff25bb
configs/releng/packages.x86_64: Remove wezterm-terminfo
The wezterm-terminfo package is replaced by the ncurses package.

Signed-off-by: David Runge <dvzrv@archlinux.org>
2024-05-22 22:48:58 +02:00
nl6720
c0a4c39f21
mkarchiso: use FAT32 as early as possible
mkfs.fat selects FAT32 for file systems of at least 512 MiB size, but a
FAT32 file system can already be created at 36 MiB size (assuming 512
byte logical sector size).
2024-05-18 13:53:27 +03:00
nl6720
8d07ca3541
configs/releng/airootfs/etc/mkinitcpio.conf.d/archiso.conf: use xz -9e
Use higher compression for the initramfs.

Now that mkinitcpio moves the compressed kernel modules and firmware
files to the early uncompressed initramfs, we can compress the main
initramfs image slightly more without it increasing the built time too
much. This will increase the memory required for decompression from
9 MiB to 65 MiB (assuming the kernel's decompressor works the same as
the xz tool), but that should not be an issue for any system targeting
Arch.

This reduces the initramfs size by ~250 KiB, which will save ~500 KiB
for the whole ISO.
2024-05-18 12:06:03 +03:00
nl6720
ead84ee9c0
mkarchiso: do not pad the ISO when it is not necessary
If the ISO exceeds the max size of a CD (900 MiB), the 300 KiB padding
needed for CDs can be removed.
2024-05-18 11:32:09 +03:00
nl6720
1ae3ff6ff6
mkarchiso: increase the additional free space added to efiboot.img
Less than 1 MiB (but rounded up to one) is needed to account for file and
directory entries, especially when using FAT32. Otherwise the ISO build could stop with:

    Disk full

The rest of the increase is to allow more space for adding custom files
after the fact, i.e. when repacking the ISO. E.g. for the purposes of
adding a signed boot loader for Secure Boot or similar. See
https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#ISO_repacking
2024-05-13 09:30:14 +03:00
nl6720
2febfabd6c
scripts/run_archiso.sh: use 4 MiB OVMF files
Use `OVMF_CODE.4m.fd` and `OVMF_VARS.4m.fd` instead of the old 2 MiB
`OVMF_CODE.fd` and `OVMF_VARS.fd`.
2024-05-09 17:53:09 +03:00
nl6720
e567a2ab26
mkarchiso: do not place the pkglist.x86_64.txt file inside the bootstrap tarball's root.x86_64 directory
Keep it inside the archive, but separate from the `root.x86_64` directory
to avoid polluting it.
2024-05-09 17:30:03 +03:00
nl6720
969b91f700
mkarchiso: fix check for microcode update files in initramfs images
The existence of a ``early_cpio`` file is not enough since mkinitcpio can
and will place other files in the early uncompressed CPIO even when the
microcode hook is not used.

Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/231
2024-05-04 15:24:12 +03:00
nl6720
34426df652
Add changelog for 77 2024-04-21 09:36:53 +03:00
nl6720
024cf1b710
configs/releng/profiledef.sh: change UEFI boot loader from GRUB to systemd-boot
While using GRUB as the UEFI boot loader has reduced the size of the ISO,
it has brought nothing but pain otherwise:

* We cannot use `gfxterm` since it is not visible on some hardware.
* GRUB has a a strange and nonsensical limitation where the EFI binary
  can be built with either support for shim or custom Secure Boot key
  support, but not both. This means you cannot repack the ISO to use
  shim + MOK since we currently use `--disable-shim-lock` to provide
  support for setups with custom keys.
* GRUB's EFI binary needs to be built with `grub-mkstandalone` instead
  of there being a ready made EFI binary in the package. This requires
  having grub installed on the host system which affects reproducibility.

This increases the size of the ISO since systemd-boot cannot boot files
from other volumes, i.e. the kernel and initramfs is duplicated in the
EFI system partition (the second partition made from `efiboot.img`).

Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/227
2024-04-19 14:26:24 +03:00
nl6720
43e4d9ce36
configs/: replace archisodevice boot parameter with archisosearchuuid
`archisosearchuuid=` first searches for a matching UUID. If that fails,
then it mounts and looks for a `/boot/${archisosearchuuid}.uuid` file in
all detected block devices (in whatever order `blkid` lists them).

This implements "file system transposition" without relaying on boot
loader specific features and does not tie us to GRUB anymore.

Related to https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/-/merge_requests/48
Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/217
2024-04-19 13:45:04 +03:00
nl6720
2facc4630c
configs/releng/: use mkinitcpio's microcode hook instead of external microcode images
This simplifies boot loader configuration, but custom PXE setups will
be forced to update theirs.

Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/226
2024-04-19 10:53:42 +03:00
nl6720
924a97aeb1
configs/releng/profiledef.sh: use zstd compression for bootstrap image
The zstd tool has now been around for a while, so the availability of
it should not be a concern anymore.

Unlike gzip which was used until now, zstd offers higher compression
while still being faster (and multi-threaded).
The `--auto-threads=logical` option is used just so that there is some
difference between the releng and baseline profiles.

Everyone using the official Arch Linux bootstrap tarball (previously
`archlinux-bootstrap-YYYY.MM.DD-x86_64.tar.gz` or
`archlinux-bootstrap-x86_64.tar.gz`) will need to update their scripts
and etc. to use `archlinux-bootstrap-YYYY.MM.DD-x86_64.tar.zst` or
`archlinux-bootstrap-x86_64.tar.zst` instead.

Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/130
2024-04-19 10:28:55 +03:00
nl6720
57ccf8ef57
mkarchiso: fix requirement validation logic for uefi-ia32.systemd-boot.eltorito
`uefi-ia32.systemd-boot.eltorito` has the same requirements as
`uefi-ia32.systemd-boot.esp`, not the same as `uefi-x64.systemd-boot.esp`.

Fixes: 5e72546e89 ("mkarchiso: add uefi-ia32.systemd-boot.esp and uefi-ia32.systemd-boot.eltorito boot modes")
2024-04-01 19:55:12 +03:00
nl6720
d3c8f38ead
Add configs/releng/efiboot/loader/entries/03-archiso-x86_64-memtest86+.conf
Create a boot entry for Memtest86+.

Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/228
2024-04-01 19:29:32 +03:00
nl6720
4136bfe085
mkarchiso: copy Memtest86+ for uefi-x64.systemd-boot.* boot modes
If the Memtest86+ EFI binary exists, copy it to the EFI system partition
(`efiboot.img`) and also to ISO 9660.

Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/228
2024-04-01 19:29:26 +03:00
nl6720
7b1d6a7b14
Add changelog for 76 2024-03-30 23:29:25 +02:00
nl6720
4df7306924
configs/*/profiledef.sh: set bootstrap_tarball_compression
* bootstrap will use .tar.zst with `zstd -c -T0 --long -19`,
* releng will retain .tar.gz with `gzip -cn9` for now.

This will later be changed as part of https://gitlab.archlinux.org/archlinux/archiso/-/issues/130.
2024-03-30 23:27:55 +02:00
nl6720
3b3984b484
mkarchiso: implement configurable bootstrap tarball compression
profiledef.sh gains a new option `bootstrap_tarball_compression` which
is a bash array containing the compression program and its arguments.

Related to https://gitlab.archlinux.org/archlinux/archiso/-/issues/130.
2024-03-30 23:27:55 +02:00
nl6720
3e9f0c03d6
.gitignore: add more ignored files
* more tarball matching,
* `network-config` used by cloud-init,
* anything starting with `codesigning`.
2024-03-30 22:38:41 +02:00
nl6720
dc090c1fae
mkarchiso: skip including external microcode images if the initramfs file contains early_cpio
The early uncompressed CPIO archive containing microcode update files
can be part of the initramfs file. To avoid wasting space, first check
if the initramfs file contains `early_cpio` and only copy external
microcode initramfs images if it does not.
2024-03-26 15:14:20 +02:00
nl6720
84843f5c27
mkarchiso: move /boot/grub/YYYY-mm-dd-HH-MM-SS-00.uuid to /boot/YYYY-mm-dd-HH-MM-SS-00.uuid
Once mkinitcpio-archiso implements searching for the file in early
userspace, this file's use will not be limited to just GRUB.

Related to https://gitlab.archlinux.org/archlinux/archiso/-/issues/217
2024-03-24 18:31:28 +02:00
nl6720
7dd615ea83
Revert "mkarchiso: unset LANGUAGE"
Starting with glibc 2.39, LC_ALL=C.UTF-8 overrides LANGUAGE, just like
LC_ALL=C. See https://sourceware.org/bugzilla/show_bug.cgi?id=16621 for
details.

This reverts commit 6ac2230953.
2024-02-20 14:02:10 +02:00
nl6720
2932a9def3
Makefile: build and install the mkarchiso(1) man page
rst2man from python-docutils is required to convert the man page from
reStructuredText.
2024-02-17 11:27:19 +02:00
nl6720
bedb75a8c3
Add man page for mkarchiso 2024-02-07 14:50:40 +02:00
nl6720
1f65b695d3
Add changelog for 75 2024-01-24 12:23:44 +02:00
nl6720
5d8fe01fe1
configs/releng/profiledef.sh: replace "CD" with "DVD" in iso_application
Starting with kernel 6.7, the releng ISO exceeds 900 MiB which is the
maximum size of a CD.
Adjust the description to say "DVD" instead.

Closes https://gitlab.archlinux.org/archlinux/archiso/-/issues/144
2024-01-20 16:35:14 +02:00
nl6720
5aac945f76
mkarchiso: update memtest86+ license file location
The licenses package does not ship
`/usr/share/licenses/common/GPL2/license.txt` anymore, which results in:

    /usr/share/licenses/common/GPL2/license.txt': No such file or directory

Use its replacement, `/usr/share/licenses/spdx/GPL-2.0-only.txt` instead.

Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/225
2024-01-18 15:26:59 +02:00