iso: fresh work dir each build (avoid stale-stage reuse) + modern bootmodes

mkarchiso reuses completed stages in the work dir -> a 'too short' build that
ships a stale airootfs. bootstrap now 'rm -rf' the work dir first. Also switch
profiledef bootmodes to the non-deprecated names (bios.syslinux, uefi.systemd-boot).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-20 02:09:54 +02:00
parent d7691994db
commit 1b81ad4914
16 changed files with 56 additions and 44 deletions
@@ -6,6 +6,6 @@ timeout: 30
script:
- "rm -f /etc/systemd/system/getty@tty1.service.d/autologin.conf"
- "rmdir --ignore-fail-on-non-empty /etc/systemd/system/getty@tty1.service.d 2>/dev/null || true"
- "rm -f /root/.bash_profile"
- "rm -f /root/.zprofile"
- "rm -f /usr/local/bin/tanin-installer"
- "systemctl set-default graphical.target"
+1 -1
View File
@@ -1 +1 @@
archiso
taninux
+2 -8
View File
@@ -1,11 +1,5 @@
To install Arch Linux follow the installation guide:
https://wiki.archlinux.org/title/Installation_guide
For Wi-Fi, authenticate to the wireless network using the iwctl utility.
For mobile broadband (WWAN) modems, connect with the mmcli utility.
Ethernet, WLAN and WWAN interfaces using DHCP should work automatically.
TANINUX (camel) — a curated Arch desktop: niri + eww.
After connecting to the internet, the installation guide can be accessed
via the convenience script Installation_guide.
The installer launches on tty1. To start it manually: tanin-installer
                                          
+11
View File
@@ -0,0 +1,11 @@
NAME="TANINUX"
PRETTY_NAME="TANINUX (camel)"
ID=taninux
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;163;158;196"
HOME_URL="https://taninux.kgva.ch"
DOCUMENTATION_URL="https://git.openbureau.ch/karim/taninux"
SUPPORT_URL="https://git.openbureau.ch/karim/taninux"
BUG_REPORT_URL="https://git.openbureau.ch/karim/taninux/issues"
LOGO=taninux
@@ -1,6 +0,0 @@
# Live ISO: on the first console (tty1), launch the TANINUX installer.
# (On an installed system this file isn't present — Calamares' shellprocess
# strips the live-only bits from the target.)
if [[ "$(tty)" == /dev/tty1 ]] && [[ -z "${WAYLAND_DISPLAY:-}" ]] && ! pgrep -x cage >/dev/null 2>&1; then
exec tanin-installer
fi
@@ -0,0 +1,5 @@
# Live ISO: auto-launch the TANINUX installer on the first console.
# (Removed from the installed target by Calamares' shellprocess-striplive.)
if [[ "$(tty)" == /dev/tty1 ]] && [[ -z "$WAYLAND_DISPLAY" ]] && ! pgrep -x cage >/dev/null 2>&1; then
exec tanin-installer
fi
@@ -1,4 +1,4 @@
title Arch Linux install medium (%ARCH%, UEFI)
title TANINUX install medium (%ARCH%, UEFI)
sort-key 01
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
@@ -1,4 +1,4 @@
title Arch Linux install medium (%ARCH%, UEFI) with speech
title TANINUX install medium (%ARCH%, UEFI) with speech
sort-key 02
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
+2 -2
View File
@@ -44,13 +44,13 @@ timeout_style=menu
# Menu entries
menuentry "Arch Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
menuentry "TANINUX install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
set gfxpayload=keep
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID%
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
}
menuentry "Arch Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
menuentry "TANINUX install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
set gfxpayload=keep
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% accessibility=on
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
+2 -2
View File
@@ -21,13 +21,13 @@ timeout_style=menu
# Menu entries
menuentry "Arch Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
menuentry "TANINUX install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
set gfxpayload=keep
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}"
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
}
menuentry "Arch Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
menuentry "TANINUX install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
set gfxpayload=keep
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" accessibility=on
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
+7 -1
View File
@@ -16,9 +16,15 @@ airootfs_image_type="squashfs"
airootfs_image_tool_options=('-comp' 'zstd' '-Xcompression-level' '19' '-b' '1M')
bootstrap_tarball_compression=('zstd' '-c' '-T0' '--auto-threads=logical' '--long' '-19')
file_permissions=(
# --- releng's entries (must keep — we replace releng's profiledef) ---
["/etc/shadow"]="0:0:400"
["/etc/gshadow"]="0:0:400"
["/root"]="0:0:750"
["/root/.automated_script.sh"]="0:0:755"
["/root/.gnupg"]="0:0:700"
["/usr/local/bin/choose-mirror"]="0:0:755"
["/usr/local/bin/Installation_guide"]="0:0:755"
["/usr/local/bin/livecd-sound"]="0:0:755"
# --- TANINUX additions ---
["/root/customize_airootfs.sh"]="0:0:755"
["/usr/local/bin/tanin-installer"]="0:0:755"
)
+1 -1
View File
@@ -1,6 +1,6 @@
SERIAL 0 115200
UI vesamenu.c32
MENU TITLE Arch Linux
MENU TITLE TANINUX
MENU BACKGROUND splash.png
MENU WIDTH 78
@@ -1,9 +1,9 @@
LABEL arch_nbd
TEXT HELP
Boot the Arch Linux install medium using NBD.
It allows you to install Arch Linux or perform system maintenance.
Boot the TANINUX install medium using NBD.
It allows you to install TANINUX or perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux install medium (%ARCH%, NBD)
MENU LABEL TANINUX install medium (%ARCH%, NBD)
LINUX ::/%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen
INITRD ::/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% archiso_nbd_srv=${pxeserver} cms_verify=y
@@ -11,10 +11,10 @@ SYSAPPEND 3
LABEL arch_nfs
TEXT HELP
Boot the Arch Linux live medium using NFS.
It allows you to install Arch Linux or perform system maintenance.
Boot the TANINUX live medium using NFS.
It allows you to install TANINUX or perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux install medium (%ARCH%, NFS)
MENU LABEL TANINUX install medium (%ARCH%, NFS)
LINUX ::/%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen
INITRD ::/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt cms_verify=y
@@ -22,10 +22,10 @@ SYSAPPEND 3
LABEL arch_http
TEXT HELP
Boot the Arch Linux live medium using HTTP.
It allows you to install Arch Linux or perform system maintenance.
Boot the TANINUX live medium using HTTP.
It allows you to install TANINUX or perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux install medium (%ARCH%, HTTP)
MENU LABEL TANINUX install medium (%ARCH%, HTTP)
LINUX ::/%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen
INITRD ::/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ cms_verify=y
@@ -1,9 +1,9 @@
LABEL arch
TEXT HELP
Boot the Arch Linux install medium on BIOS.
It allows you to install Arch Linux or perform system maintenance.
Boot the TANINUX install medium on BIOS.
It allows you to install TANINUX or perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux install medium (%ARCH%, BIOS)
MENU LABEL TANINUX install medium (%ARCH%, BIOS)
LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen
INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID%
@@ -11,10 +11,10 @@ APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID%
# Accessibility boot option
LABEL archspeech
TEXT HELP
Boot the Arch Linux install medium on BIOS with speakup screen reader.
It allows you to install Arch Linux or perform system maintenance with speech feedback.
Boot the TANINUX install medium on BIOS with speakup screen reader.
It allows you to install TANINUX or perform system maintenance with speech feedback.
ENDTEXT
MENU LABEL Arch Linux install medium (%ARCH%, BIOS) with ^speech
MENU LABEL TANINUX install medium (%ARCH%, BIOS) with ^speech
LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-zen
INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-zen.img
APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% accessibility=on