From 331c799ea7622fc9dcd0f6a9b982b350542e8d0e Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 19:29:04 +0200 Subject: [PATCH 01/79] feat: Steamify's default setup for the new user during the install (Calamares step before cleanup) --- .gitignore | 1 + .../modules/shellprocess_steamify.conf | 10 ++ archiso/airootfs/etc/calamares/settings.conf | 127 ++++++++++++++++++ .../airootfs/usr/local/bin/steamify-install | 20 +++ archiso/profiledef.sh | 1 + steamify-prepare.sh | 16 +++ 6 files changed, 175 insertions(+) create mode 100644 archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf create mode 100644 archiso/airootfs/etc/calamares/settings.conf create mode 100755 archiso/airootfs/usr/local/bin/steamify-install create mode 100755 steamify-prepare.sh diff --git a/.gitignore b/.gitignore index 6713072..c21a7cc 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ archiso/airootfs/etc/environment archiso/airootfs/etc/pacman.d/cachyos-mirrorlist archiso/airootfs/etc/edition-tag archiso/airootfs/etc/version-tag +archiso/airootfs/usr/local/share/steamify/ diff --git a/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf b/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf new file mode 100644 index 0000000..45727f8 --- /dev/null +++ b/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf @@ -0,0 +1,10 @@ +# Steamify: the Steam Machine setup for the new user, before the first boot. +--- + +dontChroot: true +timeout: 3600 +script: + - "-/usr/local/bin/steamify-install ${ROOT} ${USER}" + +i18n: + name: "Setting up the Steam Machine (Steamify)" diff --git a/archiso/airootfs/etc/calamares/settings.conf b/archiso/airootfs/etc/calamares/settings.conf new file mode 100644 index 0000000..ae8ade1 --- /dev/null +++ b/archiso/airootfs/etc/calamares/settings.conf @@ -0,0 +1,127 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Configuration file for Calamares +--- +modules-search: [ local ] + +instances: + +- id: online + module: packages + config: packages_online.conf + +- id: online + module: welcome + config: welcome_online.conf + +- id: before-online + module: shellprocess + config: shellprocess-before-online.conf + +- id: modify_mk_hook + module: shellprocess + config: shellprocess_modify_mk_hook.conf + +- id: reset_mk_hook + module: shellprocess + config: shellprocess_reset_mk_hook.conf + +- id: initialize_pacman + module: shellprocess + config: shellprocess_initialize_pacman.conf + +- id: bootloader + module: packagechooser + config: packagechooser_bootloader.conf + +- id: desktop + module: packagechooser + config: packagechooser_desktop.conf + +- id: enable_ufw + module: shellprocess + config: shellprocess_enable_ufw.conf + +- id: greetd + module: shellprocess + config: shellprocess_greetd.conf + +- id: btrfs_snapshot + module: shellprocess + config: shellprocess_btrfs_snapshot.conf + +- id: steamify + module: shellprocess + config: shellprocess_steamify.conf + +- id: cleanup_calamares + module: shellprocess + config: shellprocess_cleanup_calamares.conf + + +sequence: +- show: + - welcome@online + - locale + - keyboard + - packagechooser@bootloader + - partition + - packagechooser@desktop + - netinstall + - users + - summary +- exec: + - partition + - zfs + - mount + - shellprocess@modify_mk_hook + - shellprocess@initialize_pacman + - shellprocess@before-online + - pacstrap + - machineid + - users + - locale + - keyboard + - localecfg + - chwd + - packages@online + - luksbootkeyfile + - luksopenswaphookcfg + - fstab + - plymouthcfg + - zfshostid + - initcpiocfg + - initcpio + - networkcfg + - displaymanager + - hwclock + - grubcfg + - bootloader + - shellprocess@reset_mk_hook + - services-systemd + - shellprocess + - shellprocess@enable_ufw + - shellprocess@greetd + - shellprocess@btrfs_snapshot + - shellprocess@steamify + - shellprocess@cleanup_calamares + - umount +- show: + - finished + +branding: cachyos + +prompt-install: true + +dont-chroot: false + +oem-setup: false + +disable-cancel: false + +disable-cancel-during-exec: false + +hide-back-and-next-during-exec: true + +quit-at-end: false diff --git a/archiso/airootfs/usr/local/bin/steamify-install b/archiso/airootfs/usr/local/bin/steamify-install new file mode 100755 index 0000000..e44aa24 --- /dev/null +++ b/archiso/airootfs/usr/local/bin/steamify-install @@ -0,0 +1,20 @@ +#!/bin/bash +# steamify-install : runs Steamify's default setup for +# the new user inside the installed system (Calamares, after the users and +# services steps). Steamify refuses root and asks sudo per command, so the +# user gets a NOPASSWD rule for this run only. Never fails the install: a +# problem leaves the log and Steamify can be run again from the desktop. +root="$1" user="$2" +log="$root/var/log/steamify-install.log" +rule="$root/etc/sudoers.d/00-steamify-install" +[[ -d "$root" && -n "$user" ]] || exit 0 + +install -Dm755 /usr/local/share/steamify/steamify.sh "$root/var/tmp/steamify.sh" +printf '%s ALL=(ALL) NOPASSWD: ALL\n' "$user" > "$rule" +chmod 440 "$rule" +arch-chroot "$root" runuser -u "$user" -- env -i HOME="/home/$user" USER="$user" LOGNAME="$user" \ + PATH=/usr/local/bin:/usr/bin TERM=dumb LANG=C.UTF-8 \ + bash -c 'cd ~ && bash /var/tmp/steamify.sh --defaults < /dev/null' > "$log" 2>&1 +echo "exit: $?" >> "$log" +rm -f "$rule" "$root/var/tmp/steamify.sh" +exit 0 diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index ce4a089..a7bb8d9 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -27,6 +27,7 @@ file_permissions=( ["/root/.gnupg"]="0:0:700" ["/usr/local/bin/choose-mirror"]="0:0:755" ["/usr/local/bin/dmcheck"]="0:0:755" + ["/usr/local/bin/steamify-install"]="0:0:755" ["/usr/local/bin/calamares-online.sh"]="0:0:755" ["/usr/local/bin/remove-nvidia"]="0:0:755" ["/usr/local/bin/removeun"]="0:0:755" diff --git a/steamify-prepare.sh b/steamify-prepare.sh new file mode 100755 index 0000000..234cff9 --- /dev/null +++ b/steamify-prepare.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# steamify-prepare.sh [steamify checkout]: puts the Steamify bundle on the +# ISO (archiso/airootfs/usr/local/share/steamify/steamify.sh), used by the +# installer's Steamify step. Built from a checkout when given, else the +# newest release. Run before buildiso.sh. +set -euo pipefail +dest="$(cd "$(dirname "$0")" && pwd)/archiso/airootfs/usr/local/share/steamify/steamify.sh" +mkdir -p "$(dirname "$dest")" +if [[ -n "${1:-}" ]]; then + (cd "$1" && .github/tools/bundle.sh "$dest") +else + curl -fsSL https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify.sh -o "$dest" +fi +grep -q -- '--defaults' "$dest" || { echo "This Steamify has no --defaults (needs 2.6.0 or newer)." >&2; exit 1; } +chmod 755 "$dest" +echo "Steamify $(grep -m1 '^VERSION=' "$dest" | cut -d= -f2) on the ISO." From f49504c7cee73fdad7abb2df7b16c9667e0f1e3d Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:01:29 +0200 Subject: [PATCH 02/79] fix: Boost 1.91's libraries on the ISO, so cachyos-calamares-next (linked against 1.91) starts while the repos ship 1.92 --- .gitignore | 1 + steamify-prepare.sh | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/.gitignore b/.gitignore index c21a7cc..83fa909 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ archiso/airootfs/etc/pacman.d/cachyos-mirrorlist archiso/airootfs/etc/edition-tag archiso/airootfs/etc/version-tag archiso/airootfs/usr/local/share/steamify/ +archiso/airootfs/usr/lib/libboost_* diff --git a/steamify-prepare.sh b/steamify-prepare.sh index 234cff9..1783fa2 100755 --- a/steamify-prepare.sh +++ b/steamify-prepare.sh @@ -13,4 +13,13 @@ else fi grep -q -- '--defaults' "$dest" || { echo "This Steamify has no --defaults (needs 2.6.0 or newer)." >&2; exit 1; } chmod 755 "$dest" +# Temporary: cachyos-calamares-next 3.4.2-13 is linked against Boost 1.91 +# while the repos ship 1.92, so the installer doesn't start. Boost's +# libraries carry their version in the name: 1.91's sit next to 1.92's. +# Drop this once CachyOS rebuilds the installer. +boost=boost-libs-1.91.0-2-x86_64.pkg.tar.zst +libs="$(cd "$(dirname "$0")" && pwd)/archiso/airootfs" +curl -fsSL "https://archive.archlinux.org/packages/b/boost-libs/$boost" -o "/tmp/$boost" +tar -xf "/tmp/$boost" -C "$libs" --wildcards 'usr/lib/libboost_*.so.1.91.0' +rm -f "/tmp/$boost" echo "Steamify $(grep -m1 '^VERSION=' "$dest" | cut -d= -f2) on the ISO." From 56f5707c86ebcef24d20a1d4e874b0765f612a84 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:06:11 +0200 Subject: [PATCH 03/79] fix: The Steamify step is added by calamares-online.sh, which copies CachyOS's settings over /etc/calamares/settings.conf --- archiso/airootfs/etc/calamares/settings.conf | 127 ------------------ .../usr/local/bin/calamares-online.sh | 4 + 2 files changed, 4 insertions(+), 127 deletions(-) delete mode 100644 archiso/airootfs/etc/calamares/settings.conf diff --git a/archiso/airootfs/etc/calamares/settings.conf b/archiso/airootfs/etc/calamares/settings.conf deleted file mode 100644 index ae8ade1..0000000 --- a/archiso/airootfs/etc/calamares/settings.conf +++ /dev/null @@ -1,127 +0,0 @@ -# SPDX-FileCopyrightText: no -# SPDX-License-Identifier: CC0-1.0 -# -# Configuration file for Calamares ---- -modules-search: [ local ] - -instances: - -- id: online - module: packages - config: packages_online.conf - -- id: online - module: welcome - config: welcome_online.conf - -- id: before-online - module: shellprocess - config: shellprocess-before-online.conf - -- id: modify_mk_hook - module: shellprocess - config: shellprocess_modify_mk_hook.conf - -- id: reset_mk_hook - module: shellprocess - config: shellprocess_reset_mk_hook.conf - -- id: initialize_pacman - module: shellprocess - config: shellprocess_initialize_pacman.conf - -- id: bootloader - module: packagechooser - config: packagechooser_bootloader.conf - -- id: desktop - module: packagechooser - config: packagechooser_desktop.conf - -- id: enable_ufw - module: shellprocess - config: shellprocess_enable_ufw.conf - -- id: greetd - module: shellprocess - config: shellprocess_greetd.conf - -- id: btrfs_snapshot - module: shellprocess - config: shellprocess_btrfs_snapshot.conf - -- id: steamify - module: shellprocess - config: shellprocess_steamify.conf - -- id: cleanup_calamares - module: shellprocess - config: shellprocess_cleanup_calamares.conf - - -sequence: -- show: - - welcome@online - - locale - - keyboard - - packagechooser@bootloader - - partition - - packagechooser@desktop - - netinstall - - users - - summary -- exec: - - partition - - zfs - - mount - - shellprocess@modify_mk_hook - - shellprocess@initialize_pacman - - shellprocess@before-online - - pacstrap - - machineid - - users - - locale - - keyboard - - localecfg - - chwd - - packages@online - - luksbootkeyfile - - luksopenswaphookcfg - - fstab - - plymouthcfg - - zfshostid - - initcpiocfg - - initcpio - - networkcfg - - displaymanager - - hwclock - - grubcfg - - bootloader - - shellprocess@reset_mk_hook - - services-systemd - - shellprocess - - shellprocess@enable_ufw - - shellprocess@greetd - - shellprocess@btrfs_snapshot - - shellprocess@steamify - - shellprocess@cleanup_calamares - - umount -- show: - - finished - -branding: cachyos - -prompt-install: true - -dont-chroot: false - -oem-setup: false - -disable-cancel: false - -disable-cancel-during-exec: false - -hide-back-and-next-during-exec: true - -quit-at-end: false diff --git a/archiso/airootfs/usr/local/bin/calamares-online.sh b/archiso/airootfs/usr/local/bin/calamares-online.sh index b587323..992767d 100755 --- a/archiso/airootfs/usr/local/bin/calamares-online.sh +++ b/archiso/airootfs/usr/local/bin/calamares-online.sh @@ -45,6 +45,10 @@ main() { EOF sudo cp "/usr/share/calamares/settings_${mode}.conf" /etc/calamares/settings.conf + # Steamify: its step (modules/shellprocess_steamify.conf) before the + # installer cleans up after itself. + sudo sed -i -e 's/^- id: cleanup_calamares$/- id: steamify\n module: shellprocess\n config: shellprocess_steamify.conf\n\n&/' \ + -e 's/^ - shellprocess@cleanup_calamares$/ - shellprocess@steamify\n&/' /etc/calamares/settings.conf exec pkexec-wrapper calamares -D6 >> $log } From f663ce87942abe57ac5a4511b897e4980f304c0d Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:07:56 +0200 Subject: [PATCH 04/79] fix: CachyOS Hello installs it: version-tag is CachyOS's newest release (Hello calls newer ones testing ISOs), the build date goes to /etc/steammachine-iso-build --- .gitignore | 1 + util-iso.sh | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 83fa909..2b22e51 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ archiso/airootfs/etc/edition-tag archiso/airootfs/etc/version-tag archiso/airootfs/usr/local/share/steamify/ archiso/airootfs/usr/lib/libboost_* +archiso/airootfs/etc/steammachine-iso-build diff --git a/util-iso.sh b/util-iso.sh index 30010e1..da76a99 100755 --- a/util-iso.sh +++ b/util-iso.sh @@ -104,7 +104,14 @@ generate_version_tag() { local _profile="$1" local _version="$2" if [ "$_profile" == "desktop" ]; then - echo "${_version}" > ${src_dir}/archiso/airootfs/etc/version-tag + # Steam Machine edition: CachyOS Hello won't install an ISO newer + # than CachyOS's newest release (it calls it a testing ISO), so the + # tag is that release, the one this build follows; the build's own + # date goes to /etc/steammachine-iso-build. + local _release + _release="$(curl -fsS --max-time 20 https://cachyos.org/versions.json | grep -o '"desktopISOVersion":"[0-9]*"' | grep -o '[0-9]\+')" + echo "${_release:-${_version}}" > ${src_dir}/archiso/airootfs/etc/version-tag + echo "${_version}" > ${src_dir}/archiso/airootfs/etc/steammachine-iso-build fi } From c719f02f6db669400d8c45c44f72e2b755d964bd Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:13:17 +0200 Subject: [PATCH 05/79] docs: TODO: power-off fix and Vapor theme in the live session, drop the Boost workaround later --- TODO.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 TODO.md diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..be17902 --- /dev/null +++ b/TODO.md @@ -0,0 +1,14 @@ +# To do (Steam Machine edition) + +- **Power-off fix in the live session.** Without it the Steam Machine starts + again right after shutting down from the live ISO. Build + `steamify-fremont-poweroff.ko` in `steamify-prepare.sh` against the headers + of the ISO's kernel, put it in `airootfs/usr/lib/modules//extra` + and run depmod (small); or ship DKMS packages from a local repo (~250 MB of + headers on the ISO). Later maybe the CEC and LED drivers the same way. +- **Vapor theme in the live session.** Add `cachyos-vapor` to + `packages_desktop.x86_64` and set it as the live user's look and feel in + `airootfs/etc/skel` (kdeglobals `LookAndFeelPackage`, no layout file, so + Plasma lays out Vapor at the live login). +- **Drop the Boost 1.91 workaround** in `steamify-prepare.sh` once + `cachyos-calamares-next` is rebuilt against the repos' Boost. From bd16c4123d06d897c4256ebbc7c49ac86a86541c Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:13:39 +0200 Subject: [PATCH 06/79] docs: TODO: what's in progress (build, install test, Steamify PR, hardware test) and later --- TODO.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/TODO.md b/TODO.md index be17902..6da598b 100644 --- a/TODO.md +++ b/TODO.md @@ -1,5 +1,32 @@ # To do (Steam Machine edition) +## In progress (2026-09-27) + +1. **Finish the running build** (`f663ce8`+) on the Steam Machine + (`~/projects/steammachine-cachyos-live-iso`, log `~/projects/iso-build.log`; + the harmless `chown: missing operand` error at the end is expected). +2. **Test install in the ISO VM** (`~/projects/iso-vm`): power it off, delete + `disk.qcow2` and `vars.fd` (run.sh recreates them), point `cachyos.iso` at + the new ISO, `run.sh install --fremont` as a user unit. Check: + - Hello's Install opens Calamares without the "testing ISO" message + (version-tag = CachyOS release); + - Calamares starts without the manual Boost fix; + - the "Setting up the Steam Machine (Steamify)" step runs; + - after reboot: `/var/log/steamify-install.log` (every component OK, + `exit: 0`), SDDM autologin into gamescope (black/looping in the VM is + expected; Ctrl+Alt+F3 for a console), first desktop login: Vapor layout, + single user's launcher, the app next to Hello. + Likely problem: in the chroot `uname -r` is the live kernel, so the LED + module load/check in `machine_enable` may fail although DKMS built for the + installed kernel. Make those checks tolerate a different running kernel. +3. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in + steamify-cachyos, pushed but no PR yet. Open it once the install test + passes; the user merges (never commit to main). +4. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, + power-off) before calling the ISO usable. + +## Later + - **Power-off fix in the live session.** Without it the Steam Machine starts again right after shutting down from the live ISO. Build `steamify-fremont-poweroff.ko` in `steamify-prepare.sh` against the headers @@ -10,5 +37,14 @@ `packages_desktop.x86_64` and set it as the live user's look and feel in `airootfs/etc/skel` (kdeglobals `LookAndFeelPackage`, no layout file, so Plasma lays out Vapor at the live login). +- **Steamify options in the installer**: a Calamares page (netinstall-style + YAML or QML) listing Steamify's options; pass the ticked ids to + `steamify.sh --backend apply ` instead of `--defaults`. +- **Branding**: name the ISO file and live session "Steam Machine CachyOS" + (not plain `cachyos-*.iso`); check with the CachyOS team. +- **Release**: a CI job that builds the ISO (privileged container, flags from + the steam-machine-iso skill) and hosts it (>2 GB, not a GitHub release asset). - **Drop the Boost 1.91 workaround** in `steamify-prepare.sh` once `cachyos-calamares-next` is rebuilt against the repos' Boost. + +Build and test details: the `steam-machine-iso` skill in steamify-cachyos-dev. From ae21fa99739c1a406929ea13fa49bd8e143eeeae Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:14:42 +0200 Subject: [PATCH 07/79] docs: TODO: Steamify wizard pages in the installer; LED check isn't a concern --- TODO.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/TODO.md b/TODO.md index 6da598b..5da5646 100644 --- a/TODO.md +++ b/TODO.md @@ -16,9 +16,6 @@ `exit: 0`), SDDM autologin into gamescope (black/looping in the VM is expected; Ctrl+Alt+F3 for a console), first desktop login: Vapor layout, single user's launcher, the app next to Hello. - Likely problem: in the chroot `uname -r` is the live kernel, so the LED - module load/check in `machine_enable` may fail although DKMS built for the - installed kernel. Make those checks tolerate a different running kernel. 3. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in steamify-cachyos, pushed but no PR yet. Open it once the install test passes; the user merges (never commit to main). @@ -37,9 +34,15 @@ `packages_desktop.x86_64` and set it as the live user's look and feel in `airootfs/etc/skel` (kdeglobals `LookAndFeelPackage`, no layout file, so Plasma lays out Vapor at the live login). -- **Steamify options in the installer**: a Calamares page (netinstall-style - YAML or QML) listing Steamify's options; pass the ticked ids to - `steamify.sh --backend apply ` instead of `--defaults`. +- **Steamify wizard pages in the installer**, before anything is installed: + the same choices as Steamify's menu (conversion, boot into gamescope or + desktop, theme, Deck icons, single user, shortcut + non-Steam game, + notifications, VRAM booster, HDMI-CEC, Steam Machine support + power-off + fix), defaults ticked like a first run. A Calamares page (netinstall-style + YAML or a QML module in the `show` sequence) stores the ticked ids in + global storage; `steamify-install` passes them to + `steamify.sh --backend apply ` (`--boot gamescope|desktop`) instead of + `--defaults`. - **Branding**: name the ISO file and live session "Steam Machine CachyOS" (not plain `cachyos-*.iso`); check with the CachyOS team. - **Release**: a CI job that builds the ISO (privileged container, flags from From f42859ac6a7d857f3378a7437f145a04426cc157 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:26:45 +0200 Subject: [PATCH 08/79] fix: The installer's sudo rule is read last, or CachyOS's %wheel rule after it asks for the password --- archiso/airootfs/usr/local/bin/steamify-install | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/archiso/airootfs/usr/local/bin/steamify-install b/archiso/airootfs/usr/local/bin/steamify-install index e44aa24..08de7ff 100755 --- a/archiso/airootfs/usr/local/bin/steamify-install +++ b/archiso/airootfs/usr/local/bin/steamify-install @@ -2,11 +2,12 @@ # steamify-install : runs Steamify's default setup for # the new user inside the installed system (Calamares, after the users and # services steps). Steamify refuses root and asks sudo per command, so the -# user gets a NOPASSWD rule for this run only. Never fails the install: a +# user gets a NOPASSWD rule for this run only, named to be read last: sudo +# takes the last matching rule, and a later %wheel rule would ask again. Never fails the install: a # problem leaves the log and Steamify can be run again from the desktop. root="$1" user="$2" log="$root/var/log/steamify-install.log" -rule="$root/etc/sudoers.d/00-steamify-install" +rule="$root/etc/sudoers.d/zz-steamify-install" [[ -d "$root" && -n "$user" ]] || exit 0 install -Dm755 /usr/local/share/steamify/steamify.sh "$root/var/tmp/steamify.sh" From 974405ff966e1692a21a3f7887282e9f535d260d Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:49:53 +0200 Subject: [PATCH 09/79] docs: TODO: the VM install test passed --- TODO.md | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/TODO.md b/TODO.md index 5da5646..6eb5c31 100644 --- a/TODO.md +++ b/TODO.md @@ -2,20 +2,14 @@ ## In progress (2026-09-27) -1. **Finish the running build** (`f663ce8`+) on the Steam Machine - (`~/projects/steammachine-cachyos-live-iso`, log `~/projects/iso-build.log`; - the harmless `chown: missing operand` error at the end is expected). -2. **Test install in the ISO VM** (`~/projects/iso-vm`): power it off, delete - `disk.qcow2` and `vars.fd` (run.sh recreates them), point `cachyos.iso` at - the new ISO, `run.sh install --fremont` as a user unit. Check: - - Hello's Install opens Calamares without the "testing ISO" message - (version-tag = CachyOS release); - - Calamares starts without the manual Boost fix; - - the "Setting up the Steam Machine (Steamify)" step runs; - - after reboot: `/var/log/steamify-install.log` (every component OK, - `exit: 0`), SDDM autologin into gamescope (black/looping in the VM is - expected; Ctrl+Alt+F3 for a console), first desktop login: Vapor layout, - single user's launcher, the app next to Hello. +1. **Done (2026-09-27, `f42859a`):** a VM install from the ISO (Hello's + Install, no manual fixes) ran Steamify's step: every component OK, + `exit: 0`, SDDM autologin into gamescope. Still to check: the first + desktop login (Vapor layout, single user's launcher, the app next to + Hello); in the VM switch the SDDM session to plasma first. The VM's text + console doesn't show (virgl): read the installed disk with + `qemu-nbd -r` + `mount -o ro,rescue=nologreplay,subvol=@` (logs in `@log`). +2. **Rename the ISO** file/label to Steam Machine CachyOS (see Later). 3. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in steamify-cachyos, pushed but no PR yet. Open it once the install test passes; the user merges (never commit to main). From 0cabdbd8a7026098eb588686fb77fcd0e2ef9382 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:52:32 +0200 Subject: [PATCH 10/79] docs: TODO: first desktop login from the ISO install passed --- TODO.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/TODO.md b/TODO.md index 6eb5c31..cf05da2 100644 --- a/TODO.md +++ b/TODO.md @@ -4,9 +4,11 @@ 1. **Done (2026-09-27, `f42859a`):** a VM install from the ISO (Hello's Install, no manual fixes) ran Steamify's step: every component OK, - `exit: 0`, SDDM autologin into gamescope. Still to check: the first - desktop login (Vapor layout, single user's launcher, the app next to - Hello); in the VM switch the SDDM session to plasma first. The VM's text + `exit: 0`, SDDM autologin into gamescope. First desktop login (session switched to plasma in the VM) passed too: + Vapor layout, the app opened with everything on. The first-login script + runs the newest *release*, so it only works once 2.6.0 is released (in the + test it was pointed at the bundle). + The VM's text console doesn't show (virgl): read the installed disk with `qemu-nbd -r` + `mount -o ro,rescue=nologreplay,subvol=@` (logs in `@log`). 2. **Rename the ISO** file/label to Steam Machine CachyOS (see Later). From 43f17ec0628ee62e3d35bfe7427d4ab92659b5da Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:55:58 +0200 Subject: [PATCH 11/79] docs: TODO: regression test 2.6.0 on an existing install before merging --- TODO.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index cf05da2..ccfa2aa 100644 --- a/TODO.md +++ b/TODO.md @@ -12,10 +12,14 @@ console doesn't show (virgl): read the installed disk with `qemu-nbd -r` + `mount -o ro,rescue=nologreplay,subvol=@` (logs in `@log`). 2. **Rename the ISO** file/label to Steam Machine CachyOS (see Later). -3. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in +3. **Regression test 2.6.0 on an existing desktop install** before merging: + test VM from ssh-ready, full first run from the desktop, re-apply, a few + components off and on (every `systemctl --user` now goes through + `user_systemctl`; with a session it should behave exactly as before). +4. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in steamify-cachyos, pushed but no PR yet. Open it once the install test passes; the user merges (never commit to main). -4. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, +5. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, power-off) before calling the ISO usable. ## Later From 04793bd07dddc1f16a8982c29228e0f1271c38f3 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 20:59:51 +0200 Subject: [PATCH 12/79] docs: TODO: done and open items separated, PR status checked --- TODO.md | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/TODO.md b/TODO.md index ccfa2aa..610602a 100644 --- a/TODO.md +++ b/TODO.md @@ -1,27 +1,32 @@ # To do (Steam Machine edition) -## In progress (2026-09-27) +## Open -1. **Done (2026-09-27, `f42859a`):** a VM install from the ISO (Hello's - Install, no manual fixes) ran Steamify's step: every component OK, - `exit: 0`, SDDM autologin into gamescope. First desktop login (session switched to plasma in the VM) passed too: - Vapor layout, the app opened with everything on. The first-login script - runs the newest *release*, so it only works once 2.6.0 is released (in the - test it was pointed at the bundle). - The VM's text - console doesn't show (virgl): read the installed disk with - `qemu-nbd -r` + `mount -o ro,rescue=nologreplay,subvol=@` (logs in `@log`). -2. **Rename the ISO** file/label to Steam Machine CachyOS (see Later). -3. **Regression test 2.6.0 on an existing desktop install** before merging: +1. **Rename the ISO** file/label to Steam Machine CachyOS (see Later). +2. **Regression test 2.6.0 on an existing desktop install** before merging: test VM from ssh-ready, full first run from the desktop, re-apply, a few components off and on (every `systemctl --user` now goes through `user_systemctl`; with a session it should behave exactly as before). -4. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in - steamify-cachyos, pushed but no PR yet. Open it once the install test - passes; the user merges (never commit to main). -5. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, +3. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in + steamify-cachyos, pushed, no PR yet (checked 2026-09-27: not on main, + newest release v2.5.2). Open it after the regression test; the user + merges (never commit to main). The ISO's first-login step needs 2.6.0 + released. +4. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, power-off) before calling the ISO usable. +## Done + +- **VM install from the ISO (2026-09-27, `f42859a`):** a VM install from the ISO (Hello's + Install, no manual fixes) ran Steamify's step: every component OK, + `exit: 0`, SDDM autologin into gamescope. First desktop login (session switched to plasma in the VM) passed too: + Vapor layout, the app opened with everything on. The first-login script + runs the newest *release*, so it only works once 2.6.0 is released (in the + test it was pointed at the bundle). + The VM's text + console doesn't show (virgl): read the installed disk with + `qemu-nbd -r` + `mount -o ro,rescue=nologreplay,subvol=@` (logs in `@log`). + ## Later - **Power-off fix in the live session.** Without it the Steam Machine starts From 05c04a013b197ca9bd5d229dadbe1ba6453631ad Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 21:03:05 +0200 Subject: [PATCH 13/79] feat: The ISO is called steamify-cachyos --- TODO.md | 13 +++++++------ archiso/profiledef.sh | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/TODO.md b/TODO.md index 610602a..429b84f 100644 --- a/TODO.md +++ b/TODO.md @@ -2,21 +2,22 @@ ## Open -1. **Rename the ISO** file/label to Steam Machine CachyOS (see Later). -2. **Regression test 2.6.0 on an existing desktop install** before merging: +1. **Regression test 2.6.0 on an existing desktop install** before merging: test VM from ssh-ready, full first run from the desktop, re-apply, a few components off and on (every `systemctl --user` now goes through `user_systemctl`; with a session it should behave exactly as before). -3. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in +2. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in steamify-cachyos, pushed, no PR yet (checked 2026-09-27: not on main, newest release v2.5.2). Open it after the regression test; the user merges (never commit to main). The ISO's first-login step needs 2.6.0 released. -4. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, +3. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, power-off) before calling the ISO usable. ## Done +- **ISO name**: `steamify-cachyos--x86_64.iso` (`iso_name` in + `archiso/profiledef.sh`); the volume label stays `COS_`. - **VM install from the ISO (2026-09-27, `f42859a`):** a VM install from the ISO (Hello's Install, no manual fixes) ran Steamify's step: every component OK, `exit: 0`, SDDM autologin into gamescope. First desktop login (session switched to plasma in the VM) passed too: @@ -48,8 +49,8 @@ global storage; `steamify-install` passes them to `steamify.sh --backend apply ` (`--boot gamescope|desktop`) instead of `--defaults`. -- **Branding**: name the ISO file and live session "Steam Machine CachyOS" - (not plain `cachyos-*.iso`); check with the CachyOS team. +- **Branding**: the live session still says CachyOS (Hello, os-release, + boot menu); decide what to rename there and check with the CachyOS team. - **Release**: a CI job that builds the ISO (privileged container, flags from the steam-machine-iso skill) and hosts it (>2 GB, not a GitHub release asset). - **Drop the Boost 1.91 workaround** in `steamify-prepare.sh` once diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index a7bb8d9..b22e79f 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -1,10 +1,10 @@ #!/usr/bin/env bash # shellcheck disable=SC2034 -iso_name="cachyos" +iso_name="steamify-cachyos" iso_label="COS_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" iso_publisher="CachyOS " -iso_application="CachyOS Live/Rescue DVD" +iso_application="Steamify CachyOS Live (based on CachyOS)" iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" install_dir="arch" buildmodes=('iso') From 2e35628ba82a72b886d0729e9c0091ba062094f7 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 21:04:44 +0200 Subject: [PATCH 14/79] feat: The live session is called Steamify, based on CachyOS (os-release, shown by Hello) --- TODO.md | 5 +++-- archiso/airootfs/etc/os-release | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/TODO.md b/TODO.md index 429b84f..7bb43e2 100644 --- a/TODO.md +++ b/TODO.md @@ -49,8 +49,9 @@ global storage; `steamify-install` passes them to `steamify.sh --backend apply ` (`--boot gamescope|desktop`) instead of `--defaults`. -- **Branding**: the live session still says CachyOS (Hello, os-release, - boot menu); decide what to rename there and check with the CachyOS team. +- **Branding**: the live session's os-release says "Steamify, based on + CachyOS" (Hello's subtitle); Hello's window title and the boot menu still + say CachyOS. Check with the CachyOS team. - **Release**: a CI job that builds the ISO (privileged container, flags from the steam-machine-iso skill) and hosts it (>2 GB, not a GitHub release asset). - **Drop the Boost 1.91 workaround** in `steamify-prepare.sh` once diff --git a/archiso/airootfs/etc/os-release b/archiso/airootfs/etc/os-release index b7f9e09..9c18ae9 100644 --- a/archiso/airootfs/etc/os-release +++ b/archiso/airootfs/etc/os-release @@ -1,5 +1,5 @@ -NAME="CachyOS" -PRETTY_NAME="CachyOS" +NAME="Steamify, based on CachyOS" +PRETTY_NAME="Steamify, based on CachyOS" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" From c5c435c5749069f0a779a55b1ab25510601eb18a Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 21:07:39 +0200 Subject: [PATCH 15/79] fix: The live session is called Steamify CachyOS, based on CachyOS --- archiso/airootfs/etc/os-release | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/archiso/airootfs/etc/os-release b/archiso/airootfs/etc/os-release index 9c18ae9..cd63f1c 100644 --- a/archiso/airootfs/etc/os-release +++ b/archiso/airootfs/etc/os-release @@ -1,5 +1,5 @@ -NAME="Steamify, based on CachyOS" -PRETTY_NAME="Steamify, based on CachyOS" +NAME="Steamify CachyOS, based on CachyOS" +PRETTY_NAME="Steamify CachyOS, based on CachyOS" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" From f514c24b826ee8e5db0d8c95e12630d25b04a23c Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 21:18:42 +0200 Subject: [PATCH 16/79] docs: TODO: 2.6.0 regression test on an existing install passed --- TODO.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/TODO.md b/TODO.md index 7bb43e2..b286754 100644 --- a/TODO.md +++ b/TODO.md @@ -2,20 +2,20 @@ ## Open -1. **Regression test 2.6.0 on an existing desktop install** before merging: - test VM from ssh-ready, full first run from the desktop, re-apply, a few - components off and on (every `systemctl --user` now goes through - `user_systemctl`; with a session it should behave exactly as before). -2. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in +1. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in steamify-cachyos, pushed, no PR yet (checked 2026-09-27: not on main, - newest release v2.5.2). Open it after the regression test; the user + newest release v2.5.2). Ready: open it; the user merges (never commit to main). The ISO's first-login step needs 2.6.0 released. -3. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, +2. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, power-off) before calling the ISO usable. ## Done +- **Regression test 2.6.0 on an existing desktop install** (test VM from + ssh-ready, `--fremont`): full first run, re-apply, notifications/CEC/theme + off and on again. No errors; user units enabled and running, theme applied + and restored live, no first-login autostart with a session. - **ISO name**: `steamify-cachyos--x86_64.iso` (`iso_name` in `archiso/profiledef.sh`); the volume label stays `COS_`. - **VM install from the ISO (2026-09-27, `f42859a`):** a VM install from the ISO (Hello's From 309b22f634606ee30d3be9a7d028678bd1fbc4df Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 21:26:19 +0200 Subject: [PATCH 17/79] feat: Live session: power-off fix built for the ISO's kernels, Vapor look and layout at the live login --- .gitignore | 2 ++ TODO.md | 19 +++++------- .../xdg/autostart/steamify-live-theme.desktop | 7 +++++ .../usr/local/bin/steamify-live-theme | 7 +++++ archiso/packages_desktop.x86_64 | 1 + archiso/profiledef.sh | 1 + build-live-modules.sh | 30 +++++++++++++++++++ steamify-prepare.sh | 7 +++++ 8 files changed, 62 insertions(+), 12 deletions(-) create mode 100644 archiso/airootfs/etc/xdg/autostart/steamify-live-theme.desktop create mode 100755 archiso/airootfs/usr/local/bin/steamify-live-theme create mode 100755 build-live-modules.sh diff --git a/.gitignore b/.gitignore index 2b22e51..4366873 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ archiso/airootfs/etc/version-tag archiso/airootfs/usr/local/share/steamify/ archiso/airootfs/usr/lib/libboost_* archiso/airootfs/etc/steammachine-iso-build +archiso/airootfs/usr/lib/modules/ +archiso/airootfs/etc/modules-load.d/steamify-fremont-poweroff.conf diff --git a/TODO.md b/TODO.md index b286754..52a091a 100644 --- a/TODO.md +++ b/TODO.md @@ -2,12 +2,17 @@ ## Open -1. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in +1. **Test the live session** after the next build (`build-live-modules.sh` + runs in the container before buildiso.sh): Vapor look and layout at the + live login, `lsmod | grep steamify` in the live session (on the Steam + Machine it loads; in the VM with `--fremont` too), and shutting down from + the live session on the real Steam Machine stays off. +2. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in steamify-cachyos, pushed, no PR yet (checked 2026-09-27: not on main, newest release v2.5.2). Ready: open it; the user merges (never commit to main). The ISO's first-login step needs 2.6.0 released. -2. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, +3. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, power-off) before calling the ISO usable. ## Done @@ -30,16 +35,6 @@ ## Later -- **Power-off fix in the live session.** Without it the Steam Machine starts - again right after shutting down from the live ISO. Build - `steamify-fremont-poweroff.ko` in `steamify-prepare.sh` against the headers - of the ISO's kernel, put it in `airootfs/usr/lib/modules//extra` - and run depmod (small); or ship DKMS packages from a local repo (~250 MB of - headers on the ISO). Later maybe the CEC and LED drivers the same way. -- **Vapor theme in the live session.** Add `cachyos-vapor` to - `packages_desktop.x86_64` and set it as the live user's look and feel in - `airootfs/etc/skel` (kdeglobals `LookAndFeelPackage`, no layout file, so - Plasma lays out Vapor at the live login). - **Steamify wizard pages in the installer**, before anything is installed: the same choices as Steamify's menu (conversion, boot into gamescope or desktop, theme, Deck icons, single user, shortcut + non-Steam game, diff --git a/archiso/airootfs/etc/xdg/autostart/steamify-live-theme.desktop b/archiso/airootfs/etc/xdg/autostart/steamify-live-theme.desktop new file mode 100644 index 0000000..0dec1d2 --- /dev/null +++ b/archiso/airootfs/etc/xdg/autostart/steamify-live-theme.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Name=Steamify live theme +Exec=/usr/local/bin/steamify-live-theme +OnlyShowIn=KDE; +X-KDE-autostart-phase=2 +NoDisplay=true diff --git a/archiso/airootfs/usr/local/bin/steamify-live-theme b/archiso/airootfs/usr/local/bin/steamify-live-theme new file mode 100755 index 0000000..64b3095 --- /dev/null +++ b/archiso/airootfs/usr/local/bin/steamify-live-theme @@ -0,0 +1,7 @@ +#!/bin/bash +# The live session in the Vapor look, with its SteamOS desktop layout. +# CachyOS's own layout comes from /etc/skel, which the live user gets before +# this runs; lookandfeeltool needs plasmashell up to replace it. +for _ in $(seq 30); do pgrep -u "$USER" -x plasmashell >/dev/null && break; sleep 1; done +sleep 2 +lookandfeeltool -a com.valve.vapor.desktop --resetLayout diff --git a/archiso/packages_desktop.x86_64 b/archiso/packages_desktop.x86_64 index 6dc5c53..5fd8d02 100644 --- a/archiso/packages_desktop.x86_64 +++ b/archiso/packages_desktop.x86_64 @@ -90,6 +90,7 @@ linux-cachyos linux-cachyos-nvidia-open linux-cachyos-zfs linux-firmware +cachyos-vapor linux-firmware-marvell lsb-release lsof diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index b22e79f..7157029 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -28,6 +28,7 @@ file_permissions=( ["/usr/local/bin/choose-mirror"]="0:0:755" ["/usr/local/bin/dmcheck"]="0:0:755" ["/usr/local/bin/steamify-install"]="0:0:755" + ["/usr/local/bin/steamify-live-theme"]="0:0:755" ["/usr/local/bin/calamares-online.sh"]="0:0:755" ["/usr/local/bin/remove-nvidia"]="0:0:755" ["/usr/local/bin/removeun"]="0:0:755" diff --git a/build-live-modules.sh b/build-live-modules.sh new file mode 100755 index 0000000..f6c496f --- /dev/null +++ b/build-live-modules.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# build-live-modules.sh: builds Steamify's power-off fix for the live ISO's +# kernels, so the Steam Machine stays off after shutting down from the live +# session (recent kernels keep a firmware wake bit set; see Steamify's +# patches/steamify-fremont-poweroff.c). Run as root in the build container, +# after steamify-prepare.sh and before buildiso.sh: the headers come from the +# same repos at the same time as the ISO's kernels, so the versions match. +# The module checks for Fremont itself and does nothing on other hardware. +set -euo pipefail +cd "$(dirname "$0")" +src=archiso/airootfs/usr/local/share/steamify/steamify-fremont-poweroff.c +[[ -f "$src" ]] || { echo "No $src: run steamify-prepare.sh first." >&2; exit 1; } + +pacman -S --needed --noconfirm base-devel clang llvm lld linux-cachyos-headers linux-cachyos-lts-headers >/dev/null +work="$(mktemp -d)" +cp "$src" "$work/" +echo 'obj-m += steamify-fremont-poweroff.o' > "$work/Makefile" +for build in /usr/lib/modules/*/build; do + kver="$(basename "$(dirname "$build")")" + # CachyOS's kernels differ in compiler (linux-cachyos is clang-built): + # build with the one the kernel was built with. + llvm=() + grep -q '^CONFIG_CC_IS_CLANG=y' "$build/.config" && llvm=(LLVM=1) + make -s -C "$build" M="$work" "${llvm[@]}" clean modules + install -Dm644 "$work/steamify-fremont-poweroff.ko" \ + "archiso/airootfs/usr/lib/modules/$kver/extra/steamify-fremont-poweroff.ko" + echo "Power-off fix built for $kver." +done +rm -rf "$work" +install -Dm644 /dev/stdin archiso/airootfs/etc/modules-load.d/steamify-fremont-poweroff.conf <<< 'steamify-fremont-poweroff' diff --git a/steamify-prepare.sh b/steamify-prepare.sh index 1783fa2..9adede4 100755 --- a/steamify-prepare.sh +++ b/steamify-prepare.sh @@ -11,6 +11,13 @@ if [[ -n "${1:-}" ]]; then else curl -fsSL https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify.sh -o "$dest" fi +# The power-off fix's source, for build-live-modules.sh (live session). +poweroff="$(dirname "$dest")/steamify-fremont-poweroff.c" +if [[ -n "${1:-}" ]]; then + cp "$1/patches/steamify-fremont-poweroff.c" "$poweroff" +else + curl -fsSL https://raw.githubusercontent.com/theupriser/steamify-cachyos/main/patches/steamify-fremont-poweroff.c -o "$poweroff" +fi grep -q -- '--defaults' "$dest" || { echo "This Steamify has no --defaults (needs 2.6.0 or newer)." >&2; exit 1; } chmod 755 "$dest" # Temporary: cachyos-calamares-next 3.4.2-13 is linked against Boost 1.91 From abb534613e9f571c91d0c27ac7cedf3ae0c603bc Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 21:31:57 +0200 Subject: [PATCH 18/79] fix: Live power-off module: a fresh build folder per kernel, no clean in the same make (kbuild re-ran itself endlessly) --- build-live-modules.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/build-live-modules.sh b/build-live-modules.sh index f6c496f..9b81ee7 100755 --- a/build-live-modules.sh +++ b/build-live-modules.sh @@ -12,19 +12,21 @@ src=archiso/airootfs/usr/local/share/steamify/steamify-fremont-poweroff.c [[ -f "$src" ]] || { echo "No $src: run steamify-prepare.sh first." >&2; exit 1; } pacman -S --needed --noconfirm base-devel clang llvm lld linux-cachyos-headers linux-cachyos-lts-headers >/dev/null -work="$(mktemp -d)" -cp "$src" "$work/" -echo 'obj-m += steamify-fremont-poweroff.o' > "$work/Makefile" for build in /usr/lib/modules/*/build; do kver="$(basename "$(dirname "$build")")" + # A fresh folder per kernel: `make clean modules` in one call makes + # kbuild re-run itself endlessly for an external module. + work="$(mktemp -d)" + cp "$src" "$work/" + echo 'obj-m += steamify-fremont-poweroff.o' > "$work/Makefile" # CachyOS's kernels differ in compiler (linux-cachyos is clang-built): # build with the one the kernel was built with. llvm=() grep -q '^CONFIG_CC_IS_CLANG=y' "$build/.config" && llvm=(LLVM=1) - make -s -C "$build" M="$work" "${llvm[@]}" clean modules + make -s -C "$build" M="$work" "${llvm[@]}" modules install -Dm644 "$work/steamify-fremont-poweroff.ko" \ "archiso/airootfs/usr/lib/modules/$kver/extra/steamify-fremont-poweroff.ko" + rm -rf "$work" echo "Power-off fix built for $kver." done -rm -rf "$work" install -Dm644 /dev/stdin archiso/airootfs/etc/modules-load.d/steamify-fremont-poweroff.conf <<< 'steamify-fremont-poweroff' From c6212a774b18782e17e126150d67736345e77cff Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 21:50:24 +0200 Subject: [PATCH 19/79] fix: The live session's name is set after the packages (a package overwrote airootfs' os-release) --- TODO.md | 14 +++++++++----- steamify-customize.sh | 10 ++++++++++ util-iso.sh | 4 ++++ 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100755 steamify-customize.sh diff --git a/TODO.md b/TODO.md index 52a091a..2bd0d9a 100644 --- a/TODO.md +++ b/TODO.md @@ -2,11 +2,10 @@ ## Open -1. **Test the live session** after the next build (`build-live-modules.sh` - runs in the container before buildiso.sh): Vapor look and layout at the - live login, `lsmod | grep steamify` in the live session (on the Steam - Machine it loads; in the VM with `--fremont` too), and shutting down from - the live session on the real Steam Machine stays off. +1. **Check the live name** after the next build: Hello's subtitle should say + "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, + run by mkarchiso after the packages; the airootfs copy of os-release is + overwritten by a package). 2. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in steamify-cachyos, pushed, no PR yet (checked 2026-09-27: not on main, newest release v2.5.2). Ready: open it; the user @@ -17,6 +16,11 @@ ## Done +- **Live session** (VM, `--fremont`): Vapor look and layout (Steam Deck + wallpaper) at the live login; the power-off module is built for both ISO + kernels and loaded at boot, in the VM it returns "No such device" (no + AMDI0030 GPIO controller), as designed. Whether it keeps the real Steam + Machine off is part of the hardware test. - **Regression test 2.6.0 on an existing desktop install** (test VM from ssh-ready, `--fremont`): full first run, re-apply, notifications/CEC/theme off and on again. No errors; user units enabled and running, theme applied diff --git a/steamify-customize.sh b/steamify-customize.sh new file mode 100755 index 0000000..07a6f30 --- /dev/null +++ b/steamify-customize.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# steamify-customize.sh : changes to the live system after its +# packages are installed (mkarchiso runs it, see modify_mkarchiso in +# util-iso.sh); files in airootfs are copied before the packages, which +# overwrite them. +set -euo pipefail +root="$1" +# The name CachyOS Hello shows ("Steamify CachyOS, based on CachyOS rolling"). +sed -i -e 's/^NAME=.*/NAME="Steamify CachyOS, based on CachyOS"/' \ + -e 's/^PRETTY_NAME=.*/PRETTY_NAME="Steamify CachyOS, based on CachyOS"/' "$root/etc/os-release" diff --git a/util-iso.sh b/util-iso.sh index da76a99..5406835 100755 --- a/util-iso.sh +++ b/util-iso.sh @@ -129,6 +129,10 @@ modify_mkarchiso() { else msg "mkarchiso is already patched!" fi + # Steamify: live-system changes after the packages (they overwrite airootfs). + if ! grep -q 'steamify-customize.sh' /usr/bin/mkarchiso; then + sudo sed "s#_run_once _make_customize_airootfs#_run_once _make_customize_airootfs\n\t${src_dir}/steamify-customize.sh \"\${pacstrap_dir}\"#" -i /usr/bin/mkarchiso + fi } prepare_profile(){ From 81f2eea63d60daf6f5d2eb507b869e78f85b4cb5 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 21:59:38 +0200 Subject: [PATCH 20/79] feat: Steamify's choices in the installer: a Steam Machine page (what to leave out) and a Start in page (gaming mode or desktop), passed to steamify.sh --defaults --- TODO.md | 26 +++++++------ .../modules/packagechooser_steamifyboot.conf | 16 ++++++++ .../modules/packagechooser_steamifyskip.conf | 37 +++++++++++++++++++ .../modules/shellprocess_steamify.conf | 2 +- .../usr/local/bin/calamares-online.sh | 3 +- .../airootfs/usr/local/bin/steamify-install | 9 ++++- 6 files changed, 77 insertions(+), 16 deletions(-) create mode 100644 archiso/airootfs/etc/calamares/modules/packagechooser_steamifyboot.conf create mode 100644 archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf diff --git a/TODO.md b/TODO.md index 2bd0d9a..370e28e 100644 --- a/TODO.md +++ b/TODO.md @@ -2,16 +2,23 @@ ## Open -1. **Check the live name** after the next build: Hello's subtitle should say +1. **Test the Steamify installer pages** (after the next build, needs + Steamify 2.7.0 with `--skip`/`--boot`; the ISO has the branch's bundle + until it's released): a "Steam Machine" page (leave out: multi-select, + nothing selected = full setup) and a "Start in" page (gaming mode or + desktop) after the Desktop page; check `/var/log/steamify-install.log` + for the skipped items and the boot choice. If Calamares doesn't expand + `${gs[...]}` in shellprocess, the log shows "Unknown item: ${gs[...". +2. **Check the live name** after the next build: Hello's subtitle should say "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is overwritten by a package). -2. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in +3. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in steamify-cachyos, pushed, no PR yet (checked 2026-09-27: not on main, newest release v2.5.2). Ready: open it; the user merges (never commit to main). The ISO's first-login step needs 2.6.0 released. -3. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, +4. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, power-off) before calling the ISO usable. ## Done @@ -39,15 +46,10 @@ ## Later -- **Steamify wizard pages in the installer**, before anything is installed: - the same choices as Steamify's menu (conversion, boot into gamescope or - desktop, theme, Deck icons, single user, shortcut + non-Steam game, - notifications, VRAM booster, HDMI-CEC, Steam Machine support + power-off - fix), defaults ticked like a first run. A Calamares page (netinstall-style - YAML or a QML module in the `show` sequence) stores the ticked ids in - global storage; `steamify-install` passes them to - `steamify.sh --backend apply ` (`--boot gamescope|desktop`) instead of - `--defaults`. +- **Checkboxes instead of the leave-out list**: Calamares has no ready + checkbox page whose ticks come out as plain ids (netinstall's are package + installs); it would take a QML page (packagechooserq) or a small C++ + module. Steamify's side (`--skip`, `--boot`) stays the same. - **Branding**: the live session's os-release says "Steamify, based on CachyOS" (Hello's subtitle); Hello's window title and the boot menu still say CachyOS. Check with the CachyOS team. diff --git a/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyboot.conf b/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyboot.conf new file mode 100644 index 0000000..b0ff2dd --- /dev/null +++ b/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyboot.conf @@ -0,0 +1,16 @@ +# Steamify: where the Steam Machine starts (steamify-install passes --boot). +--- +mode: required +method: legacy +labels: + step: "Start in" +default: gamescope +items: + - id: gamescope + name: "Gaming mode" + description: "Start straight into Steam's gaming mode, like SteamOS. Switch to Desktop in Steam's power menu brings you to the desktop." + screenshot: ":/images/no-selection.png" + - id: desktop + name: "Desktop" + description: "Start in the Plasma desktop. Return to Gaming Mode on the desktop brings you to Steam's gaming mode." + screenshot: ":/images/no-selection.png" diff --git a/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf b/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf new file mode 100644 index 0000000..9eb5e9d --- /dev/null +++ b/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf @@ -0,0 +1,37 @@ +# Steamify: which parts of the Steam Machine setup to leave out. Nothing +# selected means Steamify's full default setup; the ids are Steamify's menu +# items (steamify-install passes them as --skip). +--- +mode: optionalmultiple +method: legacy +labels: + step: "Steam Machine" +items: + - id: "" + name: "Everything" + description: "Select what to leave out of the Steam Machine setup (Steamify). Leave everything unselected for the full SteamOS-style setup; everything can be changed later in the Steamify app." + screenshot: ":/images/no-selection.png" + - id: theme + name: "Leave out: SteamOS theme" + description: "The Vapor look for the desktop, with SteamOS's panel layout and Add to Steam." + - id: glyphs + name: "Leave out: Steam Deck/Machine icons" + description: "Steam Deck button icons in gaming mode." + - id: single + name: "Leave out: single user mode" + description: "No password, lock screen, user switching or log out, like SteamOS." + - id: launcher + name: "Leave out: Steamify shortcut" + description: "The Steamify app on the desktop and in the launcher, to change these choices later." + - id: notify + name: "Leave out: update notifications" + description: "A notification when there's a new Steamify. It never updates by itself." + - id: vram + name: "Leave out: VRAM booster" + description: "The game in front keeps its video memory; background apps make room." + - id: cec + name: "Leave out: HDMI-CEC" + description: "Use Steam with the TV remote, TV on and off with the Steam Machine." + - id: machine + name: "Leave out: Steam Machine support" + description: "The LED bar driver, hardware settings in Steam and the power-off fix." diff --git a/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf b/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf index 45727f8..bf86d9c 100644 --- a/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf +++ b/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf @@ -4,7 +4,7 @@ dontChroot: true timeout: 3600 script: - - "-/usr/local/bin/steamify-install ${ROOT} ${USER}" + - "-/usr/local/bin/steamify-install ${ROOT} ${USER} \"${gs[packagechooser_steamifyskip]}\" \"${gs[packagechooser_steamifyboot]}\"" i18n: name: "Setting up the Steam Machine (Steamify)" diff --git a/archiso/airootfs/usr/local/bin/calamares-online.sh b/archiso/airootfs/usr/local/bin/calamares-online.sh index 992767d..aaa71d8 100755 --- a/archiso/airootfs/usr/local/bin/calamares-online.sh +++ b/archiso/airootfs/usr/local/bin/calamares-online.sh @@ -47,7 +47,8 @@ EOF sudo cp "/usr/share/calamares/settings_${mode}.conf" /etc/calamares/settings.conf # Steamify: its step (modules/shellprocess_steamify.conf) before the # installer cleans up after itself. - sudo sed -i -e 's/^- id: cleanup_calamares$/- id: steamify\n module: shellprocess\n config: shellprocess_steamify.conf\n\n&/' \ + sudo sed -i -e 's/^- id: cleanup_calamares$/- id: steamifyskip\n module: packagechooser\n config: packagechooser_steamifyskip.conf\n\n- id: steamifyboot\n module: packagechooser\n config: packagechooser_steamifyboot.conf\n\n- id: steamify\n module: shellprocess\n config: shellprocess_steamify.conf\n\n&/' \ + -e 's/^ - packagechooser@desktop$/&\n - packagechooser@steamifyskip\n - packagechooser@steamifyboot/' \ -e 's/^ - shellprocess@cleanup_calamares$/ - shellprocess@steamify\n&/' /etc/calamares/settings.conf exec pkexec-wrapper calamares -D6 >> $log } diff --git a/archiso/airootfs/usr/local/bin/steamify-install b/archiso/airootfs/usr/local/bin/steamify-install index 08de7ff..1a98eea 100755 --- a/archiso/airootfs/usr/local/bin/steamify-install +++ b/archiso/airootfs/usr/local/bin/steamify-install @@ -1,11 +1,16 @@ #!/bin/bash -# steamify-install : runs Steamify's default setup for +# steamify-install [] [gamescope|desktop]: +# runs Steamify's default setup (minus what the installer's Steam Machine +# page leaves out, where the boot page says) for # the new user inside the installed system (Calamares, after the users and # services steps). Steamify refuses root and asks sudo per command, so the # user gets a NOPASSWD rule for this run only, named to be read last: sudo # takes the last matching rule, and a later %wheel rule would ask again. Never fails the install: a # problem leaves the log and Steamify can be run again from the desktop. root="$1" user="$2" +# The pages' ids, comma-separated; the "Everything" entry is an empty id. +skip="$(tr ',' '\n' <<< "${3:-}" | grep -v '^$' | paste -sd, -)" +boot="${4:-gamescope}" log="$root/var/log/steamify-install.log" rule="$root/etc/sudoers.d/zz-steamify-install" [[ -d "$root" && -n "$user" ]] || exit 0 @@ -15,7 +20,7 @@ printf '%s ALL=(ALL) NOPASSWD: ALL\n' "$user" > "$rule" chmod 440 "$rule" arch-chroot "$root" runuser -u "$user" -- env -i HOME="/home/$user" USER="$user" LOGNAME="$user" \ PATH=/usr/local/bin:/usr/bin TERM=dumb LANG=C.UTF-8 \ - bash -c 'cd ~ && bash /var/tmp/steamify.sh --defaults < /dev/null' > "$log" 2>&1 + bash -c 'cd ~ && bash /var/tmp/steamify.sh --defaults --skip "$0" --boot "$1" < /dev/null' "$skip" "$boot" > "$log" 2>&1 echo "exit: $?" >> "$log" rm -f "$rule" "$root/var/tmp/steamify.sh" exit 0 From 20230a4e5e4772421f3ead6a6cf09e77fdb89c08 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 22:15:12 +0200 Subject: [PATCH 21/79] docs: TODO: Steamify page with checkboxes, all ticked (the packagechooser page selects only one); PR status --- TODO.md | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/TODO.md b/TODO.md index 370e28e..037d645 100644 --- a/TODO.md +++ b/TODO.md @@ -2,27 +2,35 @@ ## Open -1. **Test the Steamify installer pages** (after the next build, needs - Steamify 2.7.0 with `--skip`/`--boot`; the ISO has the branch's bundle - until it's released): a "Steam Machine" page (leave out: multi-select, - nothing selected = full setup) and a "Start in" page (gaming mode or - desktop) after the Desktop page; check `/var/log/steamify-install.log` - for the skipped items and the boot choice. If Calamares doesn't expand - `${gs[...]}` in shellprocess, the log shows "Unknown item: ${gs[...". -2. **Check the live name** after the next build: Hello's subtitle should say +1. **Steamify installer page with checkboxes** (next, 2026-09-28). Tested + in the ISO VM: the current packagechooser page ("Steam Machine", mode + `optionalmultiple`) only lets you select one item, not several. Wanted: + - a page titled **"Steamify"** (not "Steam Machine"); + - **checkboxes**, one per Steamify option, **all ticked by default** + (opt-out: untick what you don't want), several at a time; + - the "Start in" page (gaming mode / desktop) can stay. + Calamares has no ready checkbox page whose ticks come out as plain ids + (netinstall's checkboxes are package installs), so this needs our own page: + a QML page (adapt CachyOS's `packagechooserq`) or a small Calamares + module. The unticked ids go to `steamify-install` as before + (`--skip --boot ...`, Steamify 2.7.0); Steamify needs no change. + Also still to check with it: that `${gs[...]}` reaches shellprocess (the + install log shows "Unknown item: ${gs[..." if not). +2. **Check the live name** (the build tree has it right: + `build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is overwritten by a package). -3. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in - steamify-cachyos, pushed, no PR yet (checked 2026-09-27: not on main, - newest release v2.5.2). Ready: open it; the user - merges (never commit to main). The ISO's first-login step needs 2.6.0 - released. +3. **Steamify PR** for `feat/defaults-options` (2.7.0, `4f6e6fd`: `--skip`, + `--boot`): pushed, no PR yet; the user merges (never commit to main). + 2.6.0 is released. Until 2.7.0 is, build the ISO with + `steamify-prepare.sh ~/projects/steamify-cachyos` (the branch). 4. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, power-off) before calling the ISO usable. ## Done +- **Steamify 2.6.0** released (`--defaults`, install-time mode). - **Live session** (VM, `--fremont`): Vapor look and layout (Steam Deck wallpaper) at the live login; the power-off module is built for both ISO kernels and loaded at boot, in the VM it returns "No such device" (no @@ -46,10 +54,6 @@ ## Later -- **Checkboxes instead of the leave-out list**: Calamares has no ready - checkbox page whose ticks come out as plain ids (netinstall's are package - installs); it would take a QML page (packagechooserq) or a small C++ - module. Steamify's side (`--skip`, `--boot`) stays the same. - **Branding**: the live session's os-release says "Steamify, based on CachyOS" (Hello's subtitle); Hello's window title and the boot menu still say CachyOS. Check with the CachyOS team. From 71ce968129e1a2e3e1cc9fd3730655c10a3b80ed Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 22:21:13 +0200 Subject: [PATCH 22/79] docs: TODO: toggle switches like the Steamify app are fine too --- TODO.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index 037d645..2ad733f 100644 --- a/TODO.md +++ b/TODO.md @@ -6,8 +6,11 @@ in the ISO VM: the current packagechooser page ("Steam Machine", mode `optionalmultiple`) only lets you select one item, not several. Wanted: - a page titled **"Steamify"** (not "Steam Machine"); - - **checkboxes**, one per Steamify option, **all ticked by default** - (opt-out: untick what you don't want), several at a time; + - **checkboxes or toggle switches** like the Steamify app's (`ui/qml` in + steamify-cachyos: the rows with "now on" and a switch), one per Steamify + option, **all on by default** (opt-out: switch off what you don't + want), several at a time; a QML page could reuse the app's look + (`Theme`, its toggle rows) and texts (`Texts`); - the "Start in" page (gaming mode / desktop) can stay. Calamares has no ready checkbox page whose ticks come out as plain ids (netinstall's checkboxes are package installs), so this needs our own page: From 9deb00708cce48d6e6add863280d9e2d84455cf9 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Sun, 27 Sep 2026 22:21:28 +0200 Subject: [PATCH 23/79] docs: TODO: toggle switches like the Steamify app preferred --- TODO.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TODO.md b/TODO.md index 2ad733f..a4c7cb1 100644 --- a/TODO.md +++ b/TODO.md @@ -6,7 +6,8 @@ in the ISO VM: the current packagechooser page ("Steam Machine", mode `optionalmultiple`) only lets you select one item, not several. Wanted: - a page titled **"Steamify"** (not "Steam Machine"); - - **checkboxes or toggle switches** like the Steamify app's (`ui/qml` in + - **toggle switches like the Steamify app's** (preferred, so the page + looks like Steamify itself; checkboxes only as a fallback) (`ui/qml` in steamify-cachyos: the rows with "now on" and a switch), one per Steamify option, **all on by default** (opt-out: switch off what you don't want), several at a time; a QML page could reuse the app's look From 63b1a769d5c3aef50a359b4940faddcc865b855c Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 10:08:19 +0200 Subject: [PATCH 24/79] fix: steamify-install passes --options (Steamify 2.7.0 dropped --skip); TODO: the Steamify page passes the ticked ids, build in the test VM --- .../modules/packagechooser_steamifyskip.conf | 2 +- archiso/airootfs/usr/local/bin/steamify-install | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf b/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf index 9eb5e9d..f2fcac2 100644 --- a/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf +++ b/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf @@ -1,6 +1,6 @@ # Steamify: which parts of the Steam Machine setup to leave out. Nothing # selected means Steamify's full default setup; the ids are Steamify's menu -# items (steamify-install passes them as --skip). +# items (steamify-install passes the others as --options). --- mode: optionalmultiple method: legacy diff --git a/archiso/airootfs/usr/local/bin/steamify-install b/archiso/airootfs/usr/local/bin/steamify-install index 1a98eea..65bf882 100755 --- a/archiso/airootfs/usr/local/bin/steamify-install +++ b/archiso/airootfs/usr/local/bin/steamify-install @@ -11,6 +11,16 @@ root="$1" user="$2" # The pages' ids, comma-separated; the "Everything" entry is an empty id. skip="$(tr ',' '\n' <<< "${3:-}" | grep -v '^$' | paste -sd, -)" boot="${4:-gamescope}" +# Steamify 2.7.0 takes the items to turn on (--options), not the ones to +# leave out: every item of the default setup minus the skipped ones (the +# power-off fix goes with Steam Machine support). Until the Steamify page +# passes the "on" list itself. +options="" +for id in gaming theme glyphs single launcher notify vram cec machine poweroff; do + [[ ",$skip," == *",$id,"* ]] && continue + [[ "$id" == poweroff && ",$skip," == *",machine,"* ]] && continue + options+="${options:+,}$id" +done log="$root/var/log/steamify-install.log" rule="$root/etc/sudoers.d/zz-steamify-install" [[ -d "$root" && -n "$user" ]] || exit 0 @@ -20,7 +30,7 @@ printf '%s ALL=(ALL) NOPASSWD: ALL\n' "$user" > "$rule" chmod 440 "$rule" arch-chroot "$root" runuser -u "$user" -- env -i HOME="/home/$user" USER="$user" LOGNAME="$user" \ PATH=/usr/local/bin:/usr/bin TERM=dumb LANG=C.UTF-8 \ - bash -c 'cd ~ && bash /var/tmp/steamify.sh --defaults --skip "$0" --boot "$1" < /dev/null' "$skip" "$boot" > "$log" 2>&1 + bash -c 'cd ~ && bash /var/tmp/steamify.sh --defaults --options "$0" --boot "$1" < /dev/null' "$options" "$boot" > "$log" 2>&1 echo "exit: $?" >> "$log" rm -f "$rule" "$root/var/tmp/steamify.sh" exit 0 From 8569209af3171a1b027c3f3926349cb150fb332a Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 10:08:49 +0200 Subject: [PATCH 25/79] docs: TODO: the Steamify page passes the ticked ids (--options); build and install the ISO in the test VM --- TODO.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/TODO.md b/TODO.md index a4c7cb1..bce05fd 100644 --- a/TODO.md +++ b/TODO.md @@ -16,8 +16,13 @@ Calamares has no ready checkbox page whose ticks come out as plain ids (netinstall's checkboxes are package installs), so this needs our own page: a QML page (adapt CachyOS's `packagechooserq`) or a small Calamares - module. The unticked ids go to `steamify-install` as before - (`--skip --boot ...`, Steamify 2.7.0); Steamify needs no change. + module. The page passes the **ticked** ids to `steamify-install`, which + runs `--defaults --options --boot gamescope|desktop` (Steamify 2.7.0: + exactly these on; Boot into can be a row under the conversion like in the + app, or stay its own page). Rows and texts can come from + `steamify.sh --backend status` (+ the app's `Texts.qml`). Until then + `steamify-install` turns the current page's "leave out" ids into + `--options`. "Add as non-Steam game" needs a Steam account: not at install. Also still to check with it: that `${gs[...]}` reaches shellprocess (the install log shows "Unknown item: ${gs[..." if not). 2. **Check the live name** (the build tree has it right: @@ -25,11 +30,17 @@ "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is overwritten by a package). -3. **Steamify PR** for `feat/defaults-options` (2.7.0, `4f6e6fd`: `--skip`, - `--boot`): pushed, no PR yet; the user merges (never commit to main). +3. **Steamify PR** for `feat/defaults-options` (2.7.0, `c771001`: + `--options`, `--boot`; also `steamify.sh --boot` on its own and the + HDMI-CEC volume fix): pushed and regression-tested in the VM (`--fremont`), + no PR yet; the user merges (never commit to main). 2.6.0 is released. Until 2.7.0 is, build the ISO with `steamify-prepare.sh ~/projects/steamify-cachyos` (the branch). -4. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, +4. **Build in the test VM** instead of on the Steam Machine + (steam-machine-iso skill), and install the result unattended with + `scripts/vminstall.sh --iso` (vm-install skill; the Calamares Steamify + step then needs `steamify-install` run from the live script). +5. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, power-off) before calling the ISO usable. ## Done From 9c779c1d7322353711cc3f58180e776035118a93 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 10:32:23 +0200 Subject: [PATCH 26/79] docs: TODO: the Steamify commit's hash after the author fix --- TODO.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TODO.md b/TODO.md index bce05fd..2968af2 100644 --- a/TODO.md +++ b/TODO.md @@ -30,7 +30,7 @@ "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is overwritten by a package). -3. **Steamify PR** for `feat/defaults-options` (2.7.0, `c771001`: +3. **Steamify PR** for `feat/defaults-options` (2.7.0, `c4ec755`: `--options`, `--boot`; also `steamify.sh --boot` on its own and the HDMI-CEC volume fix): pushed and regression-tested in the VM (`--fremont`), no PR yet; the user merges (never commit to main). From 78e7c869b953e412c7acee76c4ed8d18acc6e022 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 11:17:15 +0200 Subject: [PATCH 27/79] fix: the build finishes cleanly as root (chown with an empty $USER aborted it) and with the steamify-cachyos ISO name (no rename of a missing cachyos ISO) --- util-iso.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/util-iso.sh b/util-iso.sh index 5406835..84aee4e 100755 --- a/util-iso.sh +++ b/util-iso.sh @@ -199,10 +199,20 @@ run_build() { [ -d "$outFolder/$_profile" ] || mkdir -p "$outFolder/$_profile" cd ${work_dir}/archiso/ sudo mkarchiso -v -w ${work_dir} -o "$outFolder/$_profile" ${work_dir}/archiso/ - sudo chown $USER $outFolder + # $USER is empty when this runs as root (e.g. in a container): an empty + # chown failed and aborted the rest (the build was done, the exit code 1). + sudo chown "${SUDO_USER:-${USER:-$(id -un)}}" "$outFolder" - cp ${work_dir}/iso/arch/pkglist.x86_64.txt "$outFolder/$_profile/$(gen_iso_fn).pkgs.txt" - mv "$outFolder/$_profile/cachyos-$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)-x86_64.iso" "$outFolder/$_profile/${iso_file}" + # Steamify: profiledef.sh's iso_name (steamify-cachyos) names the ISO, so + # CachyOS's rename only applies when mkarchiso wrote cachyos-. + local built="$outFolder/$_profile/cachyos-$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)-x86_64.iso" + if [[ -e "$built" ]]; then + mv "$built" "$outFolder/$_profile/${iso_file}" + else + built="$(ls -t "$outFolder/$_profile"/*.iso | head -1)" + iso_file="$(basename "$built")" + fi + cp ${work_dir}/iso/arch/pkglist.x86_64.txt "$outFolder/$_profile/${iso_file%.iso}.pkgs.txt" msg "Done [Build ISO] ${iso_file}" msg "Finished building [%s]" "${_profile}" From 754a6a14dae77edc4e0fad1268f8ab80cfd630c9 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 11:41:00 +0200 Subject: [PATCH 28/79] feat: Steamify installer page in progress (CachyOS look, rows from steamify.sh --defaults --list, after the packages page); TODO --- TODO.md | 43 ++-- .../modules/packagechooser_steamifyboot.conf | 16 -- .../modules/packagechooser_steamifyskip.conf | 37 ---- .../modules/packagechooserq_steamifypage.conf | 10 + .../modules/shellprocess_steamify.conf | 2 +- .../usr/local/bin/calamares-online.sh | 9 +- .../airootfs/usr/local/bin/steamify-install | 35 ++-- .../local/share/steamify-installer/Items.qml | 20 ++ .../share/steamify-installer/SteamifyPage.qml | 185 ++++++++++++++++++ steamify-prepare.sh | 16 +- 10 files changed, 274 insertions(+), 99 deletions(-) delete mode 100644 archiso/airootfs/etc/calamares/modules/packagechooser_steamifyboot.conf delete mode 100644 archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf create mode 100644 archiso/airootfs/etc/calamares/modules/packagechooserq_steamifypage.conf create mode 100644 archiso/airootfs/usr/local/share/steamify-installer/Items.qml create mode 100644 archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml diff --git a/TODO.md b/TODO.md index 2968af2..d97cd73 100644 --- a/TODO.md +++ b/TODO.md @@ -2,29 +2,26 @@ ## Open -1. **Steamify installer page with checkboxes** (next, 2026-09-28). Tested - in the ISO VM: the current packagechooser page ("Steam Machine", mode - `optionalmultiple`) only lets you select one item, not several. Wanted: - - a page titled **"Steamify"** (not "Steam Machine"); - - **toggle switches like the Steamify app's** (preferred, so the page - looks like Steamify itself; checkboxes only as a fallback) (`ui/qml` in - steamify-cachyos: the rows with "now on" and a switch), one per Steamify - option, **all on by default** (opt-out: switch off what you don't - want), several at a time; a QML page could reuse the app's look - (`Theme`, its toggle rows) and texts (`Texts`); - - the "Start in" page (gaming mode / desktop) can stay. - Calamares has no ready checkbox page whose ticks come out as plain ids - (netinstall's checkboxes are package installs), so this needs our own page: - a QML page (adapt CachyOS's `packagechooserq`) or a small Calamares - module. The page passes the **ticked** ids to `steamify-install`, which - runs `--defaults --options --boot gamescope|desktop` (Steamify 2.7.0: - exactly these on; Boot into can be a row under the conversion like in the - app, or stay its own page). Rows and texts can come from - `steamify.sh --backend status` (+ the app's `Texts.qml`). Until then - `steamify-install` turns the current page's "leave out" ids into - `--options`. "Add as non-Steam game" needs a Steam account: not at install. - Also still to check with it: that `${gs[...]}` reaches shellprocess (the - install log shows "Unknown item: ${gs[..." if not). +1. **Steamify installer page** (in progress 2026-09-28; next ISO build after 13:00). + Done in the tree, not yet tried in Calamares: + - `packagechooserq@steamifypage` right after the packages page, titled + "Steamify"; the old skip/boot pages are gone. + - `usr/local/share/steamify-installer/SteamifyPage.qml`: CachyOS installer + look (palette, turquoise #00CED1, standard Switch/RadioButton), rows left, + explanation right, Boot into under the conversion. Stores the on-ids + (+ `boot` for desktop, `none`) as `packagechooser_steamifypage`; + `steamify-install` turns that into `--options`/`--boot`. + - Rows from `steamify.sh --defaults --list` (Steamify 2.8.0, + `feature/defaults-list`): `Items.qml` in `usr/local/share/steamify/qml` + (fallback: steamify-installer/Items.qml, copied by steamify-prepare.sh). + - **Next:** copy `Theme.qml` too (Texts.qml needs it); fix the RowLayout + "recursive rearrange" warning; `calamares-online.sh` downloads the newest + steamify.sh + Texts/Theme before Calamares (fallback: the ISO's) and writes + Items.qml from `--defaults --list`. Build with `steamify-prepare.sh <2.8.0 + checkout>` (`vmisobuild.sh --steamify /mnt`), test in the ISO VM + (`vmisoboot.sh --fresh --fremont`), check `/var/log/steamify-install.log`. + - Quick page test without a build: `qml6` in the test VM with a stub + `config` and stub io.calamares modules (QT_FORCE_STDERR_LOGGING=1). 2. **Check the live name** (the build tree has it right: `build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, diff --git a/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyboot.conf b/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyboot.conf deleted file mode 100644 index b0ff2dd..0000000 --- a/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyboot.conf +++ /dev/null @@ -1,16 +0,0 @@ -# Steamify: where the Steam Machine starts (steamify-install passes --boot). ---- -mode: required -method: legacy -labels: - step: "Start in" -default: gamescope -items: - - id: gamescope - name: "Gaming mode" - description: "Start straight into Steam's gaming mode, like SteamOS. Switch to Desktop in Steam's power menu brings you to the desktop." - screenshot: ":/images/no-selection.png" - - id: desktop - name: "Desktop" - description: "Start in the Plasma desktop. Return to Gaming Mode on the desktop brings you to Steam's gaming mode." - screenshot: ":/images/no-selection.png" diff --git a/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf b/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf deleted file mode 100644 index f2fcac2..0000000 --- a/archiso/airootfs/etc/calamares/modules/packagechooser_steamifyskip.conf +++ /dev/null @@ -1,37 +0,0 @@ -# Steamify: which parts of the Steam Machine setup to leave out. Nothing -# selected means Steamify's full default setup; the ids are Steamify's menu -# items (steamify-install passes the others as --options). ---- -mode: optionalmultiple -method: legacy -labels: - step: "Steam Machine" -items: - - id: "" - name: "Everything" - description: "Select what to leave out of the Steam Machine setup (Steamify). Leave everything unselected for the full SteamOS-style setup; everything can be changed later in the Steamify app." - screenshot: ":/images/no-selection.png" - - id: theme - name: "Leave out: SteamOS theme" - description: "The Vapor look for the desktop, with SteamOS's panel layout and Add to Steam." - - id: glyphs - name: "Leave out: Steam Deck/Machine icons" - description: "Steam Deck button icons in gaming mode." - - id: single - name: "Leave out: single user mode" - description: "No password, lock screen, user switching or log out, like SteamOS." - - id: launcher - name: "Leave out: Steamify shortcut" - description: "The Steamify app on the desktop and in the launcher, to change these choices later." - - id: notify - name: "Leave out: update notifications" - description: "A notification when there's a new Steamify. It never updates by itself." - - id: vram - name: "Leave out: VRAM booster" - description: "The game in front keeps its video memory; background apps make room." - - id: cec - name: "Leave out: HDMI-CEC" - description: "Use Steam with the TV remote, TV on and off with the Steam Machine." - - id: machine - name: "Leave out: Steam Machine support" - description: "The LED bar driver, hardware settings in Steam and the power-off fix." diff --git a/archiso/airootfs/etc/calamares/modules/packagechooserq_steamifypage.conf b/archiso/airootfs/etc/calamares/modules/packagechooserq_steamifypage.conf new file mode 100644 index 0000000..b699cb9 --- /dev/null +++ b/archiso/airootfs/etc/calamares/modules/packagechooserq_steamifypage.conf @@ -0,0 +1,10 @@ +# Steamify: its page (the app's switches, /usr/local/share/steamify-installer/ +# SteamifyPage.qml). Legacy method: the page's choice (the ids that are on, +# plus "boot" for Boot into Desktop) goes to global storage as +# packagechooser_steamifypage, for shellprocess_steamify.conf. +--- +method: legacy +qmlFilename: /usr/local/share/steamify-installer/SteamifyPage.qml +labels: + step: "Steamify" +packageChoice: gaming,theme,glyphs,single,launcher,notify,vram,cec,machine,poweroff diff --git a/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf b/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf index bf86d9c..24dfd01 100644 --- a/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf +++ b/archiso/airootfs/etc/calamares/modules/shellprocess_steamify.conf @@ -4,7 +4,7 @@ dontChroot: true timeout: 3600 script: - - "-/usr/local/bin/steamify-install ${ROOT} ${USER} \"${gs[packagechooser_steamifyskip]}\" \"${gs[packagechooser_steamifyboot]}\"" + - "-/usr/local/bin/steamify-install ${ROOT} ${USER} \"${gs[packagechooser_steamifypage]}\"" i18n: name: "Setting up the Steam Machine (Steamify)" diff --git a/archiso/airootfs/usr/local/bin/calamares-online.sh b/archiso/airootfs/usr/local/bin/calamares-online.sh index aaa71d8..9f4fcad 100755 --- a/archiso/airootfs/usr/local/bin/calamares-online.sh +++ b/archiso/airootfs/usr/local/bin/calamares-online.sh @@ -45,10 +45,11 @@ main() { EOF sudo cp "/usr/share/calamares/settings_${mode}.conf" /etc/calamares/settings.conf - # Steamify: its step (modules/shellprocess_steamify.conf) before the - # installer cleans up after itself. - sudo sed -i -e 's/^- id: cleanup_calamares$/- id: steamifyskip\n module: packagechooser\n config: packagechooser_steamifyskip.conf\n\n- id: steamifyboot\n module: packagechooser\n config: packagechooser_steamifyboot.conf\n\n- id: steamify\n module: shellprocess\n config: shellprocess_steamify.conf\n\n&/' \ - -e 's/^ - packagechooser@desktop$/&\n - packagechooser@steamifyskip\n - packagechooser@steamifyboot/' \ + # Steamify: its page (packagechooserq@steamifypage, right after the + # packages page) and its step (modules/shellprocess_steamify.conf) before + # the installer cleans up after itself. + sudo sed -i -e 's/^- id: cleanup_calamares$/- id: steamifypage\n module: packagechooserq\n config: packagechooserq_steamifypage.conf\n\n- id: steamify\n module: shellprocess\n config: shellprocess_steamify.conf\n\n&/' \ + -e 's/^ - netinstall$/&\n - packagechooserq@steamifypage/' \ -e 's/^ - shellprocess@cleanup_calamares$/ - shellprocess@steamify\n&/' /etc/calamares/settings.conf exec pkexec-wrapper calamares -D6 >> $log } diff --git a/archiso/airootfs/usr/local/bin/steamify-install b/archiso/airootfs/usr/local/bin/steamify-install index 65bf882..5544fb9 100755 --- a/archiso/airootfs/usr/local/bin/steamify-install +++ b/archiso/airootfs/usr/local/bin/steamify-install @@ -1,29 +1,30 @@ #!/bin/bash -# steamify-install [] [gamescope|desktop]: -# runs Steamify's default setup (minus what the installer's Steam Machine -# page leaves out, where the boot page says) for +# steamify-install : runs Steamify's setup for # the new user inside the installed system (Calamares, after the users and -# services steps). Steamify refuses root and asks sudo per command, so the +# services steps), as chosen on the installer's Steamify page: is the +# ids that are on, comma-separated, plus "boot" for Boot into Desktop, or +# "none" (packagechooser_steamifypage). Steamify refuses root and asks sudo +# per command, so the # user gets a NOPASSWD rule for this run only, named to be read last: sudo # takes the last matching rule, and a later %wheel rule would ask again. Never fails the install: a # problem leaves the log and Steamify can be run again from the desktop. -root="$1" user="$2" -# The pages' ids, comma-separated; the "Everything" entry is an empty id. -skip="$(tr ',' '\n' <<< "${3:-}" | grep -v '^$' | paste -sd, -)" -boot="${4:-gamescope}" -# Steamify 2.7.0 takes the items to turn on (--options), not the ones to -# leave out: every item of the default setup minus the skipped ones (the -# power-off fix goes with Steam Machine support). Until the Steamify page -# passes the "on" list itself. -options="" -for id in gaming theme glyphs single launcher notify vram cec machine poweroff; do - [[ ",$skip," == *",$id,"* ]] && continue - [[ "$id" == poweroff && ",$skip," == *",machine,"* ]] && continue - options+="${options:+,}$id" +root="$1" user="$2" choice="${3:-}" +# Not filled in by Calamares (empty, or the literal ${gs[...]}): the page's +# default, everything on. +[[ -z "$choice" || "$choice" == *'${'* ]] && choice=gaming,theme,glyphs,single,launcher,notify,vram,cec,machine,poweroff +boot=gamescope options="" +for id in ${choice//,/ }; do + case "$id" in + boot) boot=desktop ;; + none) ;; + *) options+="${options:+,}$id" ;; + esac done log="$root/var/log/steamify-install.log" rule="$root/etc/sudoers.d/zz-steamify-install" [[ -d "$root" && -n "$user" ]] || exit 0 +# Everything switched off on the page: nothing to set up. +[[ -n "$options" ]] || { echo "Nothing chosen on the Steamify page." > "$log"; exit 0; } install -Dm755 /usr/local/share/steamify/steamify.sh "$root/var/tmp/steamify.sh" printf '%s ALL=(ALL) NOPASSWD: ALL\n' "$user" > "$rule" diff --git a/archiso/airootfs/usr/local/share/steamify-installer/Items.qml b/archiso/airootfs/usr/local/share/steamify-installer/Items.qml new file mode 100644 index 0000000..582574e --- /dev/null +++ b/archiso/airootfs/usr/local/share/steamify-installer/Items.qml @@ -0,0 +1,20 @@ +// The Steamify page's rows when `steamify.sh --defaults --list` can't be run +// (see calamares-online.sh, which writes the real list over this copy in +// /usr/local/share/steamify/qml at the start of the installer). +pragma Singleton +import QtQuick + +QtObject { + readonly property var rows: [ + { id: "gaming", label: "SteamOS conversion", hint: "boot into gaming mode, Steam on the desktop", kind: "toggle", parent: "", on: true, selectable: true }, + { id: "boot", label: "Boot into", hint: "", kind: "choice", parent: "gaming", on: false, selectable: true }, + { id: "theme", label: "Install SteamOS theme", hint: "Vapor look (cachyos-vapor)", kind: "toggle", parent: "", on: true, selectable: true }, + { id: "glyphs", label: "Install Steam Deck/Machine icons", hint: "Deck button icons in gaming mode", kind: "toggle", parent: "", on: true, selectable: true }, + { id: "single", label: "Single user mode", hint: "no password, lock screen or log out (SDDM)", kind: "toggle", parent: "", on: true, selectable: true }, + { id: "launcher", label: "Steamify shortcut", hint: "the app on the desktop, Steamify Terminal in the launcher", kind: "toggle", parent: "", on: true, selectable: true }, + { id: "notify", label: "Update notifications", hint: "a notification when there's a new Steamify", kind: "toggle", parent: "", on: true, selectable: true }, + { id: "cec", label: "HDMI-CEC", hint: "use Steam with the TV remote, TV on/off with the PC", kind: "toggle", parent: "", on: true, selectable: true }, + { id: "machine", label: "Steam Machine support", hint: "LED bar driver, hardware settings in Steam", kind: "toggle", parent: "", on: true, selectable: true }, + { id: "poweroff", label: "Power-off fix", hint: "the Steam Machine stays off after shutting down", kind: "toggle", parent: "machine", on: true, selectable: true } + ] +} diff --git a/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml b/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml new file mode 100644 index 0000000..144553b --- /dev/null +++ b/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml @@ -0,0 +1,185 @@ +// Steamify's page in Calamares (packagechooserq@steamifypage, method legacy), +// styled like the rest of CachyOS's installer: its palette, standard +// controls, CachyOS's turquoise for the selected row. Left the options, +// right what the selected (or hovered) one does. +// The rows come from Steamify itself: calamares-online.sh writes +// ../steamify/qml/Items.qml from `steamify.sh --defaults --list` (the newest +// Steamify, else the ISO's), so new options show up without a new ISO; the +// explanations are the app's (Texts.qml, same folder). +// The choice goes to Calamares' global storage as packagechooser_steamifypage: +// the ids that are on, comma-separated, plus "boot" for Boot into Desktop +// ("none" when nothing is on); steamify-install passes it to +// `steamify.sh --defaults --options ... --boot ...`. +import io.calamares.core 1.0 +import io.calamares.ui 1.0 +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import "../steamify/qml" + +Item { + id: page + width: parent.width + height: parent.height + + SystemPalette { id: pal; colorGroup: SystemPalette.Active } + readonly property color accent: "#00CED1" + + // Only what can be set up here (Steamify leaves out the rest). + readonly property var rows: Items.rows.filter(function (r) { return r.selectable; }) + property var want: ({}) + property string boot: "gamescope" + property int sel: 0 + + function label(r) { return (Texts.items[r.id] || {}).label || r.label; } + function hint(r) { return (Texts.items[r.id] || {}).hint || r.hint; } + function shown(r) { return !r.parent || !!want[r.parent]; } + + // Steamify's own rules: a sub-option needs its parent (turning a parent + // off turns its sub-options off); single user mode needs the conversion. + function toggle(id) { + var w = Object.assign({}, want); + w[id] = !w[id]; + for (var i = 0; i < rows.length; i++) { + var r = rows[i]; + if (w[id] && r.id === id && r.parent) w[r.parent] = true; + if (!w[id] && r.parent === id && r.kind === "toggle") w[r.id] = false; + if (w[id] && r.parent === id && r.kind === "toggle") w[r.id] = true; // opt-out sub-options + } + if (id === "single" && w.single) w.gaming = true; + if (id === "gaming" && !w.gaming) { w.single = false; boot = "gamescope"; } + want = w; + } + + function choice() { + var on = []; + for (var i = 0; i < rows.length; i++) + if (rows[i].kind === "toggle" && want[rows[i].id]) on.push(rows[i].id); + if (want.gaming && boot === "desktop") on.push("boot"); + return on.length ? on.join(",") : "none"; + } + onWantChanged: config.packageChoice = choice() + onBootChanged: config.packageChoice = choice() + Component.onCompleted: { + // Preselected like Steamify's first run. + var w = {}; + for (var i = 0; i < rows.length; i++) if (rows[i].kind === "toggle") w[rows[i].id] = rows[i].on; + want = w; + config.packageChoice = choice(); + } + + ColumnLayout { + anchors.fill: parent + anchors.margins: 16 + spacing: 12 + + Label { + Layout.fillWidth: true + text: "Steamify sets up the SteamOS experience while CachyOS installs. Everything can be changed later with the Steamify app." + wrapMode: Text.WordWrap + color: pal.windowText + } + + RowLayout { + Layout.fillWidth: true + Layout.fillHeight: true + spacing: 16 + + ListView { + id: list + Layout.fillHeight: true + Layout.preferredWidth: parent.width * 0.55 + clip: true + spacing: 4 + boundsBehavior: Flickable.StopAtBounds + model: page.rows + ScrollBar.vertical: ScrollBar { policy: ScrollBar.AsNeeded } + delegate: Rectangle { + id: row + required property var modelData + required property int index + readonly property var it: modelData + readonly property bool vis: page.shown(it) + readonly property bool selected: vis && index === page.sel + width: list.width - 12 + height: vis ? 52 : 0 + visible: vis + radius: 4 + color: selected ? Qt.rgba(page.accent.r, page.accent.g, page.accent.b, 0.18) : pal.base + border.width: 1 + border.color: selected ? page.accent : Qt.rgba(pal.windowText.r, pal.windowText.g, pal.windowText.b, 0.15) + + MouseArea { + anchors.fill: parent; hoverEnabled: true + // Hovering explains a row too, like selecting it. + onEntered: page.sel = row.index + onClicked: { page.sel = row.index; if (row.it.kind === "toggle") page.toggle(row.it.id); } + } + RowLayout { + anchors.fill: parent + anchors.leftMargin: row.it.parent ? 32 : 12 + anchors.rightMargin: 12 + spacing: 12 + ColumnLayout { + Layout.fillWidth: true + spacing: 0 + Label { Layout.fillWidth: true; text: page.label(row.it); font.bold: true; elide: Text.ElideRight; color: pal.text } + Label { Layout.fillWidth: true; text: page.hint(row.it); elide: Text.ElideRight; color: pal.text; opacity: 0.7; font.pointSize: 8.5 } + } + Switch { + visible: row.it.kind === "toggle" + checked: !!page.want[row.it.id] + onToggled: { page.sel = row.index; page.toggle(row.it.id); } + } + RowLayout { + visible: row.it.kind === "choice" + spacing: 4 + RadioButton { text: "Gaming mode"; checked: page.boot === "gamescope" + onClicked: { page.sel = row.index; page.boot = "gamescope"; } } + RadioButton { text: "Desktop"; checked: page.boot === "desktop" + onClicked: { page.sel = row.index; page.boot = "desktop"; } } + } + } + } + } + + // What the selected (or hovered) option does. + Rectangle { + id: detail + readonly property var it: page.rows[page.sel] || ({}) + readonly property var tx: Texts.items[it.id] || ({}) + Layout.fillWidth: true + Layout.fillHeight: true + radius: 4 + color: pal.base + border.width: 1 + border.color: Qt.rgba(pal.windowText.r, pal.windowText.g, pal.windowText.b, 0.15) + onItChanged: flick.contentY = 0 + + Flickable { + id: flick + anchors.fill: parent + anchors.margins: 16 + clip: true + contentHeight: col.implicitHeight + boundsBehavior: Flickable.StopAtBounds + ScrollBar.vertical: ScrollBar { policy: ScrollBar.AsNeeded } + ColumnLayout { + id: col + width: flick.width - 12 + spacing: 10 + Label { Layout.fillWidth: true; text: detail.it.id ? page.label(detail.it) : ""; font.bold: true; font.pointSize: 13 + wrapMode: Text.WordWrap; color: pal.text } + Label { Layout.fillWidth: true; text: detail.tx.body || page.hint(detail.it) || ""; wrapMode: Text.WordWrap; color: pal.text } + Label { visible: (detail.tx.changes || []).length > 0; text: "What it changes"; font.bold: true; color: pal.text; topPadding: 4 } + Repeater { + model: detail.tx.changes || [] + Label { required property string modelData; Layout.fillWidth: true; text: "• " + modelData + wrapMode: Text.WordWrap; color: pal.text } + } + } + } + } + } + } +} diff --git a/steamify-prepare.sh b/steamify-prepare.sh index 9adede4..1d7154e 100755 --- a/steamify-prepare.sh +++ b/steamify-prepare.sh @@ -1,7 +1,7 @@ #!/bin/bash # steamify-prepare.sh [steamify checkout]: puts the Steamify bundle on the # ISO (archiso/airootfs/usr/local/share/steamify/steamify.sh), used by the -# installer's Steamify step. Built from a checkout when given, else the +# installer's Steamify step, and what its Steamify page shows (qml/). Built from a checkout when given, else the # newest release. Run before buildiso.sh. set -euo pipefail dest="$(cd "$(dirname "$0")" && pwd)/archiso/airootfs/usr/local/share/steamify/steamify.sh" @@ -18,6 +18,20 @@ if [[ -n "${1:-}" ]]; then else curl -fsSL https://raw.githubusercontent.com/theupriser/steamify-cachyos/main/patches/steamify-fremont-poweroff.c -o "$poweroff" fi +# The installer's Steamify page (/usr/local/share/steamify-installer/ +# SteamifyPage.qml) shows the app's explanations (Texts.qml, from the +# checkout, else the newest release's app) and its rows (Items.qml: this +# fallback until calamares-online.sh writes the real list). +qml="$(dirname "$dest")/qml" +rm -rf "$qml"; mkdir -p "$qml" +if [[ -n "${1:-}" ]]; then + cp "$1/ui/qml/Texts.qml" "$qml/" +else + curl -fsSL https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify-app.tar.gz | + tar -xz -C "$qml" --strip-components=2 ui/qml/Texts.qml +fi +cp "$(cd "$(dirname "$0")" && pwd)/archiso/airootfs/usr/local/share/steamify-installer/Items.qml" "$qml/" +printf '%s\n' 'singleton Texts 1.0 Texts.qml' 'singleton Items 1.0 Items.qml' > "$qml/qmldir" grep -q -- '--defaults' "$dest" || { echo "This Steamify has no --defaults (needs 2.6.0 or newer)." >&2; exit 1; } chmod 755 "$dest" # Temporary: cachyos-calamares-next 3.4.2-13 is linked against Boost 1.91 From f58fa9bb1b779aa79c0608b76089aaaa460c50de Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 12:50:58 +0200 Subject: [PATCH 29/79] feat: the Steamify page fetches the newest steamify.sh + rows before Calamares starts; fix layout warning and Theme.qml copy --- .../usr/local/bin/calamares-online.sh | 32 +++++++++++++++++++ .../share/steamify-installer/SteamifyPage.qml | 4 ++- steamify-prepare.sh | 8 ++--- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/archiso/airootfs/usr/local/bin/calamares-online.sh b/archiso/airootfs/usr/local/bin/calamares-online.sh index 9f4fcad..26bb3f1 100755 --- a/archiso/airootfs/usr/local/bin/calamares-online.sh +++ b/archiso/airootfs/usr/local/bin/calamares-online.sh @@ -44,6 +44,38 @@ main() { ########## System: $SYSTEM EOF + # Steamify: try the newest release before Calamares starts, so the page + # and the install step both show/use it; keep the ISO's copy (from + # steamify-prepare.sh) on any failure (no network, GitHub unreachable). + local sdir=/usr/local/share/steamify sbin="$sdir/steamify.sh" sqml="$sdir/qml" + local tmp; tmp="$(mktemp)" + if curl -fsSL --max-time 20 https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify.sh -o "$tmp" && + grep -q -- '--defaults' "$tmp"; then + sudo install -Dm755 "$tmp" "$sbin" + fi + rm -f "$tmp" + tmp="$(mktemp -d)" + if curl -fsSL --max-time 20 https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify-app.tar.gz | + tar -xz -C "$tmp" --strip-components=2 ui/qml/Theme.qml ui/qml/Texts.qml 2>/dev/null; then + sudo cp "$tmp/Theme.qml" "$tmp/Texts.qml" "$sqml/" + fi + rm -rf "$tmp" + # The page's rows, from whichever steamify.sh ended up on the ISO + # (regenerated even when the download failed: the fallback Items.qml + # doesn't know this machine, e.g. no VRAM region or no Steam account yet). + # JSON is valid JS array-literal syntax, so the output goes straight into + # the singleton as-is (--list guarantees one line of only its own JSON + # punctuation and text fields Steamify itself writes: nothing here can + # break out of the property). + tmp="$(mktemp)" + if "$sbin" --defaults --list > "$tmp" 2>/dev/null && [[ -s "$tmp" ]]; then + { printf 'pragma Singleton\nimport QtQuick\n\nQtObject {\n readonly property var rows: ' + cat "$tmp" + printf '\n}\n' + } | sudo tee "$sqml/Items.qml" > /dev/null + fi + rm -f "$tmp" + sudo cp "/usr/share/calamares/settings_${mode}.conf" /etc/calamares/settings.conf # Steamify: its page (packagechooserq@steamifypage, right after the # packages page) and its step (modules/shellprocess_steamify.conf) before diff --git a/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml b/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml index 144553b..e06f551 100644 --- a/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml +++ b/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml @@ -88,7 +88,8 @@ Item { ListView { id: list Layout.fillHeight: true - Layout.preferredWidth: parent.width * 0.55 + Layout.fillWidth: true + Layout.preferredWidth: 55 clip: true spacing: 4 boundsBehavior: Flickable.StopAtBounds @@ -150,6 +151,7 @@ Item { readonly property var tx: Texts.items[it.id] || ({}) Layout.fillWidth: true Layout.fillHeight: true + Layout.preferredWidth: 45 radius: 4 color: pal.base border.width: 1 diff --git a/steamify-prepare.sh b/steamify-prepare.sh index 1d7154e..c133684 100755 --- a/steamify-prepare.sh +++ b/steamify-prepare.sh @@ -19,19 +19,19 @@ else curl -fsSL https://raw.githubusercontent.com/theupriser/steamify-cachyos/main/patches/steamify-fremont-poweroff.c -o "$poweroff" fi # The installer's Steamify page (/usr/local/share/steamify-installer/ -# SteamifyPage.qml) shows the app's explanations (Texts.qml, from the +# SteamifyPage.qml) shows the app's explanations (Theme.qml, Texts.qml, from the # checkout, else the newest release's app) and its rows (Items.qml: this # fallback until calamares-online.sh writes the real list). qml="$(dirname "$dest")/qml" rm -rf "$qml"; mkdir -p "$qml" if [[ -n "${1:-}" ]]; then - cp "$1/ui/qml/Texts.qml" "$qml/" + cp "$1"/ui/qml/{Theme,Texts}.qml "$qml/" else curl -fsSL https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify-app.tar.gz | - tar -xz -C "$qml" --strip-components=2 ui/qml/Texts.qml + tar -xz -C "$qml" --strip-components=2 ui/qml/Theme.qml ui/qml/Texts.qml fi cp "$(cd "$(dirname "$0")" && pwd)/archiso/airootfs/usr/local/share/steamify-installer/Items.qml" "$qml/" -printf '%s\n' 'singleton Texts 1.0 Texts.qml' 'singleton Items 1.0 Items.qml' > "$qml/qmldir" +printf '%s\n' 'singleton Theme 1.0 Theme.qml' 'singleton Texts 1.0 Texts.qml' 'singleton Items 1.0 Items.qml' > "$qml/qmldir" grep -q -- '--defaults' "$dest" || { echo "This Steamify has no --defaults (needs 2.6.0 or newer)." >&2; exit 1; } chmod 755 "$dest" # Temporary: cachyos-calamares-next 3.4.2-13 is linked against Boost 1.91 From 28fe327abe2f66775756c61ccee983db6cbb3efb Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 13:06:49 +0200 Subject: [PATCH 30/79] fix: buildiso.sh's EXIT trap no longer reports a fake error after a successful build --- buildiso.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/buildiso.sh b/buildiso.sh index 7effbf4..055d50f 100755 --- a/buildiso.sh +++ b/buildiso.sh @@ -76,6 +76,10 @@ for sig in TERM HUP QUIT; do done trap 'trap_exit INT "$(gettext "Aborted by user! Exiting...")"' INT trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR -trap 'trap_exit EXIT "$(gettext "An unknown error has occurred. Exiting...")"' EXIT +# Steamify: unconditional, so it printed "An unknown error has occurred" +# (and tried to self-kill with the bogus signal name EXIT) after every +# build, success included. Only report it, and only exit through +# trap_exit's self-kill, on an actual nonzero exit. +trap 'ec=$?; if [[ $ec -ne 0 ]]; then trap_exit EXIT "$(gettext "An unknown error has occurred. Exiting...")"; else umount_fs; fi' EXIT run_build "${build_list_iso}" From 161c0376009d1b718878b80d4dfdbe03c2af849b Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 13:24:52 +0200 Subject: [PATCH 31/79] docs: TODO: packagechooserq module isn't installed here; packagechooser is single-select regardless of mode; netinstall is the confirmed multi-checkbox module --- TODO.md | 65 ++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/TODO.md b/TODO.md index d97cd73..712c8a6 100644 --- a/TODO.md +++ b/TODO.md @@ -2,27 +2,50 @@ ## Open -1. **Steamify installer page** (in progress 2026-09-28; next ISO build after 13:00). - Done in the tree, not yet tried in Calamares: - - `packagechooserq@steamifypage` right after the packages page, titled - "Steamify"; the old skip/boot pages are gone. - - `usr/local/share/steamify-installer/SteamifyPage.qml`: CachyOS installer - look (palette, turquoise #00CED1, standard Switch/RadioButton), rows left, - explanation right, Boot into under the conversion. Stores the on-ids - (+ `boot` for desktop, `none`) as `packagechooser_steamifypage`; - `steamify-install` turns that into `--options`/`--boot`. - - Rows from `steamify.sh --defaults --list` (Steamify 2.8.0, - `feature/defaults-list`): `Items.qml` in `usr/local/share/steamify/qml` - (fallback: steamify-installer/Items.qml, copied by steamify-prepare.sh). - - **Next:** copy `Theme.qml` too (Texts.qml needs it); fix the RowLayout - "recursive rearrange" warning; `calamares-online.sh` downloads the newest - steamify.sh + Texts/Theme before Calamares (fallback: the ISO's) and writes - Items.qml from `--defaults --list`. Build with `steamify-prepare.sh <2.8.0 - checkout>` (`vmisobuild.sh --steamify /mnt`), test in the ISO VM - (`vmisoboot.sh --fresh --fremont`), check `/var/log/steamify-install.log`. - - Quick page test without a build: `qml6` in the test VM with a stub - `config` and stub io.calamares modules (QT_FORCE_STDERR_LOGGING=1). -2. **Check the live name** (the build tree has it right: +1. **Steamify installer page** (2026-09-28, confirmed dead end, next: netinstall). + Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots): + - **`packagechooserq` (custom QML) does not exist on this Calamares + build.** `cachyos-calamares-next` ships `packagechooserq.conf` as a + vestigial config file, but no `.so`: `/usr/lib/calamares/modules/` + only has `packagechooser` (no q). Calamares refuses to start + ("Module ... not found in module search paths"). So `SteamifyPage.qml` + (app-styled switches) **cannot be loaded as a real module** on this + ISO; don't retry it without first confirming the module is installed + (`pacman -Ql cachyos-calamares-next | grep viewmodule`, or + `ls /usr/lib/calamares/modules` in the live session) before building. + - **`packagechooser` (the real, installed module), `method: legacy`, is + single-choice regardless of `mode`.** Tested `mode: optionalmultiple` + live: renders as "Choose a product from the list. The selected + product will be installed." — a single-select list, not checkboxes. + This matches the pre-session finding that started this whole redesign + (the very first packagechooser-based skip/boot pages had the same + single-select bug). So going back to plain `packagechooser` for + Steamify's options does **not** give real multi-select either. + - **`netinstall` is the one module that genuinely renders checkboxes** + for multiple simultaneous selections (confirmed live on the Packages + step: CachyOS Packages, shell config, base-devel, KDE-Desktop all + ticked together, a real QTreeView-with-checkboxes widget). Next + attempt: a `netinstall`-based page for Steamify's options (custom + `netinstall.yaml`/groups data instead of real packages; the choice + goes to global storage as `netinstallSelect`, which + `shellprocess_steamify.conf` would read instead of + `packagechooser_steamifypage`). Verify the exact global-storage key + and whether netinstall's groups mechanism can host non-package items + before building anything. + - **Lesson for next time (the user's point):** check a Calamares module + is actually installed/available (`ls /usr/lib/calamares/modules`, + `pacman -Ql cachyos-calamares-next`) and test the page live by editing + `/etc/calamares/settings.conf` + the module's `.conf` in a running + live session (`pkexec-wrapper calamares -D6`, no full ISO rebuild + needed) *before* spending a 13+ minute ISO build on it. + - Steamify-side work from this session (kept, still valid once a real + page module is found): `steamify.sh --defaults --list` (2.8.0, + released) and `calamares-online.sh`'s newest-steamify.sh-before-install + fetch. `SteamifyPage.qml`/`Items.qml`/`Theme.qml` copies are dead code + until/unless `packagechooserq` becomes available; left in the tree for + now, not referenced by any working settings.conf sequence. + +2. **Check the live name**2. **Check the live name** (the build tree has it right: `build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is From 6b69c1f619f9e242ea3ac39d92ac088c994ac192 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 13:30:22 +0200 Subject: [PATCH 32/79] docs: TODO correction - packagechooser mode:optionalmultiple works for the Steamify page, confirmed from global storage; no netinstall detour needed --- TODO.md | 85 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/TODO.md b/TODO.md index 712c8a6..d06b264 100644 --- a/TODO.md +++ b/TODO.md @@ -2,50 +2,55 @@ ## Open -1. **Steamify installer page** (2026-09-28, confirmed dead end, next: netinstall). - Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots): +1. **Steamify installer page** (2026-09-28, in progress; working path found). + Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots + the + Calamares debug log, `pkexec-wrapper calamares -D6` foregrounded): - **`packagechooserq` (custom QML) does not exist on this Calamares build.** `cachyos-calamares-next` ships `packagechooserq.conf` as a vestigial config file, but no `.so`: `/usr/lib/calamares/modules/` - only has `packagechooser` (no q). Calamares refuses to start - ("Module ... not found in module search paths"). So `SteamifyPage.qml` - (app-styled switches) **cannot be loaded as a real module** on this - ISO; don't retry it without first confirming the module is installed - (`pacman -Ql cachyos-calamares-next | grep viewmodule`, or - `ls /usr/lib/calamares/modules` in the live session) before building. - - **`packagechooser` (the real, installed module), `method: legacy`, is - single-choice regardless of `mode`.** Tested `mode: optionalmultiple` - live: renders as "Choose a product from the list. The selected - product will be installed." — a single-select list, not checkboxes. - This matches the pre-session finding that started this whole redesign - (the very first packagechooser-based skip/boot pages had the same - single-select bug). So going back to plain `packagechooser` for - Steamify's options does **not** give real multi-select either. - - **`netinstall` is the one module that genuinely renders checkboxes** - for multiple simultaneous selections (confirmed live on the Packages - step: CachyOS Packages, shell config, base-devel, KDE-Desktop all - ticked together, a real QTreeView-with-checkboxes widget). Next - attempt: a `netinstall`-based page for Steamify's options (custom - `netinstall.yaml`/groups data instead of real packages; the choice - goes to global storage as `netinstallSelect`, which - `shellprocess_steamify.conf` would read instead of - `packagechooser_steamifypage`). Verify the exact global-storage key - and whether netinstall's groups mechanism can host non-package items - before building anything. - - **Lesson for next time (the user's point):** check a Calamares module - is actually installed/available (`ls /usr/lib/calamares/modules`, - `pacman -Ql cachyos-calamares-next`) and test the page live by editing - `/etc/calamares/settings.conf` + the module's `.conf` in a running - live session (`pkexec-wrapper calamares -D6`, no full ISO rebuild - needed) *before* spending a 13+ minute ISO build on it. - - Steamify-side work from this session (kept, still valid once a real - page module is found): `steamify.sh --defaults --list` (2.8.0, - released) and `calamares-online.sh`'s newest-steamify.sh-before-install - fetch. `SteamifyPage.qml`/`Items.qml`/`Theme.qml` copies are dead code - until/unless `packagechooserq` becomes available; left in the tree for - now, not referenced by any working settings.conf sequence. + only has `packagechooser` (no q). Calamares refuses to start ("Module + ... not found in module search paths"). So `SteamifyPage.qml` + (app-styled switches) is dead: no module can load it here. Before + trying custom QML again, confirm the module is installed + (`ls /usr/lib/calamares/modules`, `pacman -Ql cachyos-calamares-next + | grep viewmodule`) in a live session first. + - **`packagechooser`, `mode: optionalmultiple`, DOES support real + multi-select**, confirmed from the Calamares debug log's actual + global-storage write (not from its static label text, which + misleadingly reads "Choose a product... the selected product will be + installed" in both single- and multi-select modes): + `"packagechooser@steamifypage" selected "single,gaming,theme"` — a + genuine comma-separated list, matching exactly the CSV format + `steamify-install` already expects for `--options`. This is the + `Config::updateGlobalStorage(const QStringList&)` overload (plural), + distinct from the single-choice `m_packageChoice` path. So the + **native, installed `packagechooser` module is the working page**; + no netinstall detour needed. + - Global storage key: `packagechooser_steamifypage` (module instance + id), value the comma-separated selected item ids. + - **Next:** generate `packagechooser_steamifypage.conf`'s `items:` list + from `steamify.sh --defaults --list` (in `calamares-online.sh`, same + spot as the abandoned Items.qml generation) instead of the QML + approach; check whether per-item `selected: true` (or similar) exists + for defaulting everything on, or whether "everything on by default" + needs a different mechanism (e.g. Steamify's own `--options` default + when the page reports nothing chosen). Boot into (gaming/desktop) + still needs its own answer: a separate small `packagechooser` + `mode: required` page (two items), since optionalmultiple's list + doesn't suit an exclusive either/or choice. + - Dead code from this session, left in the tree for now: + `SteamifyPage.qml`, `Items.qml`'s QML-singleton shape (its JSON + *content*, generated by `--defaults --list`, is still exactly what's + needed for the new plain-YAML `items:` list, just not as a QML file). + - **Lesson for next time:** verify a Calamares module is actually + installed before writing QML/config for it, and read a module's + *actual* logged global-storage writes (not just its UI label text) + before concluding whether a mode does what its name suggests. Both + are testable live in the booted ISO VM without any rebuild + (edit `/etc/calamares/modules/*.conf` + `settings.conf`, relaunch + `pkexec-wrapper calamares -D6`, watch its foregrounded debug output). -2. **Check the live name**2. **Check the live name** (the build tree has it right: +2. **Check the live name**2. **Check the live name**2. **Check the live name** (the build tree has it right: `build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is From d84daa45dc0e097c9eff011c995f44b7269e8630 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 13:41:38 +0200 Subject: [PATCH 33/79] docs: TODO: netinstall is the target module (real checkboxes); packagechooser works but looks wrong; keyboard-layout and Calamares-in-separate-tab gotchas --- TODO.md | 107 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 61 insertions(+), 46 deletions(-) diff --git a/TODO.md b/TODO.md index d06b264..7c51f3b 100644 --- a/TODO.md +++ b/TODO.md @@ -2,55 +2,70 @@ ## Open -1. **Steamify installer page** (2026-09-28, in progress; working path found). - Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots + the - Calamares debug log, `pkexec-wrapper calamares -D6` foregrounded): +1. **Steamify installer page** (2026-09-28, in progress). + Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots + + `pkexec-wrapper calamares -D6` foregrounded, its own debug log): - **`packagechooserq` (custom QML) does not exist on this Calamares - build.** `cachyos-calamares-next` ships `packagechooserq.conf` as a - vestigial config file, but no `.so`: `/usr/lib/calamares/modules/` - only has `packagechooser` (no q). Calamares refuses to start ("Module - ... not found in module search paths"). So `SteamifyPage.qml` - (app-styled switches) is dead: no module can load it here. Before - trying custom QML again, confirm the module is installed - (`ls /usr/lib/calamares/modules`, `pacman -Ql cachyos-calamares-next - | grep viewmodule`) in a live session first. - - **`packagechooser`, `mode: optionalmultiple`, DOES support real - multi-select**, confirmed from the Calamares debug log's actual - global-storage write (not from its static label text, which - misleadingly reads "Choose a product... the selected product will be - installed" in both single- and multi-select modes): + build**: only `packagechooser` is installed + (`ls /usr/lib/calamares/modules`). `SteamifyPage.qml` can't be loaded + by any real module here; confirm a module is actually installed + before writing QML/config for it again. + - **`packagechooser`, `mode: optionalmultiple`, genuinely multi-selects** + (confirmed from its actual global-storage write, not its static label + text which misleadingly says "Choose a product..." either way): `"packagechooser@steamifypage" selected "single,gaming,theme"` — a - genuine comma-separated list, matching exactly the CSV format - `steamify-install` already expects for `--options`. This is the - `Config::updateGlobalStorage(const QStringList&)` overload (plural), - distinct from the single-choice `m_packageChoice` path. So the - **native, installed `packagechooser` module is the working page**; - no netinstall detour needed. - - Global storage key: `packagechooser_steamifypage` (module instance - id), value the comma-separated selected item ids. - - **Next:** generate `packagechooser_steamifypage.conf`'s `items:` list - from `steamify.sh --defaults --list` (in `calamares-online.sh`, same - spot as the abandoned Items.qml generation) instead of the QML - approach; check whether per-item `selected: true` (or similar) exists - for defaulting everything on, or whether "everything on by default" - needs a different mechanism (e.g. Steamify's own `--options` default - when the page reports nothing chosen). Boot into (gaming/desktop) - still needs its own answer: a separate small `packagechooser` - `mode: required` page (two items), since optionalmultiple's list - doesn't suit an exclusive either/or choice. - - Dead code from this session, left in the tree for now: - `SteamifyPage.qml`, `Items.qml`'s QML-singleton shape (its JSON - *content*, generated by `--defaults --list`, is still exactly what's - needed for the new plain-YAML `items:` list, just not as a QML file). - - **Lesson for next time:** verify a Calamares module is actually - installed before writing QML/config for it, and read a module's - *actual* logged global-storage writes (not just its UI label text) - before concluding whether a mode does what its name suggests. Both - are testable live in the booted ISO VM without any rebuild - (edit `/etc/calamares/modules/*.conf` + `settings.conf`, relaunch - `pkexec-wrapper calamares -D6`, watch its foregrounded debug output). + real comma-separated list, matching `steamify-install`'s expected + `--options` format. Global storage key: `packagechooser_steamifypage`. + - **But its UI doesn't look like a multi-select** (a plain list with a + big blank preview pane, no checkboxes shown) — confirmed by the user + watching the VM live. Not good enough visually, even though it's + functionally correct. + - **Decision (the user, 2026-09-28): use `netinstall` instead**, the + module that actually renders a checkbox tree (confirmed live on the + Packages step: CachyOS Packages/shell config/base-devel/KDE-Desktop + all ticked together, real checkboxes). Not yet re-confirmed live this + session (the live session's keyboard layout flipped to Dutch after + the Welcome page's live keyboard preview, breaking `/`/`(`/`)` in + `qmptype.py`'s US-layout key map — `setxkbmap us` has no effect on + Wayland; fix the layout in the live session's own settings before + typing shell commands with those characters again). + - **Next**, from already-known Calamares internals (its `Config.cpp` + logged `"packagechooser@desktop" groups to select in netinstall + QList("KDE-Desktop")` — i.e. netinstall groups CAN be driven by + another module's choice, and/or defined directly): write a + `netinstall_steamify.conf`/groups YAML for Steamify's items (id, + name, description per group; check whether a non-package/virtual + group is possible, or whether `packages: []` with `critical: false` + is enough to make a group purely informational/no-op for pacman) from + `steamify.sh --defaults --list`, generated in `calamares-online.sh` + (same spot the abandoned Items.qml/packagechooser YAML generation + was). Read the selection back from whichever global-storage key + netinstall actually writes (`netinstallSelect`, seen in Config.cpp; + confirm the exact key/shape live) in + `shellprocess_steamify.conf`/`steamify-install`. Boot into + (gaming/desktop) still needs its own small `packagechooser`, + `mode: required` page (an either/or choice doesn't fit a checkbox + tree). + - Dead code from this session, left in the tree for now: `SteamifyPage.qml`. + - **Lessons for next time:** + - Verify a Calamares module is actually installed + (`ls /usr/lib/calamares/modules`) before writing QML/config for it. + - Read a module's *actual* logged global-storage writes, not its UI + label text, to know what a `mode`/`method` really does. + - Both testable live in the booted ISO VM with no rebuild: edit + `/etc/calamares/modules/*.conf` + `settings.conf`, relaunch + `pkexec-wrapper calamares -D6` in a **separate Konsole tab** (it + blocks the tab it runs in — typing into that same tab just echoes + inertly into its blocked stdin, doesn't run commands). + - Watch for the live session's keyboard layout changing away from US + (e.g. via Calamares' Welcome page keyboard preview) mid-session: + `qmptype.py` assumes US and silently sends wrong characters + (`/` → `-`, parens garbled) once it does, with no error for the + common ones. Check with a no-symbols probe (`echo test123`) after + any language/keyboard step, and fix via the live session's own + keyboard settings if needed, not `setxkbmap` (no effect on Wayland). -2. **Check the live name**2. **Check the live name**2. **Check the live name** (the build tree has it right: +2. **Check the live name**2. **Check the live name**2. **Check the live name**2. **Check the live name** (the build tree has it right: `build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is From 71c2ef045909460e991baea109cd56d5218a855d Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 13:45:19 +0200 Subject: [PATCH 34/79] docs: TODO: packagechooser multi-select needs Shift/Ctrl-click, not usable --- TODO.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/TODO.md b/TODO.md index 7c51f3b..6121a62 100644 --- a/TODO.md +++ b/TODO.md @@ -16,7 +16,10 @@ `"packagechooser@steamifypage" selected "single,gaming,theme"` — a real comma-separated list, matching `steamify-install`'s expected `--options` format. Global storage key: `packagechooser_steamifypage`. - - **But its UI doesn't look like a multi-select** (a plain list with a + - **Multi-select only works with Shift/Ctrl-click** (plain clicks + replace the selection), so it's unusable as the Steamify page and + not a fallback either. + - **Its UI doesn't look like a multi-select either** (a plain list with a big blank preview pane, no checkboxes shown) — confirmed by the user watching the VM live. Not good enough visually, even though it's functionally correct. From eb58ef24b4b94475c33e0ef0283f5938afeaa2ab Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 14:56:15 +0200 Subject: [PATCH 35/79] feat: bake packagechooserq module into the ISO, fix Steamify page styling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit packagechooserq is excluded from cachyos-calamares-next's own build, so its .so + module.desc are added straight into airootfs (matching the module built against the current cachyos-calamares-next). Also: - SteamifyPage.qml: border-only row highlight (was a translucent teal fill that made white text unreadable), themed page background (was falling through to Calamares' default white), a sub-option "└" marker, more right padding so the row border clears the scrollbar. - calamares-online.sh: also write items.json next to Items.qml, so packagechooserq's prettyStatus() can show the Summary step's choice as labels instead of raw, comma-joined ids. --- ...libcalamares_viewmodule_packagechooserq.so | Bin 0 -> 442600 bytes .../modules/packagechooserq/module.desc | 7 +++++ .../usr/local/bin/calamares-online.sh | 3 +++ .../share/steamify-installer/SteamifyPage.qml | 25 +++++++++++++----- 4 files changed, 29 insertions(+), 6 deletions(-) create mode 100755 archiso/airootfs/usr/lib/calamares/modules/packagechooserq/libcalamares_viewmodule_packagechooserq.so create mode 100644 archiso/airootfs/usr/lib/calamares/modules/packagechooserq/module.desc diff --git a/archiso/airootfs/usr/lib/calamares/modules/packagechooserq/libcalamares_viewmodule_packagechooserq.so b/archiso/airootfs/usr/lib/calamares/modules/packagechooserq/libcalamares_viewmodule_packagechooserq.so new file mode 100755 index 0000000000000000000000000000000000000000..6db516dbe4b6dda97645f19636410720ce43d842 GIT binary patch literal 442600 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 vwd}IR0o@wbbqK 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%0A` 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°aWJnJM~px__66UDt~6JdoW|pOge-o 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 z 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 z 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

~Et!EC#p^ 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 "$log" + page=() + fi sudo sed -i -e 's/^- id: cleanup_calamares$/- id: steamifypage\n module: packagechooserq\n config: packagechooserq_steamifypage.conf\n\n- id: steamify\n module: shellprocess\n config: shellprocess_steamify.conf\n\n&/' \ - -e 's/^ - netinstall$/&\n - packagechooserq@steamifypage/' \ + "${page[@]}" \ -e 's/^ - shellprocess@cleanup_calamares$/ - shellprocess@steamify\n&/' /etc/calamares/settings.conf exec pkexec-wrapper calamares -D6 >> $log } diff --git a/build-calamares-modules.sh b/build-calamares-modules.sh new file mode 100755 index 0000000..6cc6eb2 --- /dev/null +++ b/build-calamares-modules.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# build-calamares-modules.sh: builds Calamares' packagechooserq module (the +# QML page the Steamify page runs in) for the ISO. CachyOS's +# cachyos-calamares-next leaves it out of its own build, so it's built here, +# out of tree, from CachyOS's Calamares source against the installed +# cachyos-calamares-next, and installed into airootfs. Run as root in the +# build container, before buildiso.sh: the package comes from the same repos +# at the same time as the ISO's, so the module matches the ISO's Calamares. +# Records the version it was built for next to it (calamares-online.sh +# compares that with the Calamares it ends up with). +set -euo pipefail +cd "$(dirname "$0")" +dest=archiso/airootfs/usr/lib/calamares/modules/packagechooserq +src_url=https://github.com/CachyOS/cachyos-calamares/archive/refs/heads/cachyos.tar.gz + +pacman -S --needed --noconfirm cachyos-calamares-next cmake extra-cmake-modules \ + qt6-declarative qt6-tools qt6-svg kcoreaddons yaml-cpp base-devel >/dev/null +work="$(mktemp -d)" +mkdir -p "$work/src" "$work/cmake" +# The module and the packagechooser sources it shares (Config, PackageModel), +# plus the CMake helper its CMakeLists includes, which Calamares doesn't install. +curl -fsSL "$src_url" -o "$work/calamares.tar.gz" +tar -xzf "$work/calamares.tar.gz" --strip-components=3 -C "$work/src" \ + cachyos-calamares-cachyos/src/modules/packagechooserq cachyos-calamares-cachyos/src/modules/packagechooser +tar -xzf "$work/calamares.tar.gz" --strip-components=2 -C "$work/cmake" \ + cachyos-calamares-cachyos/CMakeModules/AppStreamHelper.cmake +# KF6CoreAddons before Calamares: Calamares' CMake config needs its target. +cat > "$work/src/CMakeLists.txt" << EOF +cmake_minimum_required(VERSION 3.16) +project(steamify_packagechooserq LANGUAGES CXX) +set(WITH_QML ON) +set(WITH_QT6 ON) +set(qtname Qt6) +set(QT_VERSION_SUFFIX -qt6) +find_package(ECM REQUIRED NO_MODULE) +set(CMAKE_MODULE_PATH \${ECM_MODULE_PATH} /usr/lib/cmake/Calamares $work/cmake \${CMAKE_MODULE_PATH}) +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Qml Quick) +find_package(KF6CoreAddons REQUIRED) +find_package(Calamares REQUIRED) +add_subdirectory(packagechooserq) +EOF +cmake -S "$work/src" -B "$work/build" -DCMAKE_BUILD_TYPE=Release > "$work/cmake.log" 2>&1 || + { tail -30 "$work/cmake.log"; exit 1; } +make -s -C "$work/build" -j"$(nproc)" +install -Dm755 "$work/build/packagechooserq/libcalamares_viewmodule_packagechooserq.so" "$dest/libcalamares_viewmodule_packagechooserq.so" +install -Dm644 "$work/build/packagechooserq/module.desc" "$dest/module.desc" +pacman -Q cachyos-calamares-next | cut -d' ' -f2 > "$dest/built-for" +rm -rf "$work" +echo "packagechooserq built for cachyos-calamares-next $(cat "$dest/built-for")." From 8246209a7eb11f357208f6183ea5661d02311cb2 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 16:56:45 +0200 Subject: [PATCH 41/79] feat: The Steamify page's Summary line shows the chosen items' labels and where it starts, not raw ids (patch on packagechooserq, applied by build-calamares-modules.sh) --- build-calamares-modules.sh | 4 +- .../packagechooserq-steamify-summary.patch | 74 +++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 patches/packagechooserq-steamify-summary.patch diff --git a/build-calamares-modules.sh b/build-calamares-modules.sh index 6cc6eb2..95fdf66 100755 --- a/build-calamares-modules.sh +++ b/build-calamares-modules.sh @@ -14,7 +14,7 @@ dest=archiso/airootfs/usr/lib/calamares/modules/packagechooserq src_url=https://github.com/CachyOS/cachyos-calamares/archive/refs/heads/cachyos.tar.gz pacman -S --needed --noconfirm cachyos-calamares-next cmake extra-cmake-modules \ - qt6-declarative qt6-tools qt6-svg kcoreaddons yaml-cpp base-devel >/dev/null + qt6-declarative qt6-tools qt6-svg kcoreaddons yaml-cpp base-devel patch >/dev/null work="$(mktemp -d)" mkdir -p "$work/src" "$work/cmake" # The module and the packagechooser sources it shares (Config, PackageModel), @@ -24,6 +24,8 @@ tar -xzf "$work/calamares.tar.gz" --strip-components=3 -C "$work/src" \ cachyos-calamares-cachyos/src/modules/packagechooserq cachyos-calamares-cachyos/src/modules/packagechooser tar -xzf "$work/calamares.tar.gz" --strip-components=2 -C "$work/cmake" \ cachyos-calamares-cachyos/CMakeModules/AppStreamHelper.cmake +# The Steamify page's Summary line shows labels instead of ids. +patch -s -d "$work/src" -p1 < patches/packagechooserq-steamify-summary.patch # KF6CoreAddons before Calamares: Calamares' CMake config needs its target. cat > "$work/src/CMakeLists.txt" << EOF cmake_minimum_required(VERSION 3.16) diff --git a/patches/packagechooserq-steamify-summary.patch b/patches/packagechooserq-steamify-summary.patch new file mode 100644 index 0000000..5c677b7 --- /dev/null +++ b/patches/packagechooserq-steamify-summary.patch @@ -0,0 +1,74 @@ +diff -ruN a/packagechooserq/PackageChooserQmlViewStep.cpp b/packagechooserq/PackageChooserQmlViewStep.cpp +--- a/packagechooserq/PackageChooserQmlViewStep.cpp 2026-09-28 16:56:21 ++++ b/packagechooserq/PackageChooserQmlViewStep.cpp 2026-09-28 16:56:21 +@@ -17,6 +17,12 @@ + #include "utils/System.h" + #include "utils/Variant.h" + ++#include ++#include ++#include ++#include ++#include ++ + CALAMARES_PLUGIN_FACTORY_DEFINITION( PackageChooserQmlViewStepFactory, registerPlugin< PackageChooserQmlViewStep >(); ) + + PackageChooserQmlViewStep::PackageChooserQmlViewStep( QObject* parent ) +@@ -35,9 +41,54 @@ + QString + PackageChooserQmlViewStep::prettyStatus() const + { +- //QString option = m_pkgc; +- //return tr( "Install option: %1" ).arg( option ); +- return m_config->prettyStatus(); ++ // Steamify page (steammachine-cachyos-live-iso): its choice is Steamify's ++ // item ids ("boot" = start in the desktop, "none" = nothing on); show ++ // their labels, from the rows calamares-online.sh writes next to the ++ // page, instead of the raw ids. Any other use keeps the stock text. ++ const QString choice = m_config->packageChoice(); ++ QFile rows( QStringLiteral( "/usr/local/share/steamify/qml/items.json" ) ); ++ if ( moduleInstanceKey().id() != QStringLiteral( "steamifypage" ) || choice.isEmpty() ++ || !rows.open( QIODevice::ReadOnly ) ) ++ { ++ return m_config->prettyStatus(); ++ } ++ QHash< QString, QString > labels; ++ const auto items = QJsonDocument::fromJson( rows.readAll() ).array(); ++ for ( const auto& item : items ) ++ { ++ const auto row = item.toObject(); ++ labels.insert( row.value( QStringLiteral( "id" ) ).toString(), ++ row.value( QStringLiteral( "label" ) ).toString() ); ++ } ++ if ( labels.isEmpty() ) ++ { ++ return m_config->prettyStatus(); ++ } ++ QStringList on; ++ bool desktop = false, gaming = false; ++ for ( const auto& part : choice.split( QLatin1Char( ',' ) ) ) ++ { ++ const QString id = part.trimmed(); ++ if ( id.isEmpty() || id == QStringLiteral( "none" ) ) ++ { ++ continue; ++ } ++ if ( id == QStringLiteral( "boot" ) ) ++ { ++ desktop = true; ++ continue; ++ } ++ gaming = gaming || id == QStringLiteral( "gaming" ); ++ on << labels.value( id, id ).toHtmlEscaped(); ++ } ++ QString status = on.isEmpty() ? tr( "Steamify: nothing" ) ++ : tr( "Steamify: %1" ).arg( on.join( QStringLiteral( ", " ) ) ); ++ if ( gaming ) ++ { ++ status += QStringLiteral( "
" ) ++ + ( desktop ? tr( "Starts in: the desktop" ) : tr( "Starts in: gaming mode" ) ); ++ } ++ return status; + } + + bool From a817b8a558729b4f91abe32575951b84c60f330a Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 16:57:45 +0200 Subject: [PATCH 42/79] feat: The Steamify page's Summary is an unordered list: every chosen item's name and where it starts (gaming mode or desktop) --- .../packagechooserq-steamify-summary.patch | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/patches/packagechooserq-steamify-summary.patch b/patches/packagechooserq-steamify-summary.patch index 5c677b7..4243224 100644 --- a/patches/packagechooserq-steamify-summary.patch +++ b/patches/packagechooserq-steamify-summary.patch @@ -1,6 +1,6 @@ diff -ruN a/packagechooserq/PackageChooserQmlViewStep.cpp b/packagechooserq/PackageChooserQmlViewStep.cpp --- a/packagechooserq/PackageChooserQmlViewStep.cpp 2026-09-28 16:56:21 -+++ b/packagechooserq/PackageChooserQmlViewStep.cpp 2026-09-28 16:56:21 ++++ b/packagechooserq/PackageChooserQmlViewStep.cpp 2026-09-28 16:57:29 @@ -17,6 +17,12 @@ #include "utils/System.h" #include "utils/Variant.h" @@ -14,7 +14,7 @@ diff -ruN a/packagechooserq/PackageChooserQmlViewStep.cpp b/packagechooserq/Pack CALAMARES_PLUGIN_FACTORY_DEFINITION( PackageChooserQmlViewStepFactory, registerPlugin< PackageChooserQmlViewStep >(); ) PackageChooserQmlViewStep::PackageChooserQmlViewStep( QObject* parent ) -@@ -35,9 +41,54 @@ +@@ -35,9 +41,61 @@ QString PackageChooserQmlViewStep::prettyStatus() const { @@ -61,13 +61,20 @@ diff -ruN a/packagechooserq/PackageChooserQmlViewStep.cpp b/packagechooserq/Pack + gaming = gaming || id == QStringLiteral( "gaming" ); + on << labels.value( id, id ).toHtmlEscaped(); + } -+ QString status = on.isEmpty() ? tr( "Steamify: nothing" ) -+ : tr( "Steamify: %1" ).arg( on.join( QStringLiteral( ", " ) ) ); + if ( gaming ) + { -+ status += QStringLiteral( "
" ) -+ + ( desktop ? tr( "Starts in: the desktop" ) : tr( "Starts in: gaming mode" ) ); ++ on << ( desktop ? tr( "Starts in the desktop" ) : tr( "Starts in gaming mode" ) ); + } ++ if ( on.isEmpty() ) ++ { ++ return tr( "Steamify: nothing" ); ++ } ++ QString status = tr( "Steamify:" ) + QStringLiteral( "

" ); + return status; } From 0cc736776a461a10132ab408a23f3ed15889f914 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 17:37:48 +0200 Subject: [PATCH 43/79] fix: The launcher downloads Steamify and writes the page's rows (Items.qml, items.json) where the page reads them ($sdir was empty in its own local); --list errors go to its log --- AGENTS.md | 9 +++++++++ archiso/airootfs/usr/local/bin/calamares-online.sh | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 392ec16..476330c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -44,6 +44,15 @@ don't fit a skill's step-by-step flow. its blocked stdin). A C++ module change needs an actual rebuild (out-of-tree, in the build VM) and redeploying the `.so` — no shortcut. +## Shell pitfalls + +`local a=/x b="$a/y"` expands every value before assigning any, so `b` is +`/y`: `calamares-online.sh` wrote the downloaded `steamify.sh` to +`/steamify.sh` and `items.json` to a nonexistent `/qml/`, silently (stderr +went to `/dev/null`), so the Steamify page always ran on build-time rows and +the Summary had no labels. Declare a variable in its own `local` before +using it, and send a step's errors to the launcher's log, not `/dev/null`. + ## ISO permissions `steamify-prepare.sh` fetches `steamify.sh` with `curl -o`, which doesn't diff --git a/archiso/airootfs/usr/local/bin/calamares-online.sh b/archiso/airootfs/usr/local/bin/calamares-online.sh index 5b4040c..9642374 100755 --- a/archiso/airootfs/usr/local/bin/calamares-online.sh +++ b/archiso/airootfs/usr/local/bin/calamares-online.sh @@ -47,7 +47,10 @@ EOF # Steamify: try the newest release before Calamares starts, so the page # and the install step both show/use it; keep the ISO's copy (from # steamify-prepare.sh) on any failure (no network, GitHub unreachable). - local sdir=/usr/local/share/steamify sbin="$sdir/steamify.sh" sqml="$sdir/qml" + # Separate statements: `local` expands all its values before assigning + # any, so "$sdir" would still be empty in the same one. + local sdir=/usr/local/share/steamify + local sbin="$sdir/steamify.sh" sqml="$sdir/qml" local tmp; tmp="$(mktemp)" if curl -fsSL --max-time 20 https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify.sh -o "$tmp" && grep -q -- '--defaults' "$tmp"; then @@ -68,7 +71,7 @@ EOF # punctuation and text fields Steamify itself writes: nothing here can # break out of the property). tmp="$(mktemp)" - if "$sbin" --defaults --list > "$tmp" 2>/dev/null && [[ -s "$tmp" ]]; then + if "$sbin" --defaults --list > "$tmp" 2>> "$log" && [[ -s "$tmp" ]]; then { printf 'pragma Singleton\nimport QtQuick\n\nQtObject {\n readonly property var rows: ' cat "$tmp" printf '\n}\n' From 37aff659bd65bff1d0136989ea3d191c9d1ce0a2 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 17:38:10 +0200 Subject: [PATCH 44/79] docs: AGENTS: qmptype.py types > and friends now --- AGENTS.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 476330c..105315f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -79,14 +79,9 @@ at build time needs to run directly (not `bash script.sh`), add it to (`/` → `-`, `&`/`>` fail outright) with no error for the common substitutions. Check with a no-symbols probe (`echo test123`) after any language/keyboard step. Typing `setxkbmap us` via QMP does fix it. -- `qmptype.py` has no key mapping for `&` or `>` at all: a typed command - using either raises "no key for" and can leave an unterminated quote in - the shell's input buffer (symptom: the prompt shows a bare `>` - continuation). Send Ctrl+C before retyping. Avoid redirection/`&&` in - typed commands entirely — write the commands to a file on the shared - `vmtools`/`share` mount and run `bash /media/foo.sh` instead, since a - file's contents aren't typed character-by-character and have no such - limits. +- `qmptype.py` types `&`, `>`, `<`, `?`, `{`, `}` since 2026-09-28 (before, + `>` raised "no key for" and left half a command in the prompt: send + Ctrl+C before retyping). Its map is US-layout, see above. - Send QMP keystrokes one command at a time with a beat (~1-2s) in between. Firing several `qmptype.py` calls back-to-back can interleave with the guest's own prompt redraw and garble the input (seen as commands merging From 6917f3d8e431d5f2c58d6aec6ace9307a2fe08cb Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 17:56:09 +0200 Subject: [PATCH 45/79] docs: TODO: the Steamify Summary works --- TODO.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/TODO.md b/TODO.md index 5d59864..4eddf00 100644 --- a/TODO.md +++ b/TODO.md @@ -11,12 +11,6 @@ module can't load, but isn't wired into `calamares-online.sh` automatically yet. - **Still open**: - - The Summary step shows raw ids ("Install option: gaming,theme,...") - for the Steamify page: the `prettyStatus()` override described in - `AGENTS.md` (labels from `items.json`) was never in the committed - `.so` (it has no `items.json` string) and its source is lost. Add it - as a patch that `build-calamares-modules.sh` applies to - `PackageChooserQmlViewStep.cpp`. - "Boot into gaming mode" as an opt-out sub-toggle under SteamOS conversion (agreed with the user) isn't implemented on either page yet — both still use the old Gaming/Desktop radio-row. @@ -49,6 +43,10 @@ ## Done +- **Steamify Summary** (2026-09-28, ISO VM): an unordered list of the chosen + items' names plus "Starts in gaming mode/the desktop" + (`patches/packagechooserq-steamify-summary.patch`), with `items.json` + written by the launcher (its `$sdir` bug fixed, `0cc7367`). - **packagechooserq built with the ISO** (2026-09-28): `build-calamares-modules.sh` builds it in the build container/VM from CachyOS's Calamares source against the current `cachyos-calamares-next` From f46596d8e023ee3a13950bceb356e579bb526c92 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 18:12:16 +0200 Subject: [PATCH 46/79] docs: TODO: full ISO install with the Steamify page passed --- TODO.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/TODO.md b/TODO.md index 4eddf00..b30d3c9 100644 --- a/TODO.md +++ b/TODO.md @@ -43,6 +43,10 @@ ## Done +- **Full ISO install with the Steamify page** (2026-09-28, ISO VM, + `--fremont`, Start in: desktop): Summary listed the choices, the + install step ran Steamify 2.8.0 with every item OK, `--boot desktop` + applied, `exit: 0`; the installed system boots into the desktop. - **Steamify Summary** (2026-09-28, ISO VM): an unordered list of the chosen items' names plus "Starts in gaming mode/the desktop" (`patches/packagechooserq-steamify-summary.patch`), with `items.json` From 95e05a577ca71dccb0e947dae5fe86fc241f33ce Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 18:13:25 +0200 Subject: [PATCH 47/79] docs: TODO: the boot choice switch is done --- TODO.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/TODO.md b/TODO.md index b30d3c9..028925b 100644 --- a/TODO.md +++ b/TODO.md @@ -11,9 +11,6 @@ module can't load, but isn't wired into `calamares-online.sh` automatically yet. - **Still open**: - - "Boot into gaming mode" as an opt-out sub-toggle under SteamOS - conversion (agreed with the user) isn't implemented on either page - yet — both still use the old Gaming/Desktop radio-row. - A Python job (e.g. `steamifychoice`, before `packages@online`) to normalize either page's choice (packagechooserq's `packagechooser_steamifypage` GS key, or netinstall's @@ -43,6 +40,8 @@ ## Done +- **Boot choice as a switch** on the Steamify page ("Boot into gaming + mode" under the SteamOS conversion; the user confirmed it's done). - **Full ISO install with the Steamify page** (2026-09-28, ISO VM, `--fremont`, Start in: desktop): Summary listed the choices, the install step ran Steamify 2.8.0 with every item OK, `--boot desktop` From f33c47ec4927d969547e6d9ff488921cf47cebb6 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 18:13:38 +0200 Subject: [PATCH 48/79] docs: TODO: the boot choice switch is still open (misread) --- TODO.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index 028925b..d219335 100644 --- a/TODO.md +++ b/TODO.md @@ -11,6 +11,10 @@ module can't load, but isn't wired into `calamares-online.sh` automatically yet. - **Still open**: + - "Boot into gaming mode" as an opt-out switch under the SteamOS + conversion (agreed with the user), instead of the page's Gaming + mode / Desktop radio buttons (`SteamifyPage.qml`); on = gaming + mode, off = desktop (the `boot` id on the choice). - A Python job (e.g. `steamifychoice`, before `packages@online`) to normalize either page's choice (packagechooserq's `packagechooser_steamifypage` GS key, or netinstall's @@ -40,8 +44,6 @@ ## Done -- **Boot choice as a switch** on the Steamify page ("Boot into gaming - mode" under the SteamOS conversion; the user confirmed it's done). - **Full ISO install with the Steamify page** (2026-09-28, ISO VM, `--fremont`, Start in: desktop): Summary listed the choices, the install step ran Steamify 2.8.0 with every item OK, `--boot desktop` From 06d2fb564cd01ba74baa59008f3640265df91351 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 18:18:09 +0200 Subject: [PATCH 49/79] feat: The installer is called CachyOS - Steamify Installer (branding productName, set after the launcher's reinstall); TODO: Hello's title, radio buttons stay --- TODO.md | 18 ++++++++++-------- .../airootfs/usr/local/bin/calamares-online.sh | 4 ++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/TODO.md b/TODO.md index d219335..4a09455 100644 --- a/TODO.md +++ b/TODO.md @@ -11,22 +11,24 @@ module can't load, but isn't wired into `calamares-online.sh` automatically yet. - **Still open**: - - "Boot into gaming mode" as an opt-out switch under the SteamOS - conversion (agreed with the user), instead of the page's Gaming - mode / Desktop radio buttons (`SteamifyPage.qml`); on = gaming - mode, off = desktop (the `boot` id on the choice). - A Python job (e.g. `steamifychoice`, before `packages@online`) to normalize either page's choice (packagechooserq's `packagechooser_steamifypage` GS key, or netinstall's packageOperations markers) into one `steamifyChoice` GS key, so `shellprocess_steamify.conf` doesn't need to know which page ran. -2. **Check the live name** (the build tree has it right: +2. **Titles**: the installer is "CachyOS - Steamify Installer" (productName, + set by calamares-online.sh after its reinstall; check after the next + build). Hello's window title "CachyOS Hello" is compiled into + `/usr/bin/cachyos-hello`: "CachyOS - Steamify Hello" needs Hello rebuilt + with a patch (like packagechooserq), or only its launcher entry renamed. + The Gaming mode / Desktop radio buttons stay (the user likes them). +3. **Check the live name** (the build tree has it right: `build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is overwritten by a package). -3. ~~Steamify PR for `feat/defaults-options`~~ — done: 2.7.0 (`--options`, +4. ~~Steamify PR for `feat/defaults-options`~~ — done: 2.7.0 (`--options`, `--boot`, `steamify.sh --boot` standalone) and 2.8.0 (`--defaults --list`, what the Steamify page's rows come from) are both released. **The ISO builder is up to date with this**: no checkout @@ -35,11 +37,11 @@ without a rebuild for a Steamify-side change alone. Only pass `steamify-prepare.sh ` / `vmisobuild.sh --steamify ` when testing an *unreleased* Steamify change. -4. **Build in the test VM** instead of on the Steam Machine +5. **Build in the test VM** instead of on the Steam Machine (steam-machine-iso skill), and install the result unattended with `scripts/vminstall.sh --iso` (vm-install skill; the Calamares Steamify step then needs `steamify-install` run from the live script). -5. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, +6. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC, power-off) before calling the ISO usable. ## Done diff --git a/archiso/airootfs/usr/local/bin/calamares-online.sh b/archiso/airootfs/usr/local/bin/calamares-online.sh index 9642374..d653c34 100755 --- a/archiso/airootfs/usr/local/bin/calamares-online.sh +++ b/archiso/airootfs/usr/local/bin/calamares-online.sh @@ -33,6 +33,10 @@ main() { echo "USING ISO VERSION: ${ISO_VERSION}" sudo pacman -Sy --noconfirm cachyos-calamares-next + # The installer's window title ("%1 Installer") and welcome text use the + # branding's productName; the reinstall above restored CachyOS's. + sudo sed -i 's/^\( productName: *\)CachyOS$/\1CachyOS - Steamify/' \ + /usr/share/calamares/branding/cachyos/branding.desc # Get Hardware Informations inxi -F > "$log" From 8e7ec49a152861884ef85c6664fbfd4f9d25173c Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 18:21:29 +0200 Subject: [PATCH 50/79] feat: The live session's About this System says CachyOS Linux with Steamify --- archiso/airootfs/etc/xdg/kcm-about-distrorc | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 archiso/airootfs/etc/xdg/kcm-about-distrorc diff --git a/archiso/airootfs/etc/xdg/kcm-about-distrorc b/archiso/airootfs/etc/xdg/kcm-about-distrorc new file mode 100644 index 0000000..ae81f21 --- /dev/null +++ b/archiso/airootfs/etc/xdg/kcm-about-distrorc @@ -0,0 +1,3 @@ +# Steamify: System Settings' About this System (os-release stays CachyOS's). +[General] +Name=CachyOS Linux with Steamify From ce1cf71498b95556addce424a868243f4f54524a Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 19:12:35 +0200 Subject: [PATCH 51/79] fix: The live session's About this System keeps CachyOS's own name (no renaming) --- archiso/airootfs/etc/xdg/kcm-about-distrorc | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 archiso/airootfs/etc/xdg/kcm-about-distrorc diff --git a/archiso/airootfs/etc/xdg/kcm-about-distrorc b/archiso/airootfs/etc/xdg/kcm-about-distrorc deleted file mode 100644 index ae81f21..0000000 --- a/archiso/airootfs/etc/xdg/kcm-about-distrorc +++ /dev/null @@ -1,3 +0,0 @@ -# Steamify: System Settings' About this System (os-release stays CachyOS's). -[General] -Name=CachyOS Linux with Steamify From e3000ce8c713c6f80ce1a2b990dfdf9252cc11c2 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 19:14:17 +0200 Subject: [PATCH 52/79] fix: Only the installer says Steamify (CachyOS with Steamify Installer); the live session keeps CachyOS's own name --- TODO.md | 22 +++++++------------ archiso/airootfs/etc/os-release | 4 ++-- .../usr/local/bin/calamares-online.sh | 2 +- steamify-customize.sh | 6 ++--- 4 files changed, 14 insertions(+), 20 deletions(-) diff --git a/TODO.md b/TODO.md index 4a09455..d142d57 100644 --- a/TODO.md +++ b/TODO.md @@ -17,17 +17,12 @@ packageOperations markers) into one `steamifyChoice` GS key, so `shellprocess_steamify.conf` doesn't need to know which page ran. -2. **Titles**: the installer is "CachyOS - Steamify Installer" (productName, - set by calamares-online.sh after its reinstall; check after the next - build). Hello's window title "CachyOS Hello" is compiled into - `/usr/bin/cachyos-hello`: "CachyOS - Steamify Hello" needs Hello rebuilt - with a patch (like packagechooserq), or only its launcher entry renamed. - The Gaming mode / Desktop radio buttons stay (the user likes them). -3. **Check the live name** (the build tree has it right: - `build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say - "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, - run by mkarchiso after the packages; the airootfs copy of os-release is - overwritten by a package). +2. **Names**: only the installer says Steamify ("CachyOS with Steamify + Installer", productName set by calamares-online.sh); the live session, + Hello and About this System keep CachyOS's own names (legal clarity). The + ISO file stays `steamify-cachyos-.iso`. +3. **Check the names** after the next build: installer title, Hello and + About this System say CachyOS. 4. ~~Steamify PR for `feat/defaults-options`~~ — done: 2.7.0 (`--options`, `--boot`, `steamify.sh --boot` standalone) and 2.8.0 (`--defaults --list`, what the Steamify page's rows come from) are both @@ -84,9 +79,8 @@ ## Later -- **Branding**: the live session's os-release says "Steamify, based on - CachyOS" (Hello's subtitle); Hello's window title and the boot menu still - say CachyOS. Check with the CachyOS team. +- **Branding**: only the installer carries Steamify's name; check with the + CachyOS team whether that and the ISO file name are fine with them. - **Release**: a CI job that builds the ISO (privileged container, flags from the steam-machine-iso skill) and hosts it (>2 GB, not a GitHub release asset). - **Drop the Boost 1.91 workaround** in `steamify-prepare.sh` once diff --git a/archiso/airootfs/etc/os-release b/archiso/airootfs/etc/os-release index cd63f1c..b7f9e09 100644 --- a/archiso/airootfs/etc/os-release +++ b/archiso/airootfs/etc/os-release @@ -1,5 +1,5 @@ -NAME="Steamify CachyOS, based on CachyOS" -PRETTY_NAME="Steamify CachyOS, based on CachyOS" +NAME="CachyOS" +PRETTY_NAME="CachyOS" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" diff --git a/archiso/airootfs/usr/local/bin/calamares-online.sh b/archiso/airootfs/usr/local/bin/calamares-online.sh index d653c34..5c6ba60 100755 --- a/archiso/airootfs/usr/local/bin/calamares-online.sh +++ b/archiso/airootfs/usr/local/bin/calamares-online.sh @@ -35,7 +35,7 @@ main() { sudo pacman -Sy --noconfirm cachyos-calamares-next # The installer's window title ("%1 Installer") and welcome text use the # branding's productName; the reinstall above restored CachyOS's. - sudo sed -i 's/^\( productName: *\)CachyOS$/\1CachyOS - Steamify/' \ + sudo sed -i 's/^\( productName: *\)CachyOS$/\1CachyOS with Steamify/' \ /usr/share/calamares/branding/cachyos/branding.desc # Get Hardware Informations diff --git a/steamify-customize.sh b/steamify-customize.sh index 07a6f30..309222d 100755 --- a/steamify-customize.sh +++ b/steamify-customize.sh @@ -5,6 +5,6 @@ # overwrite them. set -euo pipefail root="$1" -# The name CachyOS Hello shows ("Steamify CachyOS, based on CachyOS rolling"). -sed -i -e 's/^NAME=.*/NAME="Steamify CachyOS, based on CachyOS"/' \ - -e 's/^PRETTY_NAME=.*/PRETTY_NAME="Steamify CachyOS, based on CachyOS"/' "$root/etc/os-release" +# Nothing yet: the live session keeps CachyOS's own name (only the installer +# says "CachyOS with Steamify", see calamares-online.sh). +exit 0 From 02e75027e1e0354050602c9baa985b4b806e86d1 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 19:33:54 +0200 Subject: [PATCH 53/79] docs: README: how to build the Steamify ISO yourself (podman) --- README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/README.md b/README.md index 0adb4f3..5dcd30d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,59 @@ +# Steamify CachyOS ISO for the Steam Machine + +A CachyOS desktop ISO for the Valve Steam Machine with +[Steamify](https://github.com/theupriser/steamify-cachyos) built in: +- The live session has the Steam Machine drivers (power-off fix). +- The installer ("CachyOS with Steamify Installer") has a Steamify page where + you pick the options and whether the PC starts in gaming mode or on the + desktop. Steamify is applied during the install. + +## Building the ISO yourself + +You need about 20 GB of free space, and a Linux PC with +[podman](https://podman.io) (or Docker: replace `podman` with `docker`). The +build runs in CachyOS's own container, so the PC doesn't have to run CachyOS. + +```bash +git clone -b feat/steamify https://github.com/theupriser/steammachine-cachyos-live-iso +cd steammachine-cachyos-live-iso + +# Put Steamify on the ISO: the newest release. To use your own checkout, +# pass its path: ./steamify-prepare.sh ~/steamify-cachyos +./steamify-prepare.sh + +mkdir -p ~/iso-cache # downloaded packages, kept for the next build +sudo podman run --rm -t --privileged --network=host \ + --pids-limit=-1 --ulimit nofile=65536:65536 \ + -v ~/iso-cache:/var/cache/pacman/pkg -v "$PWD":/iso -w /iso \ + docker.io/cachyos/cachyos:latest bash -c ' + pacman-key --init && pacman-key --populate && + pacman -Syu --noconfirm --needed archiso mkinitcpio-archiso git squashfs-tools grub sudo && + ./build-live-modules.sh && ./build-calamares-modules.sh && + ./buildiso.sh -p desktop -w' +``` + +The ISO is written to `out/desktop/steamify-cachyos-.iso`. Write it to +a USB stick (for example with `dd` or Fedora Media Writer) and boot the Steam +Machine from it. + +**Why these steps:** +- `build-live-modules.sh` builds the power-off fix for the ISO's kernels. + Without it, the Steam Machine starts up again right after shutting down. +- `build-calamares-modules.sh` builds the installer module that shows the + Steamify page. CachyOS's installer package leaves it out. +- `--pids-limit=-1` and `--ulimit nofile=...` are needed because pacman runs + out of processes or open files in the container otherwise (GPGME errors). +- `--network=host` gives the container DNS. +- `-w` removes the build folder afterwards. Before building again, run + `sudo rm -rf build out`. + +To build on CachyOS directly, without a container, install the same packages +with pacman and run the three scripts with `sudo`. + +--- + +The notes below are from CachyOS's original repository. + These are the basic needed files and folders to build CachyOS system. ### buildiso From 112b9bf5d621c7144180bed51a1e10b03cbc9153 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 19:46:45 +0200 Subject: [PATCH 54/79] docs: README: choose KDE Plasma, other desktops don't work with Steamify yet --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 5dcd30d..21fb512 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@ A CachyOS desktop ISO for the Valve Steam Machine with you pick the options and whether the PC starts in gaming mode or on the desktop. Steamify is applied during the install. +> **Choose KDE Plasma in the installer.** Steamify only works with KDE Plasma +> (the default). With another desktop (GNOME, Hyprland, Cosmic, ...) Steamify +> doesn't work yet. + ## Building the ISO yourself You need about 20 GB of free space, and a Linux PC with From d52cd58420719516ef80eef3abfafc3606ab88ef Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 19:47:37 +0200 Subject: [PATCH 55/79] docs: README: other desktops are not supported (was "don't work yet") --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 21fb512..e9ef61e 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ A CachyOS desktop ISO for the Valve Steam Machine with > **Choose KDE Plasma in the installer.** Steamify only works with KDE Plasma > (the default). With another desktop (GNOME, Hyprland, Cosmic, ...) Steamify -> doesn't work yet. +> is not supported. ## Building the ISO yourself From 3cf29a814e7bf31da244f2610494ff86447f930e Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Tue, 29 Sep 2026 07:57:50 +0200 Subject: [PATCH 56/79] feat: The installer only offers KDE Plasma, and the boot loaders Steamify supports (Limine, systemd-boot, GRUB; not rEFInd) --- archiso/airootfs/usr/local/bin/calamares-online.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/archiso/airootfs/usr/local/bin/calamares-online.sh b/archiso/airootfs/usr/local/bin/calamares-online.sh index 5c6ba60..6709e37 100755 --- a/archiso/airootfs/usr/local/bin/calamares-online.sh +++ b/archiso/airootfs/usr/local/bin/calamares-online.sh @@ -37,6 +37,20 @@ main() { # branding's productName; the reinstall above restored CachyOS's. sudo sed -i 's/^\( productName: *\)CachyOS$/\1CachyOS with Steamify/' \ /usr/share/calamares/branding/cachyos/branding.desc + # Only what Steamify supports, like CachyOS's handheld edition does: + # KDE Plasma as the desktop, and the boot loaders Steamify knows how to + # update (Limine, systemd-boot, GRUB; not rEFInd). Drops every other + # ` - id:` item block; `default:` (KDE-Desktop, limine) stays valid. + local keep_items='/^ - id: / { id = $3; gsub(/"/, "", id); skip = id == "" || index(" " keep " ", " " id " ") == 0 } +/^[^ ]/ { skip = 0 } +!skip' + local chooser keep + for chooser in "desktop:KDE-Desktop" "bootloader:limine systemd-boot grub"; do + keep="${chooser#*:}" + chooser="/etc/calamares/modules/packagechooser_${chooser%%:*}.conf" + awk -v keep="$keep" "$keep_items" "$chooser" | sudo tee "$chooser.new" > /dev/null && + sudo mv "$chooser.new" "$chooser" + done # Get Hardware Informations inxi -F > "$log" From 5a8bec572e59547348819522783e115a395b4b70 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 16:52:29 +0200 Subject: [PATCH 57/79] fix: systemd-boot gets its EFI boot entry (bootctl skips the EFI variables in the installer's chroot) --- archiso/airootfs/usr/local/bin/steamify-install | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/archiso/airootfs/usr/local/bin/steamify-install b/archiso/airootfs/usr/local/bin/steamify-install index 5544fb9..38db51c 100755 --- a/archiso/airootfs/usr/local/bin/steamify-install +++ b/archiso/airootfs/usr/local/bin/steamify-install @@ -20,6 +20,13 @@ for id in ${choice//,/ }; do *) options+="${options:+,}$id" ;; esac done +# systemd-boot: cachyos-installer runs `bootctl install` in a chroot, and bootctl leaves the EFI +# variables alone there: no "Linux Boot Manager" boot entry, so the firmware tries the network and +# its other entries first and finds the disk's fallback path last (or never). Register it now. +if [[ -n "$root" && -f "$root/boot/EFI/systemd/systemd-bootx64.efi" && -d /sys/firmware/efi/efivars ]]; then + arch-chroot "$root" bootctl --esp-path=/boot --variables=yes install > "$root/var/log/steamify-bootentry.log" 2>&1 + arch-chroot "$root" efibootmgr >> "$root/var/log/steamify-bootentry.log" 2>&1 +fi log="$root/var/log/steamify-install.log" rule="$root/etc/sudoers.d/zz-steamify-install" [[ -d "$root" && -n "$user" ]] || exit 0 From 40a6b896100fecd04251d62e74f3320828821e1c Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 16:54:20 +0200 Subject: [PATCH 58/79] docs: CHANGELOG: Steamify ISO 1.0.0 (unreleased), with the systemd-boot boot entry fix --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab16833..af24261 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,38 @@ +# Steamify ISO 1.0.0 (unreleased) +CachyOS's desktop ISO with Steamify built in: install CachyOS and turn the PC into a Steam Machine in +one go. Based on CachyOS 26.08 (its own notes follow below). + +**Features:** + +* **ISO:** called `steamify-cachyos--x86_64.iso`; CachyOS Hello installs it like CachyOS's own + release (the build date is kept in `/etc/steammachine-iso-build`) +* **Installer (CachyOS - Steamify Installer):** + * A Steamify page after the packages page: which Steam Machine parts to set up (rows from + `steamify.sh --defaults --list`, the newest Steamify fetched before Calamares starts) and where + the PC starts (gaming mode or the desktop) + * The Summary lists every chosen item and where the PC starts + * The new user's Steam Machine setup runs during the install (`steamify-install`, a Calamares step + before cleanup): the first boot is already a Steam Machine + * Only what Steamify supports is offered: KDE Plasma, and the boot loaders Limine, systemd-boot and + GRUB (not rEFInd) +* **Live session:** keeps CachyOS's own name; the power-off fix is built for the ISO's kernels, and + the login has the Vapor look + +**Fixes:** + +* **systemd-boot:** the installed system gets its "Linux Boot Manager" EFI boot entry, first in the + boot order. cachyos-installer runs `bootctl install` in a chroot, where bootctl leaves the EFI + variables alone, so the entry was missing: the PC could only boot through the disk's fallback path + (`\EFI\BOOT\BOOTX64.EFI`). Most PCs find it early and boot normally, but firmware that tries the + network first waits minutes on every boot (QEMU/OVMF: PXE, HTTP boot and the EFI shell come first), + and anything else that writes the fallback file (another OS) takes the boot over. + `steamify-install` now runs `bootctl --variables=yes install` from the live system; + the output is in `/var/log/steamify-bootentry.log` +* **Installer:** Steamify's setup never asks for a password (its sudo rule is read after CachyOS's + `%wheel` rule); Calamares starts with the Boost version it was linked against +* **Build:** finishes cleanly as root and reports no error after a successful build; the Steamify page's + Calamares module is built with the ISO and left out when Calamares' version differs + # 26.08 **Features:** From 1d25d1c7f601dc87e6c6143566e52fe52b3b2dbc Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 16:54:39 +0200 Subject: [PATCH 59/79] docs: CHANGELOG: the name is CachyOS with Steamify Live ISO --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af24261..4a3841a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Steamify ISO 1.0.0 (unreleased) +# CachyOS with Steamify Live ISO 1.0.0 (unreleased) CachyOS's desktop ISO with Steamify built in: install CachyOS and turn the PC into a Steam Machine in one go. Based on CachyOS 26.08 (its own notes follow below). From 9a58cf7c00ffa987625a526138fa859286f64400 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 16:56:30 +0200 Subject: [PATCH 60/79] docs: CHANGELOG: Steamify's changes go in the CachyOS version they are built on (26.08), not a version of their own --- CHANGELOG.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a3841a..50c283f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# CachyOS with Steamify Live ISO 1.0.0 (unreleased) -CachyOS's desktop ISO with Steamify built in: install CachyOS and turn the PC into a Steam Machine in -one go. Based on CachyOS 26.08 (its own notes follow below). +# 26.08 +*CachyOS with Steamify Live ISO: CachyOS's desktop ISO with Steamify built in (install CachyOS and turn the +PC into a Steam Machine in one go). Its additions come first; CachyOS's own notes follow.* -**Features:** +**CachyOS with Steamify Live ISO: features:** * **ISO:** called `steamify-cachyos--x86_64.iso`; CachyOS Hello installs it like CachyOS's own release (the build date is kept in `/etc/steammachine-iso-build`) @@ -18,7 +18,7 @@ one go. Based on CachyOS 26.08 (its own notes follow below). * **Live session:** keeps CachyOS's own name; the power-off fix is built for the ISO's kernels, and the login has the Vapor look -**Fixes:** +**CachyOS with Steamify Live ISO: fixes:** * **systemd-boot:** the installed system gets its "Linux Boot Manager" EFI boot entry, first in the boot order. cachyos-installer runs `bootctl install` in a chroot, where bootctl leaves the EFI @@ -33,7 +33,6 @@ one go. Based on CachyOS 26.08 (its own notes follow below). * **Build:** finishes cleanly as root and reports no error after a successful build; the Steamify page's Calamares module is built with the ISO and left out when Calamares' version differs -# 26.08 **Features:** * **Installer:** From d32520931700257d79d3da44c7d2c06d86f79c7d Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 16:58:00 +0200 Subject: [PATCH 61/79] docs: CHANGELOG: CachyOS's 26.08 notes as they were, the Steamify Live ISO 1.0.0 notes as a subsection under it --- CHANGELOG.md | 68 ++++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50c283f..a8c95f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,38 +1,4 @@ # 26.08 -*CachyOS with Steamify Live ISO: CachyOS's desktop ISO with Steamify built in (install CachyOS and turn the -PC into a Steam Machine in one go). Its additions come first; CachyOS's own notes follow.* - -**CachyOS with Steamify Live ISO: features:** - -* **ISO:** called `steamify-cachyos--x86_64.iso`; CachyOS Hello installs it like CachyOS's own - release (the build date is kept in `/etc/steammachine-iso-build`) -* **Installer (CachyOS - Steamify Installer):** - * A Steamify page after the packages page: which Steam Machine parts to set up (rows from - `steamify.sh --defaults --list`, the newest Steamify fetched before Calamares starts) and where - the PC starts (gaming mode or the desktop) - * The Summary lists every chosen item and where the PC starts - * The new user's Steam Machine setup runs during the install (`steamify-install`, a Calamares step - before cleanup): the first boot is already a Steam Machine - * Only what Steamify supports is offered: KDE Plasma, and the boot loaders Limine, systemd-boot and - GRUB (not rEFInd) -* **Live session:** keeps CachyOS's own name; the power-off fix is built for the ISO's kernels, and - the login has the Vapor look - -**CachyOS with Steamify Live ISO: fixes:** - -* **systemd-boot:** the installed system gets its "Linux Boot Manager" EFI boot entry, first in the - boot order. cachyos-installer runs `bootctl install` in a chroot, where bootctl leaves the EFI - variables alone, so the entry was missing: the PC could only boot through the disk's fallback path - (`\EFI\BOOT\BOOTX64.EFI`). Most PCs find it early and boot normally, but firmware that tries the - network first waits minutes on every boot (QEMU/OVMF: PXE, HTTP boot and the EFI shell come first), - and anything else that writes the fallback file (another OS) takes the boot over. - `steamify-install` now runs `bootctl --variables=yes install` from the live system; - the output is in `/var/log/steamify-bootentry.log` -* **Installer:** Steamify's setup never asks for a password (its sudo rule is read after CachyOS's - `%wheel` rule); Calamares starts with the Boost version it was linked against -* **Build:** finishes cleanly as root and reports no error after a successful build; the Steamify page's - Calamares module is built with the ISO and left out when Calamares' version differs - **Features:** * **Installer:** @@ -60,6 +26,40 @@ PC into a Steam Machine in one go). Its additions come first; CachyOS's own note * Correctly handle VM environments * Correctly quote pacman arguments +## CachyOS with Steamify Live ISO 1.0.0 (unreleased) +CachyOS 26.08 with Steamify built in: install CachyOS and turn the PC into a Steam Machine in one go. + +**Features:** + +* **ISO:** called `steamify-cachyos--x86_64.iso`; CachyOS Hello installs it like CachyOS's own + release (the build date is kept in `/etc/steammachine-iso-build`) +* **Installer (CachyOS - Steamify Installer):** + * A Steamify page after the packages page: which Steam Machine parts to set up (rows from + `steamify.sh --defaults --list`, the newest Steamify fetched before Calamares starts) and where + the PC starts (gaming mode or the desktop) + * The Summary lists every chosen item and where the PC starts + * The new user's Steam Machine setup runs during the install (`steamify-install`, a Calamares step + before cleanup): the first boot is already a Steam Machine + * Only what Steamify supports is offered: KDE Plasma, and the boot loaders Limine, systemd-boot and + GRUB (not rEFInd) +* **Live session:** keeps CachyOS's own name; the power-off fix is built for the ISO's kernels, and + the login has the Vapor look + +**Fixes:** + +* **systemd-boot:** the installed system gets its "Linux Boot Manager" EFI boot entry, first in the + boot order. cachyos-installer runs `bootctl install` in a chroot, where bootctl leaves the EFI + variables alone, so the entry was missing: the PC could only boot through the disk's fallback path + (`\EFI\BOOT\BOOTX64.EFI`). Most PCs find it early and boot normally, but firmware that tries the + network first waits minutes on every boot (QEMU/OVMF: PXE, HTTP boot and the EFI shell come first), + and anything else that writes the fallback file (another OS) takes the boot over. + `steamify-install` now runs `bootctl --variables=yes install` from the live system; + the output is in `/var/log/steamify-bootentry.log` +* **Installer:** Steamify's setup never asks for a password (its sudo rule is read after CachyOS's + `%wheel` rule); Calamares starts with the Boost version it was linked against +* **Build:** finishes cleanly as root and reports no error after a successful build; the Steamify page's + Calamares module is built with the ISO and left out when Calamares' version differs + # 26.07 **Features:** From df50367973f682161d36c9f5d7f3c7be4cb7b15f Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 17:10:15 +0200 Subject: [PATCH 62/79] fix: the systemd-boot entry is made with efibootmgr from the live system (bootctl in the chroot wrote HD(0,GPT,0000...), which the firmware can't load) --- CHANGELOG.md | 5 +++-- archiso/airootfs/usr/local/bin/steamify-install | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a8c95f5..d8ce8ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,8 +53,9 @@ CachyOS 26.08 with Steamify built in: install CachyOS and turn the PC into a Ste (`\EFI\BOOT\BOOTX64.EFI`). Most PCs find it early and boot normally, but firmware that tries the network first waits minutes on every boot (QEMU/OVMF: PXE, HTTP boot and the EFI shell come first), and anything else that writes the fallback file (another OS) takes the boot over. - `steamify-install` now runs `bootctl --variables=yes install` from the live system; - the output is in `/var/log/steamify-bootentry.log` + `steamify-install` now registers it with `efibootmgr` from the live system, with the ESP's real + disk and partition (bootctl in the chroot writes an entry without a partition, which the firmware + can't load); the output is in `/var/log/steamify-bootentry.log` * **Installer:** Steamify's setup never asks for a password (its sudo rule is read after CachyOS's `%wheel` rule); Calamares starts with the Boost version it was linked against * **Build:** finishes cleanly as root and reports no error after a successful build; the Steamify page's diff --git a/archiso/airootfs/usr/local/bin/steamify-install b/archiso/airootfs/usr/local/bin/steamify-install index 38db51c..748dd60 100755 --- a/archiso/airootfs/usr/local/bin/steamify-install +++ b/archiso/airootfs/usr/local/bin/steamify-install @@ -22,10 +22,20 @@ for id in ${choice//,/ }; do done # systemd-boot: cachyos-installer runs `bootctl install` in a chroot, and bootctl leaves the EFI # variables alone there: no "Linux Boot Manager" boot entry, so the firmware tries the network and -# its other entries first and finds the disk's fallback path last (or never). Register it now. +# its other entries first and finds the disk's fallback path last (or never). bootctl can't be made +# to do it from the chroot either (it writes the entry without the partition: HD(0,GPT,0000...)). +# So register it from the live system, with the ESP's real disk and partition; efibootmgr puts it first. if [[ -n "$root" && -f "$root/boot/EFI/systemd/systemd-bootx64.efi" && -d /sys/firmware/efi/efivars ]]; then - arch-chroot "$root" bootctl --esp-path=/boot --variables=yes install > "$root/var/log/steamify-bootentry.log" 2>&1 - arch-chroot "$root" efibootmgr >> "$root/var/log/steamify-bootentry.log" 2>&1 + { + esp="$(findmnt -no SOURCE "$root/boot")" + disk="/dev/$(lsblk -no PKNAME "$esp" | head -n 1)" + part="$(cat "/sys/class/block/${esp##*/}/partition")" + echo "ESP: $esp (disk $disk, partition $part)" + for n in $(efibootmgr | sed -n 's/^Boot\([0-9A-Fa-f]\{4\}\)\*\{0,1\} \(Fallback \)\{0,1\}Linux Boot Manager.*/\1/p'); do + efibootmgr -q -b "$n" -B + done + efibootmgr --create --disk "$disk" --part "$part" --label "Linux Boot Manager" --loader '\EFI\systemd\systemd-bootx64.efi' + } > "$root/var/log/steamify-bootentry.log" 2>&1 fi log="$root/var/log/steamify-install.log" rule="$root/etc/sudoers.d/zz-steamify-install" From faa57cdb7fe148c107737d9010e4664a1c758425 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 18:13:00 +0200 Subject: [PATCH 63/79] fix: steamify-install mounts the new system's /var/log (@log) first, so its logs aren't hidden under the mount after boot --- CHANGELOG.md | 3 +++ archiso/airootfs/usr/local/bin/steamify-install | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8ce8ac..2d28ba8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,6 +56,9 @@ CachyOS 26.08 with Steamify built in: install CachyOS and turn the PC into a Ste `steamify-install` now registers it with `efibootmgr` from the live system, with the ESP's real disk and partition (bootctl in the chroot writes an entry without a partition, which the firmware can't load); the output is in `/var/log/steamify-bootentry.log` +* **Installer:** Steamify's install-time logs (`/var/log/steamify-install.log`, + `steamify-bootentry.log`) are readable after the first boot: `/var/log` is its own btrfs subvolume + (`@log`) that wasn't mounted yet when Steamify ran, so they ended up hidden under it * **Installer:** Steamify's setup never asks for a password (its sudo rule is read after CachyOS's `%wheel` rule); Calamares starts with the Boost version it was linked against * **Build:** finishes cleanly as root and reports no error after a successful build; the Steamify page's diff --git a/archiso/airootfs/usr/local/bin/steamify-install b/archiso/airootfs/usr/local/bin/steamify-install index 748dd60..6ebb421 100755 --- a/archiso/airootfs/usr/local/bin/steamify-install +++ b/archiso/airootfs/usr/local/bin/steamify-install @@ -20,6 +20,17 @@ for id in ${choice//,/ }; do *) options+="${options:+,}$id" ;; esac done +# /var/log is its own btrfs subvolume (@log) that the installer doesn't mount at $root/var/log: what is +# written there now (these logs, Steamify's) would end up hidden under the mount after boot. Mount it +# from the new system's fstab for this run. +mounted_log=false +if [[ -n "$root" && -d "$root/var/log" ]] && ! mountpoint -q "$root/var/log"; then + read -r dev _ _ opts _ < <(awk '$2 == "/var/log" && $1 !~ /^#/' "$root/etc/fstab" 2>/dev/null) + if [[ -n "${dev:-}" ]] && mount -o "$opts" "$dev" "$root/var/log" 2>/dev/null; then + mounted_log=true + trap '$mounted_log && umount "$root/var/log"' EXIT + fi +fi # systemd-boot: cachyos-installer runs `bootctl install` in a chroot, and bootctl leaves the EFI # variables alone there: no "Linux Boot Manager" boot entry, so the firmware tries the network and # its other entries first and finds the disk's fallback path last (or never). bootctl can't be made From 631a4e4dd894bc7abe34e14add4809c95322e7dd Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 18:47:59 +0200 Subject: [PATCH 64/79] fix: steamify-install leaves /var/log mounted (the caller reads its log afterwards; unmounting it hid the log again) --- archiso/airootfs/usr/local/bin/steamify-install | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/archiso/airootfs/usr/local/bin/steamify-install b/archiso/airootfs/usr/local/bin/steamify-install index 6ebb421..b0bc080 100755 --- a/archiso/airootfs/usr/local/bin/steamify-install +++ b/archiso/airootfs/usr/local/bin/steamify-install @@ -22,14 +22,11 @@ for id in ${choice//,/ }; do done # /var/log is its own btrfs subvolume (@log) that the installer doesn't mount at $root/var/log: what is # written there now (these logs, Steamify's) would end up hidden under the mount after boot. Mount it -# from the new system's fstab for this run. -mounted_log=false +# from the new system's fstab and leave it mounted: the caller reads the log afterwards, and unmounts +# all of $root at the end anyway (Calamares' umount step, the test's poweroff). if [[ -n "$root" && -d "$root/var/log" ]] && ! mountpoint -q "$root/var/log"; then read -r dev _ _ opts _ < <(awk '$2 == "/var/log" && $1 !~ /^#/' "$root/etc/fstab" 2>/dev/null) - if [[ -n "${dev:-}" ]] && mount -o "$opts" "$dev" "$root/var/log" 2>/dev/null; then - mounted_log=true - trap '$mounted_log && umount "$root/var/log"' EXIT - fi + [[ -n "${dev:-}" ]] && mount -o "$opts" "$dev" "$root/var/log" 2>/dev/null fi # systemd-boot: cachyos-installer runs `bootctl install` in a chroot, and bootctl leaves the EFI # variables alone there: no "Linux Boot Manager" boot entry, so the firmware tries the network and From ac79172c516358ce7fcf387abf0140eb224ac9a5 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 20:44:32 +0200 Subject: [PATCH 65/79] feat(ci): the Steamify ISO is built and released on the Gitea mirror (v, notes from CHANGELOG.md; GitHub skips it) --- .github/workflows/steamify-iso.yml | 96 ++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 .github/workflows/steamify-iso.yml diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/steamify-iso.yml new file mode 100644 index 0000000..e9211e8 --- /dev/null +++ b/.github/workflows/steamify-iso.yml @@ -0,0 +1,96 @@ +# The Steamify ISO, built and released on the Gitea mirror (git.upriser.nl) by its own runner: the same +# build as by hand (the wsl-build-host skill in steamify-cachyos-dev), then a Gitea release v with the ISO, +# its checksums and package list, notes from CHANGELOG.md's Steamify section. GitHub skips it (one file +# for both servers; GitHub releases take at most 2 GB per file, the ISO is bigger). +# The runner needs privileged containers (archiso mounts loop devices) and ~20 GB of disk; Gitea's +# [attachment] MAX_SIZE must allow the ISO (default 2 GB). +name: Steamify ISO (Gitea release) + +on: + push: + branches: [feat/steamify] + workflow_dispatch: + +concurrency: + group: steamify-iso + cancel-in-progress: true + +jobs: + iso: + if: github.server_url != 'https://github.com' + runs-on: ubuntu-latest + container: + image: docker.io/cachyos/cachyos:latest + options: --privileged + defaults: + run: + shell: bash + steps: + - name: Tools + run: | + pacman-key --init && pacman-key --populate + # nodejs: the actions below run in this container + pacman -Syu --noconfirm --needed archiso mkinitcpio-archiso git squashfs-tools grub sudo nodejs curl jq + + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Steamify on the ISO (its newest release) + run: ./steamify-prepare.sh + + - name: Build + run: | + ./build-live-modules.sh + ./build-calamares-modules.sh + ./buildiso.sh -p desktop -w || ./buildiso.sh -p desktop -c -w + + - name: Release name and notes + id: rel + run: | + iso="$(ls out/desktop/*.iso | head -n 1)" + [ -f "$iso" ] || { echo "::error::no ISO in out/desktop"; exit 1; } + date="$(basename "$iso" | grep -oE '[0-9]{4}\.[0-9]{2}\.[0-9]{2}')" + steamify="$(sed -n 's/^VERSION=//p' archiso/airootfs/usr/local/share/steamify/steamify.sh | head -n 1)" + echo "tag=v$date" >> "$GITHUB_OUTPUT" + echo "date=$date" >> "$GITHUB_OUTPUT" + # The Steamify section of CHANGELOG.md ("## CachyOS with Steamify Live ISO ..."), without its heading. + section="$(awk '/^## CachyOS with Steamify Live ISO/ {found = 1; print; next} found && /^#/ {exit} found' CHANGELOG.md)" + title="$(head -n 1 <<< "$section" | sed 's/^## //')" + echo "title=$title" >> "$GITHUB_OUTPUT" + { + echo "Built $(date -u '+%F %H:%M UTC') from \`$(git rev-parse --short HEAD)\` (feat/steamify), with Steamify $steamify." + echo + echo "SHA-256: \`$(cut -d' ' -f1 "$iso.sha256")\`" + echo + tail -n +2 <<< "$section" + } > release-notes.md + cat release-notes.md + + # One release per day: a rebuild on the same day replaces that day's release (and its tag). + - name: Replace today's release + env: + TOKEN: ${{ github.token }} + TAG: ${{ steps.rel.outputs.tag }} + run: | + api="${{ github.server_url }}/api/v1/repos/${{ github.repository }}" + if curl -fsS -H "Authorization: token $TOKEN" "$api/releases/tags/$TAG" -o /tmp/rel.json; then + curl -fsS -X DELETE -H "Authorization: token $TOKEN" "$api/releases/$(jq -r .id /tmp/rel.json)" + curl -fsS -X DELETE -H "Authorization: token $TOKEN" "$api/tags/$TAG" || true + echo "Replaced the release $TAG" + fi + + - name: Publish ${{ steps.rel.outputs.tag }} + uses: akkuman/gitea-release-action@v1.3.7 + with: + token: ${{ github.token }} + tag_name: ${{ steps.rel.outputs.tag }} + target_commitish: ${{ github.sha }} + name: ${{ steps.rel.outputs.title }} (${{ steps.rel.outputs.date }}) + body_path: release-notes.md + prerelease: true + files: | + out/desktop/*.iso + out/desktop/*.iso.sha256 + out/desktop/*.iso.sha1 + out/desktop/*.pkgs.txt From a0ffe148f56ed8fb51afd46416cb6daea43f032c Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 20:51:13 +0200 Subject: [PATCH 66/79] feat(ci): the ISO's version follows Steamify: master releases v-, feat/steamify a test build v-dev.; CachyOS's own ISO workflow only runs in CachyOS's repo --- .github/workflows/build.yml | 3 ++ .github/workflows/steamify-iso.yml | 60 +++++++++++++++++------------- CHANGELOG.md | 3 +- 3 files changed, 39 insertions(+), 27 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 46e392b..1ad8c6f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,6 +11,9 @@ concurrency: jobs: build: + # CachyOS's plain ISO and its quicktest matrix: only in CachyOS's own repo, not in this fork + # (the Steamify ISO is steamify-iso.yml). + if: github.repository == 'CachyOS/CachyOS-Live-ISO' runs-on: ubuntu-latest container: image: archlinux:base-devel diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/steamify-iso.yml index e9211e8..e27cd6a 100644 --- a/.github/workflows/steamify-iso.yml +++ b/.github/workflows/steamify-iso.yml @@ -1,6 +1,8 @@ # The Steamify ISO, built and released on the Gitea mirror (git.upriser.nl) by its own runner: the same -# build as by hand (the wsl-build-host skill in steamify-cachyos-dev), then a Gitea release v with the ISO, -# its checksums and package list, notes from CHANGELOG.md's Steamify section. GitHub skips it (one file +# build as by hand (the wsl-build-host skill in steamify-cachyos-dev), then a Gitea release with the ISO, +# its checksums and package list, notes from CHANGELOG.md's Steamify section. The ISO's version is the +# Steamify version on it plus the build date: master releases v- (never overwritten), +# feat/steamify a pre-release v-dev. (a rebuild that day replaces it). GitHub skips it (one file # for both servers; GitHub releases take at most 2 GB per file, the ISO is bigger). # The runner needs privileged containers (archiso mounts loop devices) and ~20 GB of disk; Gitea's # [attachment] MAX_SIZE must allow the ISO (default 2 GB). @@ -8,7 +10,7 @@ name: Steamify ISO (Gitea release) on: push: - branches: [feat/steamify] + branches: [master, feat/steamify] workflow_dispatch: concurrency: @@ -47,48 +49,54 @@ jobs: - name: Release name and notes id: rel + env: + TOKEN: ${{ github.token }} run: | iso="$(ls out/desktop/*.iso | head -n 1)" [ -f "$iso" ] || { echo "::error::no ISO in out/desktop"; exit 1; } date="$(basename "$iso" | grep -oE '[0-9]{4}\.[0-9]{2}\.[0-9]{2}')" steamify="$(sed -n 's/^VERSION=//p' archiso/airootfs/usr/local/share/steamify/steamify.sh | head -n 1)" - echo "tag=v$date" >> "$GITHUB_OUTPUT" - echo "date=$date" >> "$GITHUB_OUTPUT" - # The Steamify section of CHANGELOG.md ("## CachyOS with Steamify Live ISO ..."), without its heading. - section="$(awk '/^## CachyOS with Steamify Live ISO/ {found = 1; print; next} found && /^#/ {exit} found' CHANGELOG.md)" - title="$(head -n 1 <<< "$section" | sed 's/^## //')" - echo "title=$title" >> "$GITHUB_OUTPUT" + [ -n "$steamify" ] || { echo "::error::no Steamify version on the ISO"; exit 1; } + api="${{ github.server_url }}/api/v1/repos/${{ github.repository }}" + exists() { curl -fsS -o /dev/null -H "Authorization: token $TOKEN" "$api/releases/tags/$1"; } + if [ "${{ github.ref }}" = refs/heads/master ]; then + tag="v$steamify-$date" prerelease=false name="CachyOS with Steamify Live ISO $steamify ($date)" + if exists "$tag"; then + echo "::warning::$tag is already released and won't be overwritten (a release is never replaced)." + echo "publish=false" >> "$GITHUB_OUTPUT"; exit 0 + fi + else + tag="v$steamify-dev.$date" prerelease=true name="CachyOS with Steamify Live ISO $steamify (test build $date)" + # One test build per day: a rebuild that day replaces it (release and tag). + if exists "$tag"; then + id="$(curl -fsS -H "Authorization: token $TOKEN" "$api/releases/tags/$tag" | jq -r .id)" + curl -fsS -X DELETE -H "Authorization: token $TOKEN" "$api/releases/$id" + curl -fsS -X DELETE -H "Authorization: token $TOKEN" "$api/tags/$tag" || true + echo "Replacing $tag" + fi + fi + { echo "publish=true"; echo "tag=$tag"; echo "prerelease=$prerelease"; echo "name=$name"; } >> "$GITHUB_OUTPUT" + # The Steamify section of CHANGELOG.md ("## CachyOS with Steamify Live ISO"), without its heading. + section="$(awk '/^## CachyOS with Steamify Live ISO/ {found = 1; next} found && /^#/ {exit} found' CHANGELOG.md)" { - echo "Built $(date -u '+%F %H:%M UTC') from \`$(git rev-parse --short HEAD)\` (feat/steamify), with Steamify $steamify." + echo "Built $(date -u '+%F %H:%M UTC') from \`$(git rev-parse --short HEAD)\` (${{ github.ref_name }}), with Steamify $steamify." echo echo "SHA-256: \`$(cut -d' ' -f1 "$iso.sha256")\`" echo - tail -n +2 <<< "$section" + echo "$section" } > release-notes.md cat release-notes.md - # One release per day: a rebuild on the same day replaces that day's release (and its tag). - - name: Replace today's release - env: - TOKEN: ${{ github.token }} - TAG: ${{ steps.rel.outputs.tag }} - run: | - api="${{ github.server_url }}/api/v1/repos/${{ github.repository }}" - if curl -fsS -H "Authorization: token $TOKEN" "$api/releases/tags/$TAG" -o /tmp/rel.json; then - curl -fsS -X DELETE -H "Authorization: token $TOKEN" "$api/releases/$(jq -r .id /tmp/rel.json)" - curl -fsS -X DELETE -H "Authorization: token $TOKEN" "$api/tags/$TAG" || true - echo "Replaced the release $TAG" - fi - - name: Publish ${{ steps.rel.outputs.tag }} + if: steps.rel.outputs.publish == 'true' uses: akkuman/gitea-release-action@v1.3.7 with: token: ${{ github.token }} tag_name: ${{ steps.rel.outputs.tag }} target_commitish: ${{ github.sha }} - name: ${{ steps.rel.outputs.title }} (${{ steps.rel.outputs.date }}) + name: ${{ steps.rel.outputs.name }} body_path: release-notes.md - prerelease: true + prerelease: ${{ steps.rel.outputs.prerelease }} files: | out/desktop/*.iso out/desktop/*.iso.sha256 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d28ba8..b16d9b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,8 +26,9 @@ * Correctly handle VM environments * Correctly quote pacman arguments -## CachyOS with Steamify Live ISO 1.0.0 (unreleased) +## CachyOS with Steamify Live ISO CachyOS 26.08 with Steamify built in: install CachyOS and turn the PC into a Steam Machine in one go. +Its version is the Steamify version on it plus the build date (a release on `master` is `v-`, e.g. `v2.9.1-2026.09.29`). **Features:** From 5a62fc818c11d5c7019b075634b949cde72fa072 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 20:51:37 +0200 Subject: [PATCH 67/79] feat(ci): the ISO's release name gets the build time too (v--, UTC): every build its own release --- .github/workflows/steamify-iso.yml | 25 ++++++++++--------------- CHANGELOG.md | 2 +- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/steamify-iso.yml index e27cd6a..d4fb38f 100644 --- a/.github/workflows/steamify-iso.yml +++ b/.github/workflows/steamify-iso.yml @@ -1,8 +1,8 @@ # The Steamify ISO, built and released on the Gitea mirror (git.upriser.nl) by its own runner: the same # build as by hand (the wsl-build-host skill in steamify-cachyos-dev), then a Gitea release with the ISO, # its checksums and package list, notes from CHANGELOG.md's Steamify section. The ISO's version is the -# Steamify version on it plus the build date: master releases v- (never overwritten), -# feat/steamify a pre-release v-dev. (a rebuild that day replaces it). GitHub skips it (one file +# Steamify version on it plus the build date and time (UTC): master releases v--, +# feat/steamify a pre-release v-dev.-. Never overwritten. GitHub skips it (one file # for both servers; GitHub releases take at most 2 GB per file, the ISO is bigger). # The runner needs privileged containers (archiso mounts loop devices) and ~20 GB of disk; Gitea's # [attachment] MAX_SIZE must allow the ISO (default 2 GB). @@ -59,21 +59,16 @@ jobs: [ -n "$steamify" ] || { echo "::error::no Steamify version on the ISO"; exit 1; } api="${{ github.server_url }}/api/v1/repos/${{ github.repository }}" exists() { curl -fsS -o /dev/null -H "Authorization: token $TOKEN" "$api/releases/tags/$1"; } + stamp="$date-$(date -u +%H%M)" # the ISO's date, the time of this run (UTC): every build its own name if [ "${{ github.ref }}" = refs/heads/master ]; then - tag="v$steamify-$date" prerelease=false name="CachyOS with Steamify Live ISO $steamify ($date)" - if exists "$tag"; then - echo "::warning::$tag is already released and won't be overwritten (a release is never replaced)." - echo "publish=false" >> "$GITHUB_OUTPUT"; exit 0 - fi + tag="v$steamify-$stamp" prerelease=false name="CachyOS with Steamify Live ISO $steamify ($stamp UTC)" else - tag="v$steamify-dev.$date" prerelease=true name="CachyOS with Steamify Live ISO $steamify (test build $date)" - # One test build per day: a rebuild that day replaces it (release and tag). - if exists "$tag"; then - id="$(curl -fsS -H "Authorization: token $TOKEN" "$api/releases/tags/$tag" | jq -r .id)" - curl -fsS -X DELETE -H "Authorization: token $TOKEN" "$api/releases/$id" - curl -fsS -X DELETE -H "Authorization: token $TOKEN" "$api/tags/$tag" || true - echo "Replacing $tag" - fi + tag="v$steamify-dev.$stamp" prerelease=true name="CachyOS with Steamify Live ISO $steamify (test build $stamp UTC)" + fi + # Never overwritten (a rerun in the same minute would find its tag taken). + if exists "$tag"; then + echo "::warning::$tag is already released and won't be overwritten." + echo "publish=false" >> "$GITHUB_OUTPUT"; exit 0 fi { echo "publish=true"; echo "tag=$tag"; echo "prerelease=$prerelease"; echo "name=$name"; } >> "$GITHUB_OUTPUT" # The Steamify section of CHANGELOG.md ("## CachyOS with Steamify Live ISO"), without its heading. diff --git a/CHANGELOG.md b/CHANGELOG.md index b16d9b8..25c32e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ ## CachyOS with Steamify Live ISO CachyOS 26.08 with Steamify built in: install CachyOS and turn the PC into a Steam Machine in one go. -Its version is the Steamify version on it plus the build date (a release on `master` is `v-`, e.g. `v2.9.1-2026.09.29`). +Its version is the Steamify version on it plus the build date and time (a release on `master` is `v--`, e.g. `v2.9.1-2026.09.29-1432`). **Features:** From a11266e2b7e5ba19f20ff6e341f19d36b773acfa Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 20:53:22 +0200 Subject: [PATCH 68/79] feat: the ISO's label follows the Steamify version on it and the build time (STEAMIFY_2_9_1_20260929_1432, was COS_); the release workflow names the same moment --- .github/workflows/steamify-iso.yml | 11 +++++++---- CHANGELOG.md | 2 +- archiso/profiledef.sh | 9 ++++++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/steamify-iso.yml index d4fb38f..7b292a3 100644 --- a/.github/workflows/steamify-iso.yml +++ b/.github/workflows/steamify-iso.yml @@ -39,7 +39,10 @@ jobs: fetch-depth: 0 - name: Steamify on the ISO (its newest release) - run: ./steamify-prepare.sh + run: | + ./steamify-prepare.sh + # One moment for the ISO's label (profiledef.sh) and the release's name. + echo "STEAMIFY_BUILD_STAMP=$(date -u +%Y%m%d_%H%M)" >> "$GITHUB_ENV" - name: Build run: | @@ -54,12 +57,12 @@ jobs: run: | iso="$(ls out/desktop/*.iso | head -n 1)" [ -f "$iso" ] || { echo "::error::no ISO in out/desktop"; exit 1; } - date="$(basename "$iso" | grep -oE '[0-9]{4}\.[0-9]{2}\.[0-9]{2}')" steamify="$(sed -n 's/^VERSION=//p' archiso/airootfs/usr/local/share/steamify/steamify.sh | head -n 1)" [ -n "$steamify" ] || { echo "::error::no Steamify version on the ISO"; exit 1; } api="${{ github.server_url }}/api/v1/repos/${{ github.repository }}" exists() { curl -fsS -o /dev/null -H "Authorization: token $TOKEN" "$api/releases/tags/$1"; } - stamp="$date-$(date -u +%H%M)" # the ISO's date, the time of this run (UTC): every build its own name + b="$STEAMIFY_BUILD_STAMP" # YYYYMMDD_HHMM (UTC), the same moment as the ISO's label + stamp="${b:0:4}.${b:4:2}.${b:6:2}-${b:9:4}" # every build its own name if [ "${{ github.ref }}" = refs/heads/master ]; then tag="v$steamify-$stamp" prerelease=false name="CachyOS with Steamify Live ISO $steamify ($stamp UTC)" else @@ -76,7 +79,7 @@ jobs: { echo "Built $(date -u '+%F %H:%M UTC') from \`$(git rev-parse --short HEAD)\` (${{ github.ref_name }}), with Steamify $steamify." echo - echo "SHA-256: \`$(cut -d' ' -f1 "$iso.sha256")\`" + echo "SHA-256: \`$(cut -d' ' -f1 "$iso.sha256")\`, label \`STEAMIFY_${steamify//./_}_$b\`" echo echo "$section" } > release-notes.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 25c32e2..f700044 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,7 +32,7 @@ Its version is the Steamify version on it plus the build date and time (a releas **Features:** -* **ISO:** called `steamify-cachyos--x86_64.iso`; CachyOS Hello installs it like CachyOS's own +* **ISO:** called `steamify-cachyos--x86_64.iso`, labelled after the Steamify version on it and the build time (`STEAMIFY_2_9_1_20260929_1432`, was CachyOS's `COS_`); CachyOS Hello installs it like CachyOS's own release (the build date is kept in `/etc/steammachine-iso-build`) * **Installer (CachyOS - Steamify Installer):** * A Steamify page after the packages page: which Steam Machine parts to set up (rows from diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index a6be25b..2b72809 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -2,7 +2,14 @@ # shellcheck disable=SC2034 iso_name="steamify-cachyos" -iso_label="COS_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" +# The label follows the release name: the Steamify version on the ISO (steamify-prepare.sh put it there) +# plus the build date and time, e.g. STEAMIFY_2_9_1_20260929_1432 (ISO 9660: at most 32 characters, +# A-Z 0-9 _). STEAMIFY_BUILD_STAMP (YYYYMMDD_HHMM, UTC) from the release workflow, so both name the same +# moment; built by hand, the time now. +_steamify="$(sed -n 's/^VERSION=//p' "${BASH_SOURCE[0]%/*}/airootfs/usr/local/share/steamify/steamify.sh" 2>/dev/null | head -n 1)" +_stamp="${STEAMIFY_BUILD_STAMP:-$(date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m%d_%H%M)}" +iso_label="STEAMIFY_${_steamify:+${_steamify//./_}_}${_stamp}" +iso_label="${iso_label:0:32}" iso_publisher="CachyOS " iso_application="Steamify CachyOS Live (based on CachyOS)" iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" From ff0ec9f11e7c59d58b01f16b758affde8876c54a Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 21:39:00 +0200 Subject: [PATCH 69/79] feat(ci): ISO releases start on GitHub (tag + notes, iso-release.yml); the Gitea mirror builds on that tag and attaches the ISO (a release on the mirror survives its syncs only with a tag from GitHub); steamify-prepare.sh takes an exact STEAMIFY_VERSION --- .github/workflows/iso-release.yml | 61 ++++++++++++++++++++++++ .github/workflows/steamify-iso.yml | 74 +++++++++++++++++------------- CHANGELOG.md | 1 + steamify-prepare.sh | 12 +++-- 4 files changed, 111 insertions(+), 37 deletions(-) create mode 100644 .github/workflows/iso-release.yml diff --git a/.github/workflows/iso-release.yml b/.github/workflows/iso-release.yml new file mode 100644 index 0000000..a9643e3 --- /dev/null +++ b/.github/workflows/iso-release.yml @@ -0,0 +1,61 @@ +# The Steamify ISO's release, step 1 of 2 (GitHub): names it and creates its tag and a release with the notes. +# The Gitea mirror (git.upriser.nl) gets the tag with its next sync (triggered here when GITEA_TOKEN is set), +# builds the ISO on that tag and attaches it to its own release for it (steamify-iso.yml). The ISO lives there: +# GitHub releases take at most 2 GB per file, the ISO is bigger, and a release on the mirror only survives its +# syncs when its tag comes from here. +# Name: the Steamify version the ISO gets (its newest release) plus the time: master releases +# v-- (UTC), feat/steamify a pre-release v-dev.-. +name: Steamify ISO release (tag) + +on: + push: + branches: [master, feat/steamify] + workflow_dispatch: + +permissions: + contents: write + +env: + GITEA_URL: https://git.upriser.nl + GITEA_REPO: theupriser/steamify-cachyos-live-iso + +jobs: + tag: + if: github.server_url == 'https://github.com' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Tag and release + env: + GH_TOKEN: ${{ github.token }} + run: | + steamify="$(gh release view -R theupriser/steamify-cachyos --json tagName -q .tagName)" + steamify="${steamify#v}" + stamp="$(date -u +%Y.%m.%d-%H%M)" + if [ "${{ github.ref }}" = refs/heads/master ]; then + tag="v$steamify-$stamp" pre="" name="CachyOS with Steamify Live ISO $steamify ($stamp UTC)" + else + tag="v$steamify-dev.$stamp" pre="--prerelease" name="CachyOS with Steamify Live ISO $steamify (test build $stamp UTC)" + fi + # The Steamify section of CHANGELOG.md ("## CachyOS with Steamify Live ISO"), without its heading. + section="$(awk '/^## CachyOS with Steamify Live ISO/ {found = 1; next} found && /^#/ {exit} found' CHANGELOG.md)" + notes="The ISO is built from \`$(git rev-parse --short HEAD)\` (${{ github.ref_name }}) with Steamify $steamify and published on the mirror (GitHub releases take at most 2 GB per file); it appears there within minutes of the mirror's sync: + + **Download: $GITEA_URL/$GITEA_REPO/releases/tag/$tag** + + Sources: [Steamify](https://github.com/theupriser/steamify-cachyos/tree/v$steamify), this repository at this tag, and the packages' sources at [CachyOS](https://github.com/CachyOS) and [Arch Linux](https://archlinux.org/packages/). + + $section" + gh release create "$tag" --target "$GITHUB_SHA" $pre --title "$name" --notes "$notes" + echo "Released $tag" + + # Optional: sync the mirror at once instead of at its interval (a Gitea token with repository write + # access as the secret GITEA_TOKEN). + - name: Sync the Gitea mirror + env: + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + run: | + if [ -z "$GITEA_TOKEN" ]; then echo "No GITEA_TOKEN: the mirror picks the tag up at its next sync."; exit 0; fi + curl -fsS -X POST -H "Authorization: token $GITEA_TOKEN" "$GITEA_URL/api/v1/repos/$GITEA_REPO/mirror-sync" && + echo "Mirror sync started" diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/steamify-iso.yml index 7b292a3..eb78c5b 100644 --- a/.github/workflows/steamify-iso.yml +++ b/.github/workflows/steamify-iso.yml @@ -1,20 +1,20 @@ -# The Steamify ISO, built and released on the Gitea mirror (git.upriser.nl) by its own runner: the same -# build as by hand (the wsl-build-host skill in steamify-cachyos-dev), then a Gitea release with the ISO, -# its checksums and package list, notes from CHANGELOG.md's Steamify section. The ISO's version is the -# Steamify version on it plus the build date and time (UTC): master releases v--, -# feat/steamify a pre-release v-dev.-. Never overwritten. GitHub skips it (one file -# for both servers; GitHub releases take at most 2 GB per file, the ISO is bigger). +# The Steamify ISO's release, step 2 of 2 (the Gitea mirror, git.upriser.nl, on its own runner): builds the +# ISO for a release tag that iso-release.yml created on GitHub (it comes in with the mirror's sync, and a +# release on the mirror only survives its syncs when its tag comes from GitHub), then attaches the ISO, its +# checksums and package list to the mirror's release for that tag. The tag names the Steamify version and +# the time: v-- (master) or v-dev.<...> (feat/steamify, a pre-release); +# the ISO gets exactly that Steamify release, and its label the same moment. GitHub skips it. # The runner needs privileged containers (archiso mounts loop devices) and ~20 GB of disk; Gitea's -# [attachment] MAX_SIZE must allow the ISO (default 2 GB). +# [repository.release] FILE_MAX_SIZE must allow the ISO (default 2 GB). name: Steamify ISO (Gitea release) on: push: - branches: [master, feat/steamify] + tags: ['v*'] workflow_dispatch: concurrency: - group: steamify-iso + group: steamify-iso-${{ github.ref }} cancel-in-progress: true jobs: @@ -38,11 +38,21 @@ jobs: with: fetch-depth: 0 - - name: Steamify on the ISO (its newest release) + - name: Version and time from the tag run: | - ./steamify-prepare.sh - # One moment for the ISO's label (profiledef.sh) and the release's name. - echo "STEAMIFY_BUILD_STAMP=$(date -u +%Y%m%d_%H%M)" >> "$GITHUB_ENV" + tag="${{ github.ref_name }}" + [[ "$tag" =~ ^v([0-9]+\.[0-9]+\.[0-9]+)-(dev\.)?([0-9]{4})\.([0-9]{2})\.([0-9]{2})-([0-9]{4})$ ]] || + { echo "::error::$tag is not a Steamify ISO release tag (v-[dev.]-)"; exit 1; } + m=("${BASH_REMATCH[@]}") + { + echo "STEAMIFY_VERSION=${m[1]}" + # One moment for the ISO's label (profiledef.sh) and the release's name: the tag's. + echo "STEAMIFY_BUILD_STAMP=${m[3]}${m[4]}${m[5]}_${m[6]}" + echo "ISO_PRERELEASE=$([ -n "${m[2]}" ] && echo true || echo false)" + } >> "$GITHUB_ENV" + + - name: Steamify ${{ env.STEAMIFY_VERSION }} on the ISO + run: ./steamify-prepare.sh - name: Build run: | @@ -57,44 +67,42 @@ jobs: run: | iso="$(ls out/desktop/*.iso | head -n 1)" [ -f "$iso" ] || { echo "::error::no ISO in out/desktop"; exit 1; } - steamify="$(sed -n 's/^VERSION=//p' archiso/airootfs/usr/local/share/steamify/steamify.sh | head -n 1)" - [ -n "$steamify" ] || { echo "::error::no Steamify version on the ISO"; exit 1; } - api="${{ github.server_url }}/api/v1/repos/${{ github.repository }}" - exists() { curl -fsS -o /dev/null -H "Authorization: token $TOKEN" "$api/releases/tags/$1"; } - b="$STEAMIFY_BUILD_STAMP" # YYYYMMDD_HHMM (UTC), the same moment as the ISO's label - stamp="${b:0:4}.${b:4:2}.${b:6:2}-${b:9:4}" # every build its own name - if [ "${{ github.ref }}" = refs/heads/master ]; then - tag="v$steamify-$stamp" prerelease=false name="CachyOS with Steamify Live ISO $steamify ($stamp UTC)" + tag="${{ github.ref_name }}" b="$STEAMIFY_BUILD_STAMP" + stamp="${b:0:4}.${b:4:2}.${b:6:2}-${b:9:4}" + if [ "$ISO_PRERELEASE" = true ]; then + name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION (test build $stamp UTC)" else - tag="v$steamify-dev.$stamp" prerelease=true name="CachyOS with Steamify Live ISO $steamify (test build $stamp UTC)" + name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION ($stamp UTC)" fi - # Never overwritten (a rerun in the same minute would find its tag taken). - if exists "$tag"; then - echo "::warning::$tag is already released and won't be overwritten." + # Never overwritten: a release for this tag that already has the ISO is left alone. + api="${{ github.server_url }}/api/v1/repos/${{ github.repository }}" + if curl -fsS -H "Authorization: token $TOKEN" "$api/releases/tags/$tag" -o /tmp/rel.json && + [ "$(jq '[.assets[] | select(.name | endswith(".iso"))] | length' /tmp/rel.json)" -gt 0 ]; then + echo "::warning::$tag already has its ISO and won't be overwritten." echo "publish=false" >> "$GITHUB_OUTPUT"; exit 0 fi - { echo "publish=true"; echo "tag=$tag"; echo "prerelease=$prerelease"; echo "name=$name"; } >> "$GITHUB_OUTPUT" - # The Steamify section of CHANGELOG.md ("## CachyOS with Steamify Live ISO"), without its heading. + { echo "publish=true"; echo "name=$name"; } >> "$GITHUB_OUTPUT" section="$(awk '/^## CachyOS with Steamify Live ISO/ {found = 1; next} found && /^#/ {exit} found' CHANGELOG.md)" { - echo "Built $(date -u '+%F %H:%M UTC') from \`$(git rev-parse --short HEAD)\` (${{ github.ref_name }}), with Steamify $steamify." + echo "Built from \`$(git rev-parse --short HEAD)\` ($tag) with Steamify $STEAMIFY_VERSION." echo - echo "SHA-256: \`$(cut -d' ' -f1 "$iso.sha256")\`, label \`STEAMIFY_${steamify//./_}_$b\`" + echo "SHA-256: \`$(cut -d' ' -f1 "$iso.sha256")\`, label \`STEAMIFY_${STEAMIFY_VERSION//./_}_$b\`" + echo + echo "Sources: [Steamify](https://github.com/theupriser/steamify-cachyos/tree/v$STEAMIFY_VERSION), this repository at this tag, and the packages' sources at [CachyOS](https://github.com/CachyOS) and [Arch Linux](https://archlinux.org/packages/)." echo echo "$section" } > release-notes.md cat release-notes.md - - name: Publish ${{ steps.rel.outputs.tag }} + - name: Publish ${{ github.ref_name }} if: steps.rel.outputs.publish == 'true' uses: akkuman/gitea-release-action@v1.3.7 with: token: ${{ github.token }} - tag_name: ${{ steps.rel.outputs.tag }} - target_commitish: ${{ github.sha }} + tag_name: ${{ github.ref_name }} name: ${{ steps.rel.outputs.name }} body_path: release-notes.md - prerelease: ${{ steps.rel.outputs.prerelease }} + prerelease: ${{ env.ISO_PRERELEASE }} files: | out/desktop/*.iso out/desktop/*.iso.sha256 diff --git a/CHANGELOG.md b/CHANGELOG.md index f700044..af85315 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ ## CachyOS with Steamify Live ISO CachyOS 26.08 with Steamify built in: install CachyOS and turn the PC into a Steam Machine in one go. Its version is the Steamify version on it plus the build date and time (a release on `master` is `v--`, e.g. `v2.9.1-2026.09.29-1432`). +Releases: GitHub creates the tag and a release with the notes; the ISO itself (over GitHub's 2 GB limit) is built on the Gitea mirror and attached to its release for that tag (git.upriser.nl). **Features:** diff --git a/steamify-prepare.sh b/steamify-prepare.sh index c133684..f45a60f 100755 --- a/steamify-prepare.sh +++ b/steamify-prepare.sh @@ -2,21 +2,25 @@ # steamify-prepare.sh [steamify checkout]: puts the Steamify bundle on the # ISO (archiso/airootfs/usr/local/share/steamify/steamify.sh), used by the # installer's Steamify step, and what its Steamify page shows (qml/). Built from a checkout when given, else the -# newest release. Run before buildiso.sh. +# newest release, or exactly release $STEAMIFY_VERSION (e.g. 2.9.2: the ISO release workflow, whose tag names +# the version). Run before buildiso.sh. set -euo pipefail +rel="https://github.com/theupriser/steamify-cachyos/releases/${STEAMIFY_VERSION:+download/v$STEAMIFY_VERSION}" +[[ -n "${STEAMIFY_VERSION:-}" ]] || rel+="latest/download" +src_ref="${STEAMIFY_VERSION:+v$STEAMIFY_VERSION}"; src_ref="${src_ref:-main}" dest="$(cd "$(dirname "$0")" && pwd)/archiso/airootfs/usr/local/share/steamify/steamify.sh" mkdir -p "$(dirname "$dest")" if [[ -n "${1:-}" ]]; then (cd "$1" && .github/tools/bundle.sh "$dest") else - curl -fsSL https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify.sh -o "$dest" + curl -fsSL "$rel/steamify.sh" -o "$dest" fi # The power-off fix's source, for build-live-modules.sh (live session). poweroff="$(dirname "$dest")/steamify-fremont-poweroff.c" if [[ -n "${1:-}" ]]; then cp "$1/patches/steamify-fremont-poweroff.c" "$poweroff" else - curl -fsSL https://raw.githubusercontent.com/theupriser/steamify-cachyos/main/patches/steamify-fremont-poweroff.c -o "$poweroff" + curl -fsSL "https://raw.githubusercontent.com/theupriser/steamify-cachyos/$src_ref/patches/steamify-fremont-poweroff.c" -o "$poweroff" fi # The installer's Steamify page (/usr/local/share/steamify-installer/ # SteamifyPage.qml) shows the app's explanations (Theme.qml, Texts.qml, from the @@ -27,7 +31,7 @@ rm -rf "$qml"; mkdir -p "$qml" if [[ -n "${1:-}" ]]; then cp "$1"/ui/qml/{Theme,Texts}.qml "$qml/" else - curl -fsSL https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify-app.tar.gz | + curl -fsSL "$rel/steamify-app.tar.gz" | tar -xz -C "$qml" --strip-components=2 ui/qml/Theme.qml ui/qml/Texts.qml fi cp "$(cd "$(dirname "$0")" && pwd)/archiso/airootfs/usr/local/share/steamify-installer/Items.qml" "$qml/" From 1ca1a71ed28acac296685c8bac2ebd594f80939d Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 21:57:34 +0200 Subject: [PATCH 70/79] fix(ci): the Steamify step's name (the version isn't known yet when Gitea evaluates it) --- .github/workflows/steamify-iso.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/steamify-iso.yml index eb78c5b..2f251db 100644 --- a/.github/workflows/steamify-iso.yml +++ b/.github/workflows/steamify-iso.yml @@ -51,7 +51,7 @@ jobs: echo "ISO_PRERELEASE=$([ -n "${m[2]}" ] && echo true || echo false)" } >> "$GITHUB_ENV" - - name: Steamify ${{ env.STEAMIFY_VERSION }} on the ISO + - name: Steamify on the ISO (the version the tag names) run: ./steamify-prepare.sh - name: Build From fc4c3ec95d20118bb95493526296f8792ef59697 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 22:09:33 +0200 Subject: [PATCH 71/79] feat(ci): ISO releases by a Steamify release or by hand (not every push), Dutch time in the name, tag and label, annotated tags (their own date: the mirror sorts releases on the same commit in order) --- .github/workflows/iso-release.yml | 21 +++++++++++++-------- .github/workflows/steamify-iso.yml | 6 +++--- CHANGELOG.md | 2 +- archiso/profiledef.sh | 6 +++--- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/.github/workflows/iso-release.yml b/.github/workflows/iso-release.yml index a9643e3..dc174d9 100644 --- a/.github/workflows/iso-release.yml +++ b/.github/workflows/iso-release.yml @@ -3,13 +3,13 @@ # builds the ISO on that tag and attaches it to its own release for it (steamify-iso.yml). The ISO lives there: # GitHub releases take at most 2 GB per file, the ISO is bigger, and a release on the mirror only survives its # syncs when its tag comes from here. -# Name: the Steamify version the ISO gets (its newest release) plus the time: master releases -# v-- (UTC), feat/steamify a pre-release v-dev.-. +# Name: the Steamify version the ISO gets (its newest release) plus the time (Dutch time, Europe/Amsterdam): +# master releases v--, feat/steamify a pre-release v-dev.<...>. name: Steamify ISO release (tag) +# Started by a new Steamify release (its bundle.yml, secret ISO_DISPATCH_TOKEN) or by hand (Run workflow, +# on master for a release, on feat/steamify for a test build); not by every push. on: - push: - branches: [master, feat/steamify] workflow_dispatch: permissions: @@ -32,11 +32,11 @@ jobs: run: | steamify="$(gh release view -R theupriser/steamify-cachyos --json tagName -q .tagName)" steamify="${steamify#v}" - stamp="$(date -u +%Y.%m.%d-%H%M)" + stamp="$(TZ=Europe/Amsterdam date +%Y.%m.%d-%H%M)" if [ "${{ github.ref }}" = refs/heads/master ]; then - tag="v$steamify-$stamp" pre="" name="CachyOS with Steamify Live ISO $steamify ($stamp UTC)" + tag="v$steamify-$stamp" pre="" name="CachyOS with Steamify Live ISO $steamify ($stamp)" else - tag="v$steamify-dev.$stamp" pre="--prerelease" name="CachyOS with Steamify Live ISO $steamify (test build $stamp UTC)" + tag="v$steamify-dev.$stamp" pre="--prerelease" name="CachyOS with Steamify Live ISO $steamify (test build $stamp)" fi # The Steamify section of CHANGELOG.md ("## CachyOS with Steamify Live ISO"), without its heading. section="$(awk '/^## CachyOS with Steamify Live ISO/ {found = 1; next} found && /^#/ {exit} found' CHANGELOG.md)" @@ -47,7 +47,12 @@ jobs: Sources: [Steamify](https://github.com/theupriser/steamify-cachyos/tree/v$steamify), this repository at this tag, and the packages' sources at [CachyOS](https://github.com/CachyOS) and [Arch Linux](https://archlinux.org/packages/). $section" - gh release create "$tag" --target "$GITHUB_SHA" $pre --title "$name" --notes "$notes" + # An annotated tag: its own date, so the mirror sorts releases on the same commit in order (a + # lightweight tag only has its commit's date). + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git tag -a "$tag" -m "$name" "$GITHUB_SHA" && git push origin "refs/tags/$tag" + gh release create "$tag" --verify-tag $pre --title "$name" --notes "$notes" echo "Released $tag" # Optional: sync the mirror at once instead of at its interval (a Gitea token with repository write diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/steamify-iso.yml index 2f251db..f8574ce 100644 --- a/.github/workflows/steamify-iso.yml +++ b/.github/workflows/steamify-iso.yml @@ -46,7 +46,7 @@ jobs: m=("${BASH_REMATCH[@]}") { echo "STEAMIFY_VERSION=${m[1]}" - # One moment for the ISO's label (profiledef.sh) and the release's name: the tag's. + # One moment for the ISO's label (profiledef.sh) and the release's name: the tag's (Dutch time). echo "STEAMIFY_BUILD_STAMP=${m[3]}${m[4]}${m[5]}_${m[6]}" echo "ISO_PRERELEASE=$([ -n "${m[2]}" ] && echo true || echo false)" } >> "$GITHUB_ENV" @@ -70,9 +70,9 @@ jobs: tag="${{ github.ref_name }}" b="$STEAMIFY_BUILD_STAMP" stamp="${b:0:4}.${b:4:2}.${b:6:2}-${b:9:4}" if [ "$ISO_PRERELEASE" = true ]; then - name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION (test build $stamp UTC)" + name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION (test build $stamp)" else - name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION ($stamp UTC)" + name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION ($stamp)" fi # Never overwritten: a release for this tag that already has the ISO is left alone. api="${{ github.server_url }}/api/v1/repos/${{ github.repository }}" diff --git a/CHANGELOG.md b/CHANGELOG.md index af85315..6a48c9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ ## CachyOS with Steamify Live ISO CachyOS 26.08 with Steamify built in: install CachyOS and turn the PC into a Steam Machine in one go. -Its version is the Steamify version on it plus the build date and time (a release on `master` is `v--`, e.g. `v2.9.1-2026.09.29-1432`). +Its version is the Steamify version on it plus the build date and time (Dutch time; a release on `master` is `v--`, e.g. `v2.9.3-2026.09.29-2205`). A new Steamify release starts one (a test build for now); by hand: Run workflow on "Steamify ISO release (tag)". Releases: GitHub creates the tag and a release with the notes; the ISO itself (over GitHub's 2 GB limit) is built on the Gitea mirror and attached to its release for that tag (git.upriser.nl). **Features:** diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index 2b72809..c1b322e 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -4,10 +4,10 @@ iso_name="steamify-cachyos" # The label follows the release name: the Steamify version on the ISO (steamify-prepare.sh put it there) # plus the build date and time, e.g. STEAMIFY_2_9_1_20260929_1432 (ISO 9660: at most 32 characters, -# A-Z 0-9 _). STEAMIFY_BUILD_STAMP (YYYYMMDD_HHMM, UTC) from the release workflow, so both name the same -# moment; built by hand, the time now. +# A-Z 0-9 _). STEAMIFY_BUILD_STAMP (YYYYMMDD_HHMM, Dutch time) from the release workflow, so both name the +# same moment; built by hand, the time now (Europe/Amsterdam). _steamify="$(sed -n 's/^VERSION=//p' "${BASH_SOURCE[0]%/*}/airootfs/usr/local/share/steamify/steamify.sh" 2>/dev/null | head -n 1)" -_stamp="${STEAMIFY_BUILD_STAMP:-$(date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m%d_%H%M)}" +_stamp="${STEAMIFY_BUILD_STAMP:-$(TZ=Europe/Amsterdam date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m%d_%H%M)}" iso_label="STEAMIFY_${_steamify:+${_steamify//./_}_}${_stamp}" iso_label="${iso_label:0:32}" iso_publisher="CachyOS " From f19dd0867a287b73d9cb8063a52e9118a84f5355 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 22:11:32 +0200 Subject: [PATCH 72/79] feat: the ISO's file is named after its release tag (steamify-cachyos-2.9.3-dev.2026.09.29-2230-x86_64.iso), so the GitHub release links straight to the ISO and its SHA-256 on the mirror --- .github/workflows/iso-release.yml | 7 +++++-- .github/workflows/steamify-iso.yml | 2 ++ CHANGELOG.md | 2 +- archiso/profiledef.sh | 5 ++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/iso-release.yml b/.github/workflows/iso-release.yml index dc174d9..6444144 100644 --- a/.github/workflows/iso-release.yml +++ b/.github/workflows/iso-release.yml @@ -38,11 +38,14 @@ jobs: else tag="v$steamify-dev.$stamp" pre="--prerelease" name="CachyOS with Steamify Live ISO $steamify (test build $stamp)" fi + # The ISO's file on the mirror is named after the tag (steamify-iso.yml, profiledef.sh), so its + # download link is known now. + file="steamify-cachyos-${tag#v}-x86_64.iso" dl="$GITEA_URL/$GITEA_REPO/releases/download/$tag" # The Steamify section of CHANGELOG.md ("## CachyOS with Steamify Live ISO"), without its heading. section="$(awk '/^## CachyOS with Steamify Live ISO/ {found = 1; next} found && /^#/ {exit} found' CHANGELOG.md)" - notes="The ISO is built from \`$(git rev-parse --short HEAD)\` (${{ github.ref_name }}) with Steamify $steamify and published on the mirror (GitHub releases take at most 2 GB per file); it appears there within minutes of the mirror's sync: + notes="The ISO is built from \`$(git rev-parse --short HEAD)\` (${{ github.ref_name }}) with Steamify $steamify and published on the mirror (GitHub releases take at most 2 GB per file), about half an hour after this release (the mirror's sync, then the build): - **Download: $GITEA_URL/$GITEA_REPO/releases/tag/$tag** + **Download: [$file]($dl/$file)** ([SHA-256]($dl/$file.sha256), [release page]($GITEA_URL/$GITEA_REPO/releases/tag/$tag)) Sources: [Steamify](https://github.com/theupriser/steamify-cachyos/tree/v$steamify), this repository at this tag, and the packages' sources at [CachyOS](https://github.com/CachyOS) and [Arch Linux](https://archlinux.org/packages/). diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/steamify-iso.yml index f8574ce..ecd7f38 100644 --- a/.github/workflows/steamify-iso.yml +++ b/.github/workflows/steamify-iso.yml @@ -49,6 +49,8 @@ jobs: # One moment for the ISO's label (profiledef.sh) and the release's name: the tag's (Dutch time). echo "STEAMIFY_BUILD_STAMP=${m[3]}${m[4]}${m[5]}_${m[6]}" echo "ISO_PRERELEASE=$([ -n "${m[2]}" ] && echo true || echo false)" + # The ISO's file name: the tag without its v (profiledef.sh). + echo "STEAMIFY_ISO_VERSION=${tag#v}" } >> "$GITHUB_ENV" - name: Steamify on the ISO (the version the tag names) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a48c9a..f53269d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,7 +33,7 @@ Releases: GitHub creates the tag and a release with the notes; the ISO itself (o **Features:** -* **ISO:** called `steamify-cachyos--x86_64.iso`, labelled after the Steamify version on it and the build time (`STEAMIFY_2_9_1_20260929_1432`, was CachyOS's `COS_`); CachyOS Hello installs it like CachyOS's own +* **ISO:** named after its release tag (`steamify-cachyos-2.9.3-2026.09.29-2230-x86_64.iso`; built by hand, the date), labelled after the Steamify version on it and the build time (`STEAMIFY_2_9_1_20260929_1432`, was CachyOS's `COS_`); CachyOS Hello installs it like CachyOS's own release (the build date is kept in `/etc/steammachine-iso-build`) * **Installer (CachyOS - Steamify Installer):** * A Steamify page after the packages page: which Steam Machine parts to set up (rows from diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index c1b322e..63029c6 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -12,7 +12,10 @@ iso_label="STEAMIFY_${_steamify:+${_steamify//./_}_}${_stamp}" iso_label="${iso_label:0:32}" iso_publisher="CachyOS " iso_application="Steamify CachyOS Live (based on CachyOS)" -iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" +# The file name (--x86_64.iso) follows the release tag without its v +# (STEAMIFY_ISO_VERSION from the release workflow: steamify-cachyos-2.9.3-dev.2026.09.29-2230-x86_64.iso); +# built by hand, the date. +iso_version="${STEAMIFY_ISO_VERSION:-$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)}" install_dir="arch" buildmodes=('iso') ## GRUB From d3956eef171e53e35a9ab55e57a6706ea423ea3c Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 22:12:12 +0200 Subject: [PATCH 73/79] feat: the ISO's boot menu and /etc/steammachine-iso-build name its release tag too (were the build date): the tag decides everything --- CHANGELOG.md | 2 +- util-iso.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f53269d..da103b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,7 +34,7 @@ Releases: GitHub creates the tag and a release with the notes; the ISO itself (o **Features:** * **ISO:** named after its release tag (`steamify-cachyos-2.9.3-2026.09.29-2230-x86_64.iso`; built by hand, the date), labelled after the Steamify version on it and the build time (`STEAMIFY_2_9_1_20260929_1432`, was CachyOS's `COS_`); CachyOS Hello installs it like CachyOS's own - release (the build date is kept in `/etc/steammachine-iso-build`) + release (the ISO's own release, its tag without the v, is in `/etc/steammachine-iso-build` and the boot menu) * **Installer (CachyOS - Steamify Installer):** * A Steamify page after the packages page: which Steam Machine parts to set up (rows from `steamify.sh --defaults --list`, the newest Steamify fetched before Calamares starts) and where diff --git a/util-iso.sh b/util-iso.sh index 84aee4e..3b32b74 100755 --- a/util-iso.sh +++ b/util-iso.sh @@ -140,7 +140,9 @@ prepare_profile(){ info "Profile: [%s]" "${profile}" - local _iso_version="$(date +%y%m%d)" + # The release tag without its v when the release workflow builds (STEAMIFY_ISO_VERSION): the boot menu + # and /etc/steammachine-iso-build name the same release as the file, label and tag. By hand: the date. + local _iso_version="${STEAMIFY_ISO_VERSION:-$(date +%y%m%d)}" change_grub_version "${_iso_version}" # Fetch up-to-date version of CachyOS repo mirrorlist From 0a413a3d951b43fa34a02ffe0d157da4778ca20d Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 22:18:31 +0200 Subject: [PATCH 74/79] fix(ci): the ISO release's time in UTC again (GitHub's clock when the release starts; the name says UTC) --- .github/workflows/iso-release.yml | 8 ++++---- .github/workflows/steamify-iso.yml | 6 +++--- CHANGELOG.md | 2 +- archiso/profiledef.sh | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/iso-release.yml b/.github/workflows/iso-release.yml index 6444144..c81fcea 100644 --- a/.github/workflows/iso-release.yml +++ b/.github/workflows/iso-release.yml @@ -3,7 +3,7 @@ # builds the ISO on that tag and attaches it to its own release for it (steamify-iso.yml). The ISO lives there: # GitHub releases take at most 2 GB per file, the ISO is bigger, and a release on the mirror only survives its # syncs when its tag comes from here. -# Name: the Steamify version the ISO gets (its newest release) plus the time (Dutch time, Europe/Amsterdam): +# Name: the Steamify version the ISO gets (its newest release) plus the time (UTC, GitHub's clock when the release starts): # master releases v--, feat/steamify a pre-release v-dev.<...>. name: Steamify ISO release (tag) @@ -32,11 +32,11 @@ jobs: run: | steamify="$(gh release view -R theupriser/steamify-cachyos --json tagName -q .tagName)" steamify="${steamify#v}" - stamp="$(TZ=Europe/Amsterdam date +%Y.%m.%d-%H%M)" + stamp="$(date -u +%Y.%m.%d-%H%M)" if [ "${{ github.ref }}" = refs/heads/master ]; then - tag="v$steamify-$stamp" pre="" name="CachyOS with Steamify Live ISO $steamify ($stamp)" + tag="v$steamify-$stamp" pre="" name="CachyOS with Steamify Live ISO $steamify ($stamp UTC)" else - tag="v$steamify-dev.$stamp" pre="--prerelease" name="CachyOS with Steamify Live ISO $steamify (test build $stamp)" + tag="v$steamify-dev.$stamp" pre="--prerelease" name="CachyOS with Steamify Live ISO $steamify (test build $stamp UTC)" fi # The ISO's file on the mirror is named after the tag (steamify-iso.yml, profiledef.sh), so its # download link is known now. diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/steamify-iso.yml index ecd7f38..9fe1f1f 100644 --- a/.github/workflows/steamify-iso.yml +++ b/.github/workflows/steamify-iso.yml @@ -46,7 +46,7 @@ jobs: m=("${BASH_REMATCH[@]}") { echo "STEAMIFY_VERSION=${m[1]}" - # One moment for the ISO's label (profiledef.sh) and the release's name: the tag's (Dutch time). + # One moment for the ISO's label (profiledef.sh) and the release's name: the tag's (UTC). echo "STEAMIFY_BUILD_STAMP=${m[3]}${m[4]}${m[5]}_${m[6]}" echo "ISO_PRERELEASE=$([ -n "${m[2]}" ] && echo true || echo false)" # The ISO's file name: the tag without its v (profiledef.sh). @@ -72,9 +72,9 @@ jobs: tag="${{ github.ref_name }}" b="$STEAMIFY_BUILD_STAMP" stamp="${b:0:4}.${b:4:2}.${b:6:2}-${b:9:4}" if [ "$ISO_PRERELEASE" = true ]; then - name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION (test build $stamp)" + name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION (test build $stamp UTC)" else - name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION ($stamp)" + name="CachyOS with Steamify Live ISO $STEAMIFY_VERSION ($stamp UTC)" fi # Never overwritten: a release for this tag that already has the ISO is left alone. api="${{ github.server_url }}/api/v1/repos/${{ github.repository }}" diff --git a/CHANGELOG.md b/CHANGELOG.md index da103b5..eb14f25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ ## CachyOS with Steamify Live ISO CachyOS 26.08 with Steamify built in: install CachyOS and turn the PC into a Steam Machine in one go. -Its version is the Steamify version on it plus the build date and time (Dutch time; a release on `master` is `v--`, e.g. `v2.9.3-2026.09.29-2205`). A new Steamify release starts one (a test build for now); by hand: Run workflow on "Steamify ISO release (tag)". +Its version is the Steamify version on it plus the build date and time (UTC, when the release starts on GitHub; a release on `master` is `v--`, e.g. `v2.9.3-2026.09.29-2015`). A new Steamify release starts one (a test build for now); by hand: Run workflow on "Steamify ISO release (tag)". Releases: GitHub creates the tag and a release with the notes; the ISO itself (over GitHub's 2 GB limit) is built on the Gitea mirror and attached to its release for that tag (git.upriser.nl). **Features:** diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index 63029c6..d4fb74f 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -4,10 +4,10 @@ iso_name="steamify-cachyos" # The label follows the release name: the Steamify version on the ISO (steamify-prepare.sh put it there) # plus the build date and time, e.g. STEAMIFY_2_9_1_20260929_1432 (ISO 9660: at most 32 characters, -# A-Z 0-9 _). STEAMIFY_BUILD_STAMP (YYYYMMDD_HHMM, Dutch time) from the release workflow, so both name the -# same moment; built by hand, the time now (Europe/Amsterdam). +# A-Z 0-9 _). STEAMIFY_BUILD_STAMP (YYYYMMDD_HHMM, UTC) from the release workflow, so both name the same +# moment; built by hand, the time now (UTC). _steamify="$(sed -n 's/^VERSION=//p' "${BASH_SOURCE[0]%/*}/airootfs/usr/local/share/steamify/steamify.sh" 2>/dev/null | head -n 1)" -_stamp="${STEAMIFY_BUILD_STAMP:-$(TZ=Europe/Amsterdam date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m%d_%H%M)}" +_stamp="${STEAMIFY_BUILD_STAMP:-$(date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m%d_%H%M)}" iso_label="STEAMIFY_${_steamify:+${_steamify//./_}_}${_stamp}" iso_label="${iso_label:0:32}" iso_publisher="CachyOS " From 3ab89a638d92d16dcbcda184c3a588f09e5ab130 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 22:19:28 +0200 Subject: [PATCH 75/79] fix: the ISO build reads no clock of its own: file name, label and boot menu come from the release tag only (GitHub's time); without a tag: local --- CHANGELOG.md | 2 +- archiso/profiledef.sh | 17 ++++++++--------- util-iso.sh | 5 +++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb14f25..77ca1a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,7 +33,7 @@ Releases: GitHub creates the tag and a release with the notes; the ISO itself (o **Features:** -* **ISO:** named after its release tag (`steamify-cachyos-2.9.3-2026.09.29-2230-x86_64.iso`; built by hand, the date), labelled after the Steamify version on it and the build time (`STEAMIFY_2_9_1_20260929_1432`, was CachyOS's `COS_`); CachyOS Hello installs it like CachyOS's own +* **ISO:** named after its release tag (`steamify-cachyos-2.9.3-2026.09.29-2030-x86_64.iso`; built by hand, without a tag: `local`), labelled after the Steamify version on it and the build time (`STEAMIFY_2_9_1_20260929_1432`, was CachyOS's `COS_`); CachyOS Hello installs it like CachyOS's own release (the ISO's own release, its tag without the v, is in `/etc/steammachine-iso-build` and the boot menu) * **Installer (CachyOS - Steamify Installer):** * A Steamify page after the packages page: which Steam Machine parts to set up (rows from diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index d4fb74f..5baa27c 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -2,20 +2,19 @@ # shellcheck disable=SC2034 iso_name="steamify-cachyos" -# The label follows the release name: the Steamify version on the ISO (steamify-prepare.sh put it there) -# plus the build date and time, e.g. STEAMIFY_2_9_1_20260929_1432 (ISO 9660: at most 32 characters, -# A-Z 0-9 _). STEAMIFY_BUILD_STAMP (YYYYMMDD_HHMM, UTC) from the release workflow, so both name the same -# moment; built by hand, the time now (UTC). +# The label follows the release tag, which GitHub names (iso-release.yml): the Steamify version on the ISO +# (steamify-prepare.sh put it there) plus the tag's date and time, e.g. STEAMIFY_2_9_3_20260929_2030 (ISO 9660: +# at most 32 characters, A-Z 0-9 _). STEAMIFY_BUILD_STAMP (YYYYMMDD_HHMM, UTC) comes from the tag; the build +# reads no clock of its own. Built by hand, without a tag: LOCAL. _steamify="$(sed -n 's/^VERSION=//p' "${BASH_SOURCE[0]%/*}/airootfs/usr/local/share/steamify/steamify.sh" 2>/dev/null | head -n 1)" -_stamp="${STEAMIFY_BUILD_STAMP:-$(date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m%d_%H%M)}" +_stamp="${STEAMIFY_BUILD_STAMP:-LOCAL}" iso_label="STEAMIFY_${_steamify:+${_steamify//./_}_}${_stamp}" iso_label="${iso_label:0:32}" iso_publisher="CachyOS " iso_application="Steamify CachyOS Live (based on CachyOS)" -# The file name (--x86_64.iso) follows the release tag without its v -# (STEAMIFY_ISO_VERSION from the release workflow: steamify-cachyos-2.9.3-dev.2026.09.29-2230-x86_64.iso); -# built by hand, the date. -iso_version="${STEAMIFY_ISO_VERSION:-$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)}" +# The file name (--x86_64.iso) is the release tag without its v (STEAMIFY_ISO_VERSION +# from the tag: steamify-cachyos-2.9.3-dev.2026.09.29-2030-x86_64.iso). Built by hand, without a tag: local. +iso_version="${STEAMIFY_ISO_VERSION:-local}" install_dir="arch" buildmodes=('iso') ## GRUB diff --git a/util-iso.sh b/util-iso.sh index 3b32b74..4f6792c 100755 --- a/util-iso.sh +++ b/util-iso.sh @@ -141,8 +141,9 @@ prepare_profile(){ info "Profile: [%s]" "${profile}" # The release tag without its v when the release workflow builds (STEAMIFY_ISO_VERSION): the boot menu - # and /etc/steammachine-iso-build name the same release as the file, label and tag. By hand: the date. - local _iso_version="${STEAMIFY_ISO_VERSION:-$(date +%y%m%d)}" + # and /etc/steammachine-iso-build name the same release as the file, label and tag (no clock of its own). + # By hand, without a tag: local. + local _iso_version="${STEAMIFY_ISO_VERSION:-local}" change_grub_version "${_iso_version}" # Fetch up-to-date version of CachyOS repo mirrorlist From 85d49cf5c5fb3d04dd4d1cc40e7835741a1fe68c Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 22:39:39 +0200 Subject: [PATCH 76/79] fix: sudo mkarchiso keeps STEAMIFY_ISO_VERSION and STEAMIFY_BUILD_STAMP (sudo dropped them: the ISO was named local, labelled LOCAL) --- util-iso.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util-iso.sh b/util-iso.sh index 4f6792c..2be2f76 100755 --- a/util-iso.sh +++ b/util-iso.sh @@ -201,7 +201,8 @@ run_build() { [ -d "$outFolder/$_profile" ] || mkdir -p "$outFolder/$_profile" cd ${work_dir}/archiso/ - sudo mkarchiso -v -w ${work_dir} -o "$outFolder/$_profile" ${work_dir}/archiso/ + # sudo drops the environment: the release tag's file name and label (profiledef.sh) must get through. + sudo --preserve-env=STEAMIFY_ISO_VERSION,STEAMIFY_BUILD_STAMP mkarchiso -v -w ${work_dir} -o "$outFolder/$_profile" ${work_dir}/archiso/ # $USER is empty when this runs as root (e.g. in a container): an empty # chown failed and aborted the rest (the build was done, the exit code 1). sudo chown "${SUDO_USER:-${USER:-$(id -un)}}" "$outFolder" From 7b7f3e6485fffcd8fabec4de060dbfb9f2775027 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 23:05:50 +0200 Subject: [PATCH 77/79] docs: AGENTS: the release pipeline (GitHub tag, ISO built and attached on the Gitea mirror) --- AGENTS.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 105315f..1e044c8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -109,3 +109,24 @@ Large `scp` transfers (e.g. the ~3.2GB built ISO) over this same flaky link can report "Connection closed" while actually still having copied fully — check the destination file's size/timestamp before assuming a real failure, and retry the copy (it's idempotent) rather than the whole build. + +## Releases (GitHub tag, ISO built and attached on the Gitea mirror) + +Full write-up, with every trap: `steamify-iso-release` in steamify-cachyos-dev. What matters here: + +- `.github/workflows/iso-release.yml` (GitHub, `workflow_dispatch` only: by hand, or started by a new Steamify + release, whose `bundle.yml` needs the secret `ISO_DISPATCH_TOKEN`) names the release: the Steamify version plus + GitHub's UTC time, `vX.Y.Z-[dev.]YYYY.MM.DD-HHMM`, an **annotated** tag and a release with notes and the direct + download link. `feat/steamify` makes a `dev.` pre-release, `master` a real one. +- `.github/workflows/steamify-iso.yml` (Gitea, `on: push: tags: v*`, skipped on GitHub) builds the ISO for that + tag and attaches it to the mirror's release. The tag decides everything: Steamify version (`steamify-prepare.sh` + takes `STEAMIFY_VERSION`), file name (`STEAMIFY_ISO_VERSION` -> `iso_version` in `profiledef.sh`), label + (`STEAMIFY_BUILD_STAMP`), boot menu and `/etc/steammachine-iso-build`. The build reads no clock; without a + tag everything says `local`. +- `util-iso.sh` runs `sudo mkarchiso`: sudo drops the environment, so `--preserve-env=STEAMIFY_ISO_VERSION, + STEAMIFY_BUILD_STAMP` is required (without it the ISO comes out `-local-`). +- Never create a release on the mirror by hand or from a Gitea-only tag: the pull mirror's next sync deletes tags + GitHub doesn't have, and the release with them. GitHub releases can't hold the ISO (2 GB per file). +- Gitea needs `[repository.release] FILE_MAX_SIZE` above the ISO (413 otherwise) and the runner + `container: privileged: true` (archiso mounts `/proc`); the workflow's `--privileged` option is ignored. +- CachyOS's own `Desktop ISO` workflow (`build.yml`) only runs in `CachyOS/CachyOS-Live-ISO`. From f408f70e76912970486c269666e390b061b91962 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Wed, 30 Sep 2026 07:47:47 +0200 Subject: [PATCH 78/79] docs: use the renamed steamify-cachyos-live-iso repo name - README clone instructions and the packagechooserq patch comment --- README.md | 4 ++-- patches/packagechooserq-steamify-summary.patch | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e9ef61e..55e3f2e 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ You need about 20 GB of free space, and a Linux PC with build runs in CachyOS's own container, so the PC doesn't have to run CachyOS. ```bash -git clone -b feat/steamify https://github.com/theupriser/steammachine-cachyos-live-iso -cd steammachine-cachyos-live-iso +git clone -b feat/steamify https://github.com/theupriser/steamify-cachyos-live-iso +cd steamify-cachyos-live-iso # Put Steamify on the ISO: the newest release. To use your own checkout, # pass its path: ./steamify-prepare.sh ~/steamify-cachyos diff --git a/patches/packagechooserq-steamify-summary.patch b/patches/packagechooserq-steamify-summary.patch index 4243224..4f0e39e 100644 --- a/patches/packagechooserq-steamify-summary.patch +++ b/patches/packagechooserq-steamify-summary.patch @@ -21,7 +21,7 @@ diff -ruN a/packagechooserq/PackageChooserQmlViewStep.cpp b/packagechooserq/Pack - //QString option = m_pkgc; - //return tr( "Install option: %1" ).arg( option ); - return m_config->prettyStatus(); -+ // Steamify page (steammachine-cachyos-live-iso): its choice is Steamify's ++ // Steamify page (steamify-cachyos-live-iso): its choice is Steamify's + // item ids ("boot" = start in the desktop, "none" = nothing on); show + // their labels, from the rows calamares-online.sh writes next to the + // page, instead of the raw ids. Any other use keeps the stock text. From 44354f99fa759590284187d1fe0a8a3c44647397 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Wed, 30 Sep 2026 08:11:31 +0200 Subject: [PATCH 79/79] refactor(ci): name the ISO workflows after their order and host, secrets for the mirror's URL and token - iso-release.yml -> iso-1-github-tag.yml (ISO 1/2: tag and release, GitHub) - steamify-iso.yml -> iso-2-gitea-build.yml (ISO 2/2: build and publish, Gitea) - the mirror sync takes its URL and token from GIT_UPRISER_URL / GIT_UPRISER_TOKEN and retries - docs and comments follow the new names --- .github/workflows/build.yml | 2 +- .../{iso-release.yml => iso-1-github-tag.yml} | 18 +++++++++--------- ...{steamify-iso.yml => iso-2-gitea-build.yml} | 4 ++-- AGENTS.md | 4 ++-- CHANGELOG.md | 2 +- archiso/profiledef.sh | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) rename .github/workflows/{iso-release.yml => iso-1-github-tag.yml} (84%) rename .github/workflows/{steamify-iso.yml => iso-2-gitea-build.yml} (97%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1ad8c6f..059be29 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ concurrency: jobs: build: # CachyOS's plain ISO and its quicktest matrix: only in CachyOS's own repo, not in this fork - # (the Steamify ISO is steamify-iso.yml). + # (the Steamify ISO is iso-2-gitea-build.yml). if: github.repository == 'CachyOS/CachyOS-Live-ISO' runs-on: ubuntu-latest container: diff --git a/.github/workflows/iso-release.yml b/.github/workflows/iso-1-github-tag.yml similarity index 84% rename from .github/workflows/iso-release.yml rename to .github/workflows/iso-1-github-tag.yml index c81fcea..616dd73 100644 --- a/.github/workflows/iso-release.yml +++ b/.github/workflows/iso-1-github-tag.yml @@ -1,11 +1,11 @@ # The Steamify ISO's release, step 1 of 2 (GitHub): names it and creates its tag and a release with the notes. -# The Gitea mirror (git.upriser.nl) gets the tag with its next sync (triggered here when GITEA_TOKEN is set), -# builds the ISO on that tag and attaches it to its own release for it (steamify-iso.yml). The ISO lives there: +# The Gitea mirror (git.upriser.nl) gets the tag with its next sync (triggered here when GIT_UPRISER_TOKEN is set), +# builds the ISO on that tag and attaches it to its own release for it (iso-2-gitea-build.yml). The ISO lives there: # GitHub releases take at most 2 GB per file, the ISO is bigger, and a release on the mirror only survives its # syncs when its tag comes from here. # Name: the Steamify version the ISO gets (its newest release) plus the time (UTC, GitHub's clock when the release starts): # master releases v--, feat/steamify a pre-release v-dev.<...>. -name: Steamify ISO release (tag) +name: ISO 1/2 · Tag and release (GitHub) # Started by a new Steamify release (its bundle.yml, secret ISO_DISPATCH_TOKEN) or by hand (Run workflow, # on master for a release, on feat/steamify for a test build); not by every push. @@ -16,7 +16,7 @@ permissions: contents: write env: - GITEA_URL: https://git.upriser.nl + GITEA_URL: ${{ secrets.GIT_UPRISER_URL }} GITEA_REPO: theupriser/steamify-cachyos-live-iso jobs: @@ -38,7 +38,7 @@ jobs: else tag="v$steamify-dev.$stamp" pre="--prerelease" name="CachyOS with Steamify Live ISO $steamify (test build $stamp UTC)" fi - # The ISO's file on the mirror is named after the tag (steamify-iso.yml, profiledef.sh), so its + # The ISO's file on the mirror is named after the tag (iso-2-gitea-build.yml, profiledef.sh), so its # download link is known now. file="steamify-cachyos-${tag#v}-x86_64.iso" dl="$GITEA_URL/$GITEA_REPO/releases/download/$tag" # The Steamify section of CHANGELOG.md ("## CachyOS with Steamify Live ISO"), without its heading. @@ -59,11 +59,11 @@ jobs: echo "Released $tag" # Optional: sync the mirror at once instead of at its interval (a Gitea token with repository write - # access as the secret GITEA_TOKEN). + # access as the secret GIT_UPRISER_TOKEN). - name: Sync the Gitea mirror env: - GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + GIT_UPRISER_TOKEN: ${{ secrets.GIT_UPRISER_TOKEN }} run: | - if [ -z "$GITEA_TOKEN" ]; then echo "No GITEA_TOKEN: the mirror picks the tag up at its next sync."; exit 0; fi - curl -fsS -X POST -H "Authorization: token $GITEA_TOKEN" "$GITEA_URL/api/v1/repos/$GITEA_REPO/mirror-sync" && + if [ -z "$GIT_UPRISER_TOKEN" ]; then echo "No GIT_UPRISER_TOKEN: the mirror picks the tag up at its next sync."; exit 0; fi + curl -fsS --retry 5 --retry-delay 10 --retry-all-errors -X POST -H "Authorization: token $GIT_UPRISER_TOKEN" "$GITEA_URL/api/v1/repos/$GITEA_REPO/mirror-sync" && echo "Mirror sync started" diff --git a/.github/workflows/steamify-iso.yml b/.github/workflows/iso-2-gitea-build.yml similarity index 97% rename from .github/workflows/steamify-iso.yml rename to .github/workflows/iso-2-gitea-build.yml index 9fe1f1f..edae835 100644 --- a/.github/workflows/steamify-iso.yml +++ b/.github/workflows/iso-2-gitea-build.yml @@ -1,12 +1,12 @@ # The Steamify ISO's release, step 2 of 2 (the Gitea mirror, git.upriser.nl, on its own runner): builds the -# ISO for a release tag that iso-release.yml created on GitHub (it comes in with the mirror's sync, and a +# ISO for a release tag that iso-1-github-tag.yml created on GitHub (it comes in with the mirror's sync, and a # release on the mirror only survives its syncs when its tag comes from GitHub), then attaches the ISO, its # checksums and package list to the mirror's release for that tag. The tag names the Steamify version and # the time: v-- (master) or v-dev.<...> (feat/steamify, a pre-release); # the ISO gets exactly that Steamify release, and its label the same moment. GitHub skips it. # The runner needs privileged containers (archiso mounts loop devices) and ~20 GB of disk; Gitea's # [repository.release] FILE_MAX_SIZE must allow the ISO (default 2 GB). -name: Steamify ISO (Gitea release) +name: ISO 2/2 · Build and publish (Gitea) on: push: diff --git a/AGENTS.md b/AGENTS.md index 1e044c8..3724971 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -114,11 +114,11 @@ failure, and retry the copy (it's idempotent) rather than the whole build. Full write-up, with every trap: `steamify-iso-release` in steamify-cachyos-dev. What matters here: -- `.github/workflows/iso-release.yml` (GitHub, `workflow_dispatch` only: by hand, or started by a new Steamify +- `.github/workflows/iso-1-github-tag.yml` (GitHub, `workflow_dispatch` only: by hand, or started by a new Steamify release, whose `bundle.yml` needs the secret `ISO_DISPATCH_TOKEN`) names the release: the Steamify version plus GitHub's UTC time, `vX.Y.Z-[dev.]YYYY.MM.DD-HHMM`, an **annotated** tag and a release with notes and the direct download link. `feat/steamify` makes a `dev.` pre-release, `master` a real one. -- `.github/workflows/steamify-iso.yml` (Gitea, `on: push: tags: v*`, skipped on GitHub) builds the ISO for that +- `.github/workflows/iso-2-gitea-build.yml` (Gitea, `on: push: tags: v*`, skipped on GitHub) builds the ISO for that tag and attaches it to the mirror's release. The tag decides everything: Steamify version (`steamify-prepare.sh` takes `STEAMIFY_VERSION`), file name (`STEAMIFY_ISO_VERSION` -> `iso_version` in `profiledef.sh`), label (`STEAMIFY_BUILD_STAMP`), boot menu and `/etc/steammachine-iso-build`. The build reads no clock; without a diff --git a/CHANGELOG.md b/CHANGELOG.md index 77ca1a2..378af9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ ## CachyOS with Steamify Live ISO CachyOS 26.08 with Steamify built in: install CachyOS and turn the PC into a Steam Machine in one go. -Its version is the Steamify version on it plus the build date and time (UTC, when the release starts on GitHub; a release on `master` is `v--`, e.g. `v2.9.3-2026.09.29-2015`). A new Steamify release starts one (a test build for now); by hand: Run workflow on "Steamify ISO release (tag)". +Its version is the Steamify version on it plus the build date and time (UTC, when the release starts on GitHub; a release on `master` is `v--`, e.g. `v2.9.3-2026.09.29-2015`). A new Steamify release starts one (a test build for now); by hand: Run workflow on "ISO 1/2 · Tag and release (GitHub)". Releases: GitHub creates the tag and a release with the notes; the ISO itself (over GitHub's 2 GB limit) is built on the Gitea mirror and attached to its release for that tag (git.upriser.nl). **Features:** diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index 5baa27c..d862a52 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -2,7 +2,7 @@ # shellcheck disable=SC2034 iso_name="steamify-cachyos" -# The label follows the release tag, which GitHub names (iso-release.yml): the Steamify version on the ISO +# The label follows the release tag, which GitHub names (iso-1-github-tag.yml): the Steamify version on the ISO # (steamify-prepare.sh put it there) plus the tag's date and time, e.g. STEAMIFY_2_9_3_20260929_2030 (ISO 9660: # at most 32 characters, A-Z 0-9 _). STEAMIFY_BUILD_STAMP (YYYYMMDD_HHMM, UTC) comes from the tag; the build # reads no clock of its own. Built by hand, without a tag: LOCAL.

~Et!EC#p^ zS{xhC<^_Hgh*ElCdO5z9tzcQ@vv4TkG3`3*rDt8CCwwh?=(vD;xJk8ii#?5Uhp$cp z;tpy1&oaCx6v|XugRcA3clfylljRD1LM>`_^`!NKf4sh$G;ey|0bpZuNUCJZI>Pi` zTs!r4ElZ9`y+in&rLME`F$j8)`3SUnmCVTwn*jC9A!!?qY#2hUfvw4no@xg#zS-v4 zY9wJZ;BBy945cJ}vUXL<#)K|{&gpH*M1Hmg_alK1kB{w-)&Okq6^YXUhsXrnC4k)* zN;Rh13Vn*)?$O@hu@XCXlI60!H&(Q+V45G6KfXS8UbHkULznKn#?9}MH?!e1r2~x1 z(q!&ps)j*00>2Kd_FucK-N+YERNdo`h%II@>U&85vHibsC*Yb0k&7dsn}9(6Qv^vo z54gUHUS*nZ8gODs6=w*-z*2n`;1=5VW+|Sbr=W*l+Oz?L&a#xQpFoT*5)~?4{FtTVYN-qYVH)& z9_Zbg)>l7ivtBL5&8syNL@rUjFStfad@!^-KXN#!+w041A@)%;2K&`0JJier#)xRS zgMLMU08iQBZa7t9CVnvnPb?WGRuk*?pw0K%!%V~;kJOqaMg`)Eg~WhV6TD~*Pa_;TsZIMo+01r=0)p} zwFru(lLXs^uJ>|QKVzI6immi+Ceh^46+8Ij0HfyUrOjQsYvJt z_A305>v1R#4MQkGcvUWL%rd~Qx&U1+Il9UArbKh|uxn=IpuXE(qRO73fV<`)tWVVi zaBB)y9kStvT)osEz_bRJhD)} z*B`?)d1b1nV&mrb*1E*ept(qra_4ZYN$ky83fz&FgL)px2Hay>9e`fvK@-w!eT3UG zfJ+|w@4&TF5Fu?+#Fj2D-??%054YaM39;DO{%0TT--KbFWydFOU87-Uz0#!}v-qp5 zx-6#qddlE+=f48%Al_oS7g>G+(Z+m1eAD9T&N|OGRlx^Baz1ttcmWamL{`s@+Vqc+lQ_Xp z&jOS45(Mxr&j6&|ec3a_7meap8H>?-UB-HX;%y1)Ah<6T`^7CL?aPMJhZC}7=biXd z&=_jW3I$$I9p?QZOLAIPx|ksP0>LhEdHyLUE&Nx&#OOP{>Z>3{IrPiCzsh~8`17?#V5+>dtIlCHoJ!l|CyX` zF~xGz`JH=J)mCX4-iQ3n;t#zNUuK4{SLKn}#3`uoM8sq+Eer~Hw>cpcv&m(D=jg-uuN^AUb6KySw{dj6DEMG%w6YF7@B~@-pSsi! zRInpl8n@8n9Vqgae;Qi&j3;Q21lSnPH~gykS(h@iaZYMSSkY44q*z=~gB4ygInn0C zq)w;JqII*7XM%A~lA|34Cd(}h>6d@CaDIe{TmZGh<+3E-7mh?fJ-6Q@g0v@{SYxzs!39&RU$eXN zI5I@Vb5G8+UTPMj8`y;mU?qs>llgJ0iX;PO5hu_1O#h+ET@jwe zwOLMwn@{rKPnN>8p+@Q&N|HHjX{Mh}K~>CDE*wuRN2cFF>2~R#$;o=W3hjkf50s5p z^2^$E1Q_wTiI)dA6F*B~gQR1ZxC-^O#^ji?C4z$(RmDe%BDTGpaf2^vU*!B%8^A`9 z5tIxdvyA3OxRpB|?y^6qx2=_Y{~7W2J~__$DD76-YWuv?i**IL9G~)ZuCScw+%;^> z0_OKAh@X6Y&!DY$wHhlMm2L{Ff5Z71xwaT;olR#u<=H8TpI8~=|NF@Ng2-NcNW!(} zCwvQdXzeGN za_7E$+u0s^eW(KdH;5*ZBFuXK`S;f7rz56Ki-#q0^kH9_E_fSi!v?@&NQ|=NiowL} z5hu=JTl?AZz61f$`6gcqU+f8K=z91C@iCAfJl2#hEPEboxvpTaI=mRMrMKrc$Nlws z8Y+ATb@)B~mWzUp?AR9L9(zLpnVBmNV0w<42)(!>t}5VToR^ChM_y%n)?4s10Ri(v zH4!I?+jYe`Z%jMy6GLs>7EVFq_497AE53N3Ow0#ioLPsFi)18sUZdR$1<-j&5`17H z>}wEV$B{GoV)&4#8^+aVr+Q)cBSc7!u!u%umF$Wh&DMwBw!Q`3%ASMMpx?a$-1Ok! zJ9n9{BUof<=2nlZNL|Y|U*`=XY%b#DzE|URBRu=qE|9tJ6hiiSv%x+89H8g47o{OH zlRz59{wE8JqpI31M8c3q?R)d4*OmU>qebl)HSGXb zP*L1q{J0%JPy=2yP<+olR23dV=i_Zw?_WI4tY2T7xZ9^(q*(o0o443cBcj0ZW(D7C zq-#Ozc4NZCWxm7>Rn9Z;Plrm2Gby2}kQgM+LR6Zhy;fr#KTitS8(vLll%}4o%X$iw z34%NlSyOqI$h)vSV)gq9;H4c7BNhJqC#_rT)|0u>7l%bW3)ZN7Ljfvw3ihcE1-$Mn z{1)8Gg!K$IN7_fxktfDSla%m7w}~jtr?5w9Qv6+JhOerdo|Ed6wgqMfVw3SU^7&c$ zLC_3<%cN<#LO!!6Ub&|c_TAC^rZy>kiShSaFsndu3z^Mj2oAV$Thy8q1C)R2GDCTL z3!ik}DY4AZb+14)Xzc#M?u?;w{<>5dIDH?tnw_Yb7?^4oF;c$i(&L5tyE>PJe*4-D z&Pxc)7rQ<%arPKu90?+S!y@Ls1LO_f|6Qc?g$bwh@Vn#VSALT9U1;af?T}~~ZD1rzI4J*{0%Ozk<7pvMfM0d1cGyAXaSZbxI3kFstP5$aLKWeHM{F76AQ zl_O^<)2%EE;(;1|7rHTi#OTAW=i0&j*Jw}12#GlJg}YlP3vR;gmO?r6q)jJ;M2%IM zu6!OIzH#|V{Na^`^e2?qrgNLeQtsY3Y#Y@@ASH4{GjSKVHu+;f0$nf*@$%uj7NG5# z|C%bPD8foysXYa~7g8j2?Exypd#|W;B)d<)E~^=HA&qZ>`g!odE!t(nNJ_vU;-x{T z5ahG218%sj_ew@_kG()#eH~_4hSXvyF9z}S}xcZ@$1hnzIDp8BmnD5{+FkC#&?fX;PhbzCpLw5v_5Az_@TgnaWTzcKftS58 z*?xl$q3Q8px^bTe2Rb#iY4_Cs42PRC0aXp_Xq*PUWHwp7TmE2sA2D||2&&tqV-q1e z&_4YAO!G=gnga0ienF|GL9~}FXygBI@G=2yw#;*!&)BAjga4Px?H53`H`(!jt35s2 z$FnMHs0!i%qU-;v1^=&~`PySh!yYUyo540s=jlii$Ph?t(^Z-LhKx8O?>?q^ImFRH zw~($%FFPC~n=wH1jKx?_{L;{48lj}Ap~Mg;RuJbOrl%wC7lQblz&hvh6K8^G4HF~H zUOPpPfbQxkIpMGz1iGWg$N%z#@rBIc%*OSTIV`?H*^8_HE~rPyKx!~7oL^Rnq7{_FbrY!yV1 z;tKLn0WDCz@^()zTi`KWg~{{&4fu{bP~P&dOzf(o6!7UTXKPm_NLO90w(zb00MO@Q zn%+v#Re9nNxZ8w3Hc(vc!c36Z;)r2asrhve)vH0*pZOUQMtD{7LsmJ@+)*xcZd%;b z;fVxgMMk(Q?`fmQg2cXk>)F;3SO^mN_U*cdPHtAk8BxyP_XMwBkxf`BrC>pcO9Tz++yCu&VR`Z>OY|OIC+ugy<%zf8Lh6P`Qb`n@x+z>}Q z8P5uyaK0@YPpLN6^)Q8xobC7FJa-VQp^&Kd;R$f?Nl|V3tiVeX1CLlr;CHR-Pn;N> zVy-E(8fC2&%$y)*E}6ZgUaI`?>G<8?BI)=nwA8V%_La3$?W@zTWLKOu4AJ5D0;uzRfcRAE%Diwfg8Zn(GxK%Z<3y@&hdlTc6i{`pIEDGb*#rHI zgq>lzELskIrGo;I`ikun!IZ7zKK`O;Z|IDuL8FCs`B;thE8iU{?#Fuu8xofSB_8{5 z(Z#75(MCoKi8rqViQ1^k^TogzIdLAUU`!tL-uEPY0iXd&KUcr>OkE1Z(~w38hbsN$O&vdDM^J8et{6i?kYK!)f$WgGsw}8BM?Uvzdd6`!<4ePM!`(h!*)vzw z=_2EVEs&x zh)qRp$3v@`7{ab9`|G0|?@G-Tu+HPfndGh)s!j&--`j#GQsLKXA`JCz+|rxPnj7?_ zJ$|ew<9*V1m5fsWTIG?q#cT1hVP)#g?y{Y3eh*H#_-h39E(!)C9gh!xcy!Dt4g`Q- zNXt=dCUt`2x*Y)dI<&B~An`_VeD9gvu_ju=$8Rv|0J2gjZ$7KX%Od9Hn41c%Jr91s#71ANV)92fW+!D=x-%b^2ipRiioQa(JNeNftKTG2> zZMhuxrUsQuL^HSfRf_JPf`S71+i-cx8zZT`R2u0GXf-luJC~Uuv-l}X;FiQGNT;)r zf+j0M$bN(uL>O^f-g12l@d62&%x1T6HrE_o?s#nh@0tadbTWpE0F0EMQ=ha;>)}zJ z5e!NYDVh>Da5fb^sNV490;nBMZm#ISxK;@a^2F8i4OF714v1vIn>V7R0>lb5DEEDN zi`S;1M=x;7sYDc`C6c(|Z8n(VVW_S5ViZR#wn5$Ioij$`z!`p*MdjfQUEpZXWHtAw1wJ`m+U#2E->Gj59 z8P_Td5FOhE-CCebKXxm`{QYYkbiHftAE?G;RF};$5hCWnovvQ}7R^ql z+WYuG%^ZL1bRA=4gWO(mbDWp6(J4r?A-c`ORc!WS+3%lQnzlCjcSU`LZf81mWyN4u z%MZxBi?+YC-%u4YoqrxB`6l9@B9SZbcN;2-d#q%PRA)6pBv#+s`W7R;q&7h9`y=fH z;(QN2IS!A~C*W}aJ3jw9_jM`ljE~>^$B-qK&vD0)0TMRu*)i%bF8Sx*BE!;%@~Ex2 z$(ugWcWy+xJTLuCf~${>h$Zgo2?tuFdA_aPaZd9vf39YeCqIQRe46syHmkDG!CN`U z_mhEWL(y#%hpVvA!uK|aPR++KsG7}tr$Y6DvMuBMJfSDfUyko?74B(}7R1`xD23uk zqv5OEn0uQNw##Bu=Jjegn@zKRbV)zxa`L3qSA@j9 zK&|`7D5mDuZkVZjWR@36|(Asn${!Y1MA$Zq5s46sO8Bk>N zgl-Rl^(=>}R5S4HmI4P$V0Q>$&l-wZ^*$5;|M6(_OvYI}MG^_5CB5nZ%q>Myj_>cK z0DIj?I-P<7hpEFY2+SH{PM6%aQHhSHV92pS(AO1nj%Hons@rTmn*fa5EY5i{8>$K24xpK%82|)|>@row<_#7kWy(ok* z!YBU=NDc$xS!<)(a>I^~;sflyB?gxO>dWl><4t3#-Eoe3criI{$9{U6Z1#qC1#v@k zBhZBg_JPmu7PG(*Tf4hOmJGI3PEpe56)L+GbQDDekt8YRVljfQk*V| ztu~|HcdgWBiQP(pCD+{0%Acxi++HH(3>Ads=|mQPFfgy0U3%*FVN60_YK7b(OV+7) z?Cx@l7;kPqzk}?5bvtlLP9Z>f7yztsbYu&xOxs?-q3OCb$r~stzo=r<^rs0Rudm)G zq`Ct5)(A1{iD>PQpavkRB(8?6Gs8hZ4&n*>SRfYcIe!Yex#`!kOn!0HISf16Jq0-n zVWk0B>IQra@rYP>{{*_GM`(NqzgD!$4FW*v<_`mUrwyOs(g-p`E^vo6I`rwoswoFg z8VaKGEB`!e6i4lY-GX5I>l6T>>)#A8>RxCElbm#r93O?f5|Wiw;VwXkd#{6uwwM5} zEEnr)*efAgmMTMu?wgjkLX3bsb_`^d{JAc7h#lY4 zrdA=oU{e*mXHUx|?3d~BS;9p#^O&CCxZca8AIkhQ^)V2O2&;1THsBxa;@!w^R1sKk zTH#2s`l31hVtxJER-RiWq- z`E{e1^nC0>;GzQ$_s@VFMaC;X&Q#}_Rq#|rP&%llu6`?M>w1U9{VAIyWVkqi^F`FB zn+1Y0s%o(zNKK)Npw}2fEnC4LvJ=^FP?hV()?$57hr}{?MJ2h@Md5xWJ22iDM^)}zuJF~S#X z%A@T{wU2fx7mzF}*EV728nn`WBwqISe)ZJi-c`l-hr-wyv@w2~XX1<0&IP-wcpaKW zi4DYiA{J0nDyp{zs2l*3Oy#NemGxHKDH%?5HrTtigZ_=S?Dp93nLvz>#}=-oZ!VEZ z&=E@LCCs|*8c>~KpEj%2gWrb-B4+|wfm_N)uw8TueOX&>(pdIIskl#NkwMEK2fQ@8 zFV=+&@Zdm1 z5vso7+#-hUA9PQ>GuY+MQn)<3UjD2>B-SL(K+Vb|@8f*5L1m8bx7OYDhF58vN0qEE(_%?|5$2_McP5 zl=Gz*7x4$|V@~Y1;sNg{Y6%(h_tzgimOvitSIGi`FH}~S#mj+5?GXC=3!i5pdO1Ci z)&JuYh@n2WCYstR11EJ1`h7^p%N@BQ&k@Yqkw0_)VjIl4{hDLqauE2qy5%Z#SD!eV3pwB6A>ZBGXAk2b7}{$>n@}p)F9Z zv>@wwBv1Mae5YQ(4D%T!+khWEkffD+Nw?QJe&5iy5+$C39ua?96Q5C7waUw&o@pn2 zDjYs5q8fTnHI`YRLz7>N#c`7hBAQEM=YXo5HLSr=Alv5;8O5?4Uah)7;0X#mUoPNz zk7(Rpx~4e~Qvzh!$U9w2BciXoNm{adxd9fT@!pDvNjo|4jnIh(I6x@5m{`ph97EL3 zVIB!77u}Z^+=D5J9(UBcrE;h!lJg5-9AvYqm7K-H$+a}R45ml z*+(+7(G*6sC(zW+`8F*4h&7LFSJ%&wJz=VH3j2Cj|Lv$R6mYsc*>}D#E#FNv|MQbN z=6F+d09aP-Ek}P*iamR*j_aD&oWSF=P=*6A6>|z*W%BrT+9-p zd?PED*r>T)H@|b$jOka;?+|}J{C6=nu3&ntZs8i#?Iyk-yb~psifao_FE~7NGoyl5 z^KN})h=+xC2;aH?L!&<`Sx(P>Sflc;IhNTKp!PV9kGTFoqJ?;*I+p4Yo5}7l0o1ZW zW7v1G?pWGuMn2OS_H|Os^K8L|PVZ!NS$n7YXu6lQgR}+G$U9B$=`Ri}PvB3^imGdV z=_l4ouG=mbEtXZ5dEF#vbxqA2%SCjcS=ph(qJV&EdX0dZ|Akn@Hy=ljdJ!PmSwQ{k zF)C-9vqcY(z`6lbiq&5EIre|*>daIuRCCU#|{+-*5xrWaVI${Ozd)1o0b4((GA zGk;qqqSBUZGRlFo0`N4r5e!b+_;v2cPe-j8NS2f>nhLb8KuKYk*S5A?)bt{lUrqmZuVJmy(5R|QQf8A zob0^9MFr}!=wG6vWOGRq$u-1Ecj!f%qqAGm49COYL~nqUggM$SOqnOmJ}m~%U)l#- zN3Q=He{5fqd~qNCHjcs!47KoP=nTd7Q*#Q^8#d5#=zx1C_A0tsxg1;H4t~Hklh5 zfc^uU1Tf>t2|;>a=`}R?=sRLb4Cq{Zi!4wbhujt~->~J{^baijahoaY{?QMjwM^0g zRgkX9joj_qbjNDs-|2+i?Y@&0M#mmP9V_7xJWm+k1hRTtzC*c{Sd{h^Q@8MHqXu6~ zOKmm6iT%1RAIOuwj1rpD$3pl8V)rPV$K}cb`|InX^7L^%m#CY55S`UR@s|c^ee<)J zL@Fb`cHAIU&dkpgc5;`@0bQiu?n8gfxp=9xqzwG43?dF~SE*dK%=%_hEq5q4v4-Xh zkQRBnlQ7+KU7_z4HD@65q@c_4YQbFQt98HX{+GPvjWE2o;hK}*M96T zN78cmufIpIu)8!1!2Zgrp}a)wFqM(csS1kkC1QI3`E6yo5XP3>j_z+N!|B?$wj+k6 zH?7{}`Iun#IL9`a4?doFb84o*#{DeYu2sWbg-yI&u_^}`Pr1`bFc#;%fBj=B2hgxlg z1owMvz@9IhEdTIL7bYk%(6VdzBR>4N+abiRfcWBT&uqm}r**Leu`OMxTj-S9#4_@5 z;2!YI(1m^#3a^V1wurE(oGD^ghbTRCfKZ$XmRxJ@ro2l6_YKAu*2yRe0oqZTwm&&i z@zcm6TBZSlxA%R?#4;#UTpzk=!$DHahE`~PwCg-aQV&#IfHF14bWOf`+*m9)Y!&>+ zfz-Rb4ZB0_*ZCFTv1gsVB+-ALcFGF{Yhx4ae6u5Sw{5|67)Z7~6IQ2vkF9dH92YOc zu6Oi9dX8Pnj#*K}51QY=%VvqCrq#`1_f`Q_SK`-M#!`44+~io~TXf{@Ya-X0b1_1P zw5rU(>b#sU0k?Ydi_|NjA=hZ~mUGQNDH;DDV60;`8{hctydN`Ck~wpoorO_YLh~!v zT1;@Cd3{CX&c#SOb`4G8Mr+aEy#V4o=_Bb-|0MYM7VMdal}4x8-tsS|<8?eoy-e*v zfp7-Va&h4^BB9m;`M0beBK*&g62-ipPhEhOOk_nJiAT#^>2tj#!F z-UeDdRD(l=@NknrfDZ1s6LU^i`PbzaS!Q4JFd>6WUdP6Nu^1>HoKbI18)-TeYQ1Ju zwg{0cgSO7hgf~RBHeDU13K7Cty;Uk z+{d#@Ji0T57gjc*Ca?F$N`~!0E!s#Ub^z%H4C%}I?^v1lx8O4ojSs9)(g#~q1I)sE z9wmyz0~HOyqqHML43rkq%6_NpYy1A%AB68&UKbCFx=*iw#;O3l5|xWs#RyTml?^~l zSmeIL_C0&Mh`yVf7s8XVHtRjW z-vSoPVDss!?gvyZ@*YsLD4VtqiznB1j8TU(>!rIfqoU&uo^2tQJ&5L=bxJF`HE|yQ zQdG$;@P)o*M`G0Bq}yd6MRQryqtP3hj3=A(07@p-MxJPt2epC;f(E1(3{heH8DY`m~?NIiF4;O?~KU}+v2o7O#CSC=9y2|3Negqkr)K!0%TZD2_ z1*Zec#f0dIz1+``1akzH1 z1O(1JO+{}nIWpii?(fJJ#}-v)NLbSA8QfSw+8S)5V2<%{X15zs?YWXr0txTl()^Ap zX}adaXgE+AN6-n7tDCf{RC&4AF*L7f9J?x5+)WiBXkZp#5j#q5^Dee*g|F{yDk!kr z6fP-(W(JNuje5`ih5(`Jkf36NNa3h99oN=^PGC~p-rbxQk|lmLSBf`t_0nKdv9%zP zx8i#QJ#=Z46Ph|KbyhL*Z|h|SJTo7CF0WbTMKvn%dJYp{TJil0V?7waLPs>oeMsGe zWdk~>l?r$eTv~*<3!%!VGYP{}o0CQ%O;NHGE>e@`bxW zI}J)aK7mN4Zhl#SYifnkqy*1IQf@&kd4!VEHHT6{WF9fRh>zghcpw90soQ4jXN6tj z>SmIc5f`Ws#H)zLGDC*ai+y2>{j_N8OrvM)s0Oj`#sEqaR_79N@qJ!&?z*YD0q(%Y z;i?#`!9~5{q8~`SN2k)c#Y*g_HH9Hs|B7~{!Qh)~rsxTp8n+KZOzABim3=k7p5j)! zwo=aHq=L~vk~v~eW`3zIy(+H&EM^|M;y4@!6+GB9RpMCu5Mbpwn$jW=I^nK=MxD?tc z$>*z6w$e!3MWsn^xk$eNcK`aPUGv86u|7)YDac^}d(Pka_xOfFh$6Pl_Knw@N&yMs z1M+LOAKW?b2YPiwtWbW37As=&ov9c-eFF+j!w{DQL2m6rH+0^5-4=SliJ;K@3{R3o zgi#$yGqmWVN?8)Lo5(S@i0F{Y0X9=!#iMle^BXX8GthaS!Eir~Q&4}S6#pfNA0-FS z5Zu3=g6bhXkUU%Hj08{{{W8gjHq8d5>?}ibFZN zFH9;kQTmvFuyM0u#8nm?t-_XaF0sENkyr3)MJm9&#Emrycfk27M?HJCP*+ImNzFLT zKLsOxd?(eG!+2DvkoZNj+^O{g!J;n8)87bp3eP*alS*eVAN%42eV==cW;^MD<~~*U zQ;;%slhyKGyD9R%$307g~z`Pt&ft$aZqq3qDv8dS2<)44|T`Qs1$A4}tIA*JlTXSbV| z5mzgMyae}buDYj`$il1N9~UZnj$t<%(87l->Gy~eKCg6^O9h8FS2t&O|L!)?aR*u% zGE#kkf|DOgY_n@eQR`qlDzS;~fw{#<1m%`thCg;ph0%z8c0zg+rrg55vS4imJZ0|W z!Mz46H>ZNsrFX>u;EDG$!X7F>WdQ@gXXc^MKHi0dAOZeJOFQvxRknO>o_L+=OGBZN zcllIbIxBd3JUBYYPGJ=6bhmLSak>jXKVsy=8&i8v8+v4HgTBUonYFtlM$;g6gIu_N(G4c z$YU(gi~su>t?pdOv6zusz=L4pZ&LFyC*HeIP?F6G^6Or>I{W=g6D*;ZgQ*-(uX;T0 zV=~~?Wb7gLn1=PM#XL0voXYc7j`9qY*0RY4cc?V~c%SSY%4xYpGN z30&V$F2?WhEm)X_^m^R&X%rR%pa^Ak+giGVvy5}hIK94Oofq0Oi$h%XgfdX20UC@~ zR*3G-MC)a%?OUB58@~abG_xo*3T-FNKp46gklHYq`*|r{oM9j^7#00WS`Nyz`Hnai z_2$SjuROv`t@<7KQY`)$+Kh}%bLiL>5vD8Kh~;wmP+n`4x>|`)&HuRHRV19N|&5iKRl!=Mc?;%yXqN6YCzP90ceR%nT{Dosn^bUZ)cr1Ozrl*+#=bf! zEpB)pDv!Yz>LILVl=7(jaB#w1#^N>iy^D78I~xjD0?;eQAPJjpn@$nZijEbhRg0u(mRM+ z)_Z?GVorM<>uxLN{FG0qM%BS#dPY~#`i)u*HEb-9!%7p9aZOkqEhVdYSF8#LTJd+R zUUWo>+uE6Rn14uDZbIY2ksAVsmK&}+P%+>Lf7>{kTfGfLqO0zFFJ9bM42EUH*lKY$ zp}?jRAIV_>kOE88CkrkSwl9z+fUX5Ua}41BniIn7`dA=ZD5PPE>ijsOa4=E5sN6== z95S8j5ls;{xp0{K$xdH#UL?@!FAf$Hs~HPaYoSD_UOQBldqbYP#KX7~CY)OgV6EXA z$)RQ}QtcZTTYwgO)R|#!;IweNHei>G$17Ps$#JQ@=q0;IYF(!MLS~kXVK@)x774rF zO>9;g)DQ=AHd{K$ei54hcDz69XW}|C+>@X2m;s*itU4Y)d4VKHsccb0`5TLhFzo^V1j`U^PzZz1CcFe?;K$xsBZ-;O;k=i(2ViKYa4}!woR` zml%Qn#J*8@!5~Pq_DiLn!ky~TY{eOQ!oe-F?yj+qOy?cA@^JnDz9xBBhtu;leY0R! z4k9cdSx3K^7_LkLe6@(aQxGE&e_~mKcs0h%2k0o}(g5!eO7SD`PyFi5@Lw{wh8slq zJ%=1}0kXOJSW_)7@yU>vef4nZq|tCLv?l2e-!00R&`hOtjM6RW`-Tf&$MrXc8xIqj z`XhA?QSqJ6Bkn(Cv!&>BCrO-bV|%h8Bx`dLG_OvI zq@cbyDd^l^7}`4Kk*AmX*S}*+z0KQtu!zT{WkaH~Qx&eq(-=g+=2QMA}%PhZ^MggNMl^nLYE zDfh=3yZGc!4uCn2^UUv5SMHUD3qz__;v3zRa@cQVai&%0T}UxFHe%qR&B-Qp*U;z@ z_VCP-!MEJl2YiG{2W?2d%2_AtMb2?p3+9jKjj2U^t8eU<#!w;JY5%Z=P5a|rF2EKF z{nLGt`X3wRj%RBuYRzlU*iZmv*kM>%-^mkHu~Of#`|qwF{@*{OOP&~NFFUYMBS z^*7%d{^o_a>;9}~wxMopNx&)P8T-_xt7>Q;%4APGB#$!>6}{GfPFqzMIGs3Nxhvkg z-!u0mr#aAc-F{XO(5W<#E)Pmsmev~9ggomfz8efG2k7FdOZ~Zyi?^#a4P;M!% z6sHZ=V!o4QuP%ge@kjw8r7`K{ab^9QVKlNQ>@3grvHN!pYL&mYT)TOz+PH9X^mp15%wg}% zl5!_6*I(DZD|gZo!g^z0{aSR_)y$RCUxy`mPR1cl%8QMw;kAQ0-76N_*K)4XjH|`Y zsoC&9G?>h+qToyi)36MbeyFB zV`{NH?pdqYppM{eHQ9Do#NPcr{lOEP@MEpUfp_qNlAb|VOX_gLj5>6WZ>UVphYsy{ z(3g!mTp;xC0z~2kccaL4Q5JHx;R(48-!M$aC_sPWidfPwM5!JNx5PnfJx~)GsChda zt7OYE72o9{!~mVp>wP9y+itJJFslZGWI&P?V^M@txX0hfr~J?@z;CZpwVHh!NFINk zkg>jx3rky_=&)Q%zS7|QptI?)*vSVL`)tS=ccVOJ=b3^3R4c@uE4}0t>n>3etoX6~ z!Lv?5f1?rCa)h)Um@&kd==j?4jvVs}3szhrE+uYYZ(A(hOLJ8xb#AimYe|jB;y-)Y zAv@026*Mm`icg|1B0YxpIGqo50;M51mj{tS7K$|rUc{)$)l^H{jljMdS|t&gu(fW|fey^L|#Q@UYjXn5?k zE88X<;;U&pS=gZHPOv zt$65Ys)cX%dG-he9j65gbt;m`W7yCYNpeUY}R-Eh7!32 zvj4KjZp1ajR|gHU84%)B0AVSB=#>WxanPpHG zfx0~A(&}&2cA}e()S{RTa4`%rXfa8+z*dja66<5^_ zoz6#vK##Ol@sSAe-<5rD0^JErq*XmJ?u2G0z;3su1KuKS7E2HY9@jGKs`VKgCVXn+e zl!@%a6g+1I>K)Mp@#JJXE6gUKcHfR=T^XbFg<@!DH34ZehFmNU#IRT~J*`;d9N+2! z=U<`-zzadA^a%FAijcnm=p}3J1AK6Q0dU$x1M9ppY*~+9p{ZwcF(P)4OA2_IJBX81 zdUIYea2$!z&(z%JA1TKGZe9sBM<|d}3@D&(20nuCZlDN%fy4577w9YYc)p?bLDBc&8@@}052x@O^bd{&0SBZFg5LX$#G;L@H1l3LPh~Cu*)U3Bh z-tA!A*g3`b%18FZ@T$Vd-;ahiuEKBLepCr7cxY*tqfn!~G%Ha1n%KNY1Kp?cHXhD$ zP~PXcT(@_;`Bjbk(@v#&$6+b_f$s~;bC&Fk->mX(-%wovuZ1W0jfv+n>g+jQv%Gv| z70|u@Bf_GY;>WxMO4_^79CD#6qU*qW?_U6al(cV;n&b%4#q?H*=i6uvJ?t&tY^g8e z*VyFy9hiLw5bKbgBk(y7_12F{Bkp?ebm3l)N|k!%PAo6u`6hZs>^%$^{&SlF)qRFp zPAiYBm~8h48FOJD2KqIvG*~v=H*_8@^Y^12LBdyvk0-K1UwS+2FzV{H6-zZH?&`QH z@7td#jDF_Sf27{l`v>)V>C;Q|8R3pJ$--W|S`vlz$KG6INdjW7Thh{Yc-7aGEd5s9 z*^1Bl&}Iu1;#K$9(} zV<{=M0kZj7Ko;Wm4*^JXLOu=w>4$4hCPHY9Z6hRC(pmXHmS=Et!SbBDVcOJ>iCUGwt_ z3%2|TMBOhYLzU&|PSim^ONe>=wd9!hK`BiNzhgCA&c(lG!TD$8j+c(*kZR|LDSJfX z62lPHUiFQ2y}UyJ6^biq1O+WRo?|I|JAV}d`kb3=!;{aV3MMub``!Az&*|-Wss1aV z6R(w}o_ShX}WELKX5xu5ipsfLphyg6%06 z;Ksi1uO=c%`PojIIj%>yY#bd&z5{eQcN{%c#~T;B6Boq@iKY&RIv;s{1uA1_R9`2n zEqO1!GB|OD)CsC(aqyU(v;wj-;Y))X4I`#v7+nNX+ zKuDjesA|BTw2S&IkVA-46RC6wIJI6;lh(4?^N3ks`Sz-wyJpb-8sHUGNXt3Dsa|`k z&rncmxE#51BVlw|#UQPabTmLKHs>nR_OyliD;lw)M}f6|CV)vh1iAhV>5X`G#K#5C z$Mu3H-yLVXCFps`u?&w4iYjKDiL*2KpSWJ!WcV@_Uu;#Eh#R8vz5uFdFe`LpR=B~8 z$eKnaDWNAItDVer&ljME9UO4$?YVaxhm_Ou=(3&5K?6Y|O~9p;2;Jj`=UjE7*K|jq zhzV4bkss2W#oS>UuR;Y^c38aB&#SCA!GKN`*2&^^oL$d??#uuHy8xor#XE2NRTj0J zga)#*49M9Sirg@sRD+T;^Lt!z)diqH)^9Tel_E(k%d|h+@Q@Od74lxIJ)>w)^gEmC zF6*furiI@_injNfWw=(_rS($%0my{fiPifRKCr8I@!=xBnr6NN8ogI5C@Q|?CdgqG8k+_K3iba7`5&@$k_82wNlZWcw_JiA0ooWiTwPFABYZ(KC- z&FbJK{5~V)xQb+n@!ESnIu2b}5OkDsb9V;mOvhUknRVSNOKq7)WHCAUY9;Wu(Ex$9a@~PaE zCbRYMP+`E=v_r<`+`Xxi%+HRV{XN~|%%`4@l|L6wKA&NgbEMo~46*2^hQr}92`d48 ziP$p7bcoh|Nw*e7@GdPN77VlJe-`8^*j_#gDG?mzqtkwd#U(bmb9;Jtn%5=cqV`#9BN5}tWpON5!1S>YeH=W^;k@_LqSjFSPT5thnu ziWT9j5-A0(T7=G}A#Y})2!$xgA=DO$u%|%*GTU6}MZ30-xUO{SVUK zu2KrE#9PBh)vxkB4FDdODX;9uYUg}A*5N8hn*^8E%@_WfXIO@N>>tEtochTvd`$3e z5C~4LOzfspfE5uFF7yL&!oKZ$x8T{jtk(NSk;L%*++Ssg-k59d*h&}n8foC-;3 z&8D0jjFfy@^X7HgG1|Ft!h7PyJ<;fcYWDn{WS(Ap#Jy2U&gPzv*i?O;UGdBPJzNU* zOE$J!w5cF8OV9)!?GDRhd&}kj z7)7{WEd0FP-z-h)cWnq+q0T$zx~iUjAejGM#!0M9HzO=n(k-lv4tQQ~*u&qPVLwm+ zN<}b18C#Ki^dl)U$Lz7P?M`%ZqPm-TA>+w__x%1vE_x)3r_VRGUBI09)l)DTv2R_u zdpLX*y;p`wkru^PuKzIcxx@_4-XL8it&FvY4YH0f+$?i#eX z4H%79wyK}7ySxz=$s)amiQF36?+s{qH9m_SzLhCd_^GkO0#Okq5GQ2A?`0mI7n*ay zSi@)3dkg)7odb$}Dx)kM3H5QV8@Zd30vp3vqGhQaUxrIe+2l=1#V(Z33ruG~_}A5d z?Xvo>02O^(Kxlh`T%Or6Kxgk{acV*N8TDP}?qRtWe(w#gmzrUrfFeyX1}lK~-aHLr z$m~O6sob(I7woK9DV;b|&K)MA4R1?R>pk%Zpvk!{y7DT^1KZ7WFUPR{p~Sp^VXFf$ zY;|1Oul5GE6##EBhUS>o4m-N!7(3sYOVg<$-mqRMt$QVl?wEYo&!~BZdS#MHT4EpY z*fiG7G>9`ENvBD4spE}|>WBB}f`Z|nhp)wFMpQ*w@ms3GPH;tyd7Y&4#O*g}@5y^M zE^&7#XW+!HF?y5c3*%V4E-|)V9EGXOY(Mf@O;-+o9Z>qvT|7NSjb z&S`sJFC)R&_IKJ$hp|qcjrv2gs&?JZ5(0C!W9hRGPk{3C(^hSfLIm4;Zjas42Rl_;>rkVOqjpNi#xZrlZ`1aBeK+7TFUsBThI@XgFWSF@OmQt2_~$yG znPVbxD5<^fbh#NL*`D!WulPB=*fz;)B_s5$shGejuKav#FA^eI3H}Yq;tF-zfUGPz zLlq2E%49EN?`B1%C*?@3ERN-yIQ(kyyQkmAeSE^!Ero*?MkQKTSE`i8-~5!Fn-%D2 zOz^rHGkH1YGWNFq>xDltTX!|)f{gys`d_^+4~VmSmDvG^Y^7C<{AxO05PGaA@xo6Q zZQfdvP?O}Uz+N2enCE%B26qvHxUR4TyXbiJ$i z<)wy$C*+rFXbp3t`*8d%6e%OOB0Db&sus9w_QXGtb>J{<60NjSd;9&*-2Hskfou2a ztO4M+I5DHp9`4xIjZsJtTg||IYq-?C%o;**2eW}x;LJ0yapL(EnfY!bQg|o`i-eQ= zEHPz=t;>H`{7^q}8-1YUAExGqd7xeq?^EuB9h!7J-5)~wijfpe%g1-6Z3kcPn9&g3 zVCONJK}VnM7coIeM*pm!#9SDA%l@n6X7x^y$I3D_dSNO#86$7paNXK#^4A<2*YTEJ42=;EDp7iPiTo6>S;UzG|KxmWMw#>iCv@5#=e-{n1r5NF`>2QO|36pLfewCMf_ ztUQGE)F9sl@^%;4&AJK+rb@mjIFw6^H-cZW`@@yCfq0y9rKVC6rJcTFI4$TdM1~&i zwboRb6+};gW>9S4n5LJKxxLQ-<3e49x9G`Iheid6>wRd=(1ZF>6NvbYN`jw zSLeopicfx8{doFsXOFgrnR6CL#AZb$oNftit{1pcO=$J^l%1w)Wer^$D>IczEHAoP z-xv$+DtA)znfHx%3shLbOqW&I0(qWSh9f%VPhG+d$)55F0##MrMEN#yZAG9YYp6<3 zE%aT;%oE%R?UFmOD0e3Rh6y~}cEt6b%h~BJy>pNp*)UPlcr1o0JQMzbB4! z9ccW>1$!Sv*VKDh2>#IU6#L^z>MUu|ACl+p_70tzhbWm zPey@fiC_@ut3_XCB;N#Mie_;@doxCTn(^0D*b)quby^s6UVIYz`QZ+k-C>W&wU$uf zUtc#g`CB9L)VFnuhh!J?5g9er!s+%(f1l)Hb9qy%l^2_Hz$7lxKOwZ7Q$xpc;(b+3 z%vDQ1C7Rw?gYDffHb#X`UfUi^yKjsP3v&q;hw41Kc2+tOKz>Vu1m<)f0`7>opH~^P zxX(jtp&MMp^C<**?4CG+t@VGybdTN%T>OrbWGpd@G>G9xz*8{{yfS@xGf9U0XOG3^ z-Mh%*7qOx%YAv${(u9Gs4*;wIouD5RLVzk1h@P-5coa0yAPh;sG9rT#jRVI3$THXt z+Ag3470)ja54RIG`X!j@H>b!rQ#E%{5Op8j1=0U^m3me=aC^SCl_=ZXahCV>|u82I~vi{$za#tZq4PkXpWTI|RE zM10W0`sFoOpGCiNrVj+gua!c?9;IJBe?}xvVTaovV?6aytLV_RnAUn{@Ij z=yzR)T06Sb@vxZY%#uXcXRO75GGU^)mbtTP2E}y%*4{TYZSiIWCjB}2Ww#6WtB~8& z_skwOqmV1G7Y@@-@q<+X-vh=2FbXfac_bBXDgranYxvVqD}B2Qst(?kyDb8bO#Ql7 zx&?BV%yu+X3EfbkEotdG^M!Lf(Y?tI?%I?SANo{m$LeceK+X(%sXia1JOZ@(@iwwu zJw^|pp9!K1#Iw}rtwGmD%9U6*#+wroIF-I_Ryxj1))WlqNGOelzd~fcuVM7P2Q&t4 zvs(Kppy$rT$e|;R3I5Qoywt=+NZDGk$lYGS->2zKXIJX`^g=`g67pJ8Wk8!IBck&b zA)$w;%VqEOD~gVOm45dYLA1m(QLr{h86gdIm}A29?anQhx{JP8E$JK|8*1P56D88{Tp>&tMy}*N_XY?PN`z1!vnoOwv`&q}dXbtE?xGK`& zJFZRLlsS(2j!TCKXw{ti#A>zL!}a|>tv7EjcK02Ay5YYd=c; z{9SP(^W)v{6`_xTq~3zwTnu5_FWzi#P~>ao=z#E#ybbOg_oSj0u2xR<&#sR2lZhO> z&OUCNNj89vwDl9u4!0R5XU<9hPKO1_V)wXDIO+;hLTd3Sq&Nu?Ky^9 zIfuYmQ9SAGo{KDck=9}3-f%nY4AOW$^ZV4l)|`*0nnYOm$mc%f@W*8~blsvQdG{jG zGzY$hOKS<0l5fX8M{>dG~+~W$Yhtb5nUnisL;r{ z+=;WHe%|AXtcK~!CfUMIhXD%!wH!OF#lG36_eY>M4|%&{2={N>X*-+u>X2XQ>WW}P zNM)ozQb5uFEL^bB4Z9SWE}nd01e&KEWz@M>I2QXtx&*r#ZL?D`|8X(Dz~)^aaB34t zqMZ%*yMH$$0kSs>_Q5yP5h*?Jm&7bmWQ79>=t9|T@r~jvv;JKih5?5Vzche4C=Rh0 zh8tqHPYh=G{|LK57uU)Mh+9UEo*(#NyuV}sc(Mnou<1Y(MgZN1?b%AZN%6-(joCQ7 ziHc()Hf06g72s~Oo~^f|>PCRd2v|MZ38z6Kc1uE*fQCrIdF!%0R%lkxL-5BXuvPD0 zdU*mxWVM@e@Le9gC&2}MW$ZJV`fcw!b?1^}*XMtZUcmZJ^n1;P+t{^^ltZ15n2IQ`}Yxy1>fn3?}5t+U5crKjLY>dt+B zzI^Qbmmo(v?8F==tl1|ig)~pMPp^G*_-shyHP7Bk zZT;z0+o+rk`Mii@9sc{j5JatizWnIBy5@mWG(muU$9cv!#xOv7YQv~`i*@sp3AA-q z-3V;@VGks?~D` zquJNw9IhTXNoR-+3tiFboKz=qYreC&mE-(dExN^*k`ev;!KS%UEXTNFBADNK`K?W? z8uOIvRl?8u(Halr=<4Fl?&pa`_x-E=Q?=7*!wjKh$i-L|{ylK7`8;|Ywu}21vqiSf z!yS1NkA(ftxIQRhs4`mv&vbw-9c1pi&&tQLZe49?c*XJ>q`vAloWR zUo3K1Y#m-Qk|*%XbNP>vT9r<-_VbJdm`QY!SaL4quli$8Wd`B`Alg}J^9Ef~QnyZ^J!1>pTawo&e8$tIYQsH`g6r|%@W`G~!CYn_39-Nv6qNkI zlX7qL8LGvPS7e)Qx6c*)o}jaXjl1VyV^uvKfyuG*bth~l+}f~s_nDEtXJrme(bW=H z_rrCUj`ul4Nvwspb`33|A4gCEizdW0?%j~MX>?4JBOq)Q$#UiN*T{2D`cgE7r<@N_ zM?35aQq%gDvx4|_IsGgMlg8dEW^*{D5_iFf=w5)*I$y0$@|Qz)2(72BlGEI0`76X$nNl4j_*Lo!53Wrc%2k=| zUd27!uOP18+U5bDw#EN(fAZw4pLhfw^r`7?FXIc!f=pn916~qB&JjrT(=e%5d$;0u2#xka99GQw8dj0)a>)S??)pL&XbQM$|Gz%@Y^RwKsjDMHLK0tfksUB z&~nXc#sIg$CBMyWo^({fw9GugQDuclFaIT{)uY`*6Lt~=i=iJHC}CT2FTkxqjO`m0Im%l zE33e1v26Cu(_XXYMQ(Kw^K~U?g21*~E9IpUUo;0y`&5<`z?y1vyBni3A=2;8p%+n)F{_9{AEGhfsGV|z(DARX>nvyXZ- zvv_)Zo%`O5T0C5Sq*7OM2_c7+ zZn;Jh6doi5fylf%bre43FZ=+WJd1B7183yDjhFb<_Oe#!t-p#j)De6NE?&wZuDv_{H4VM_ydvMy{81a9KPvc~qN5Hni)Au;gV^B3djMSG1r8%Ln<;*xU2 zGpoVt!ApUeFDJm;aJj@++E|SOxX#|ca>(O*89YWg`FVM5c{^A=O`*3(yJ7rC2f10c z$|Od<^Fv%{DQ#Et=Hlt8g7rLgqlb*5-P(gciwnIItQ`s50AA>qDOLep3?SovnMoo# zY&W18*c&@Xa2yheVW0=8JUc6U%$qb3Me^NuTpimNfG7JQ4=6P#b+WUpD=R`3B@a)4 zvx96q`Y!&7g#rB+|L2og z!JV$yzPNtPrwY{95XH=egE(C1sO+bhz6Mva1hCpXns7Krh)<|}3n)@tf;1O=sk@f% zc9?qALEMT*BI$Z?C9a|ROYl2&pOrz1IexfiE8v2xUFnl|1I8XtBEHWtDG>_|My8k- z6>4A@<>vOmY&utyOZhQZ(!tmZ+8hW^-7j7*C#B`hRiNg0{0}uLp$CzR9h9h{+a^AC zn?3lA*J<43_17yyYW5%4+s}#q$L0jyxVD}hPawXe`R^^Q%wT48ST+(01gl--WnfIp zR=8a((YGB8oaIKqc5t8=rNR|{z|NW+5*F=v98B@hgBl}rePznlpuo zzfp}!i##jD3+WW3Kd{1>B|EJ4@ZC~sMa7%llc_%!%l%bW?fP?&ENSGZbL!p}aiKq} zrQ=5uJQMy=t#+|B*i)ZfzYt2@EA)^3zy=yiecr7$!lXAN&);4LZf(`v6kFzKVkXV^Iv{vBL9p`%U507F}VKD3~d zYs{w1=_gr+yM%T^f1A@wYp+o9x&@7#Yd)4xPktE`PuqGZ_`W)v1$bI9;P~1FiVU4t zq<%%XO~Wk)xaQhd!Vc(dLE`t53WgsMog_tPs^&Z_sz7(@_LP~3W(7`t7O`zsjL!43 z7G8PTtf9wM30Kr(UeHEMD^Z;XFt^v)Y-$2OoUbe0oqeLISXBpXTuo`mA^_I#R`=g` z-_q6|Kz+F$QeW|Yt9$y9J#>^+$!262g)8Y^jC{W!%oVu!lrQFl5{*sB!{VNJuXVqO zvvfDSbyIv0sb%G0Q$;Z~pOP>q3%Z{Cq%LoslBNuJE$2;@vv+KEjDO2MBZcjD<1hNg zm|l(AZFw{_{`*b>$lhpN@q$|t&aHsvzf#2SY;^F#mbnN=#Lq99Ye7N{+SJszLt%u0 ze+pRdDdSk(+OW%|b-HYECnD~1z9C1pio@{CzW>;!(@*hc9G38I_KHMiSno$!LbvC! z=rbF;lf;eTCp;5YUwM!~?!c^Mwk(yFSLSjk7W5@FcVoFU|Ij|jHeZZV33)E#9M6ro z>hO&IT2k{Q@5-+Q3QtdLbIj8-FsIt@%vnwk@5+~f(ZON&ZHSnJ7#|UbG+SLQ6=@Pn zkkOym{yOb)C$_J>&+R_8@Z!Uh8V`k5!_r{FB;FPu5$nSaVbM=OJ;G}BJyh6yx(iNf z+XbhoQf6P6>O$9hfcpecp0p47!8sUrJr2vkXy!4*bdY+VKA_7W0fK{I#=}_KW;93Y zj29RKyf&{C44*_1D*t245v>%3EeL?-Q3ZQG{|0Y6i9QAGbK;Ojf;z};x=eSi&fss< z3P1c&#(7z;TMhVAtZlu)pl3t@{AA((RxidOjS^hY_hK%{SzTj3wMu<-AmL;*J7Cr# z>Xi0q{skCaAGM!BNqg+H$a%vy%8F}3_*@&m>xF;?Ak&)rO(UCEEdZdVpj24*d)e65 z&g{U76Y+Be``*kqGpJSpW>hYDoyCuSUCzc+W6M^$*Y+y3O+>n1g#81?9>xH_ruOT; zyqnO%n!zw615hINuRw_|9YYiUu{CEV`HTu^-D?2#43ghtaSlE^9fiL3_v{Q6@2t&- zSLX2q=r<%hqvILK ztUl?dF1y6PlA2n9eDJ|Jgx*mn6{TIc#Ulx^&~(wbmAohg)hIJHg>yMjo+z(e(}HBL zCL!^c?^K>vxr$x!oLP!s`4!XgVKrj3aRMNF0hGb>#s-W>!$M>NFmcD(0{We5%Nd34 zE5#m<@91U0MZNXDjb%A|>X?31X+Pzm;+!Sbn&6>zvSQY2(9>Asf`k}lD`i6iAQ=Sz z_qTmj6!p}eg33*+^A~jfVAd^k!QA>aua?#8uAaUp-qZh#$~RxfBZHgD1z4(H|NEPT za(#&2pp&Aw58Z0|j~jMu4db;d&bhiG26cVg0&fXYFYak}zlUyn1sZqy4n1aO*>0a@ zc@6mjGPpskCQ}~TR}B^Hj@0cI$K1rHdO}Vm_e9MAozk7&AoCyeI*-WR94=tt}f4 zCrjlpxIU~>xXr(3>*L)X@AQ*@0xpy<3mlYr1)4n1M0sOsD@DF4^^Xvm+=AXcJ{9bs zrQH3D=7W;y>!^>b8N~MM>fFR*q7#H(O+5Ie!S+PZRh2$qP3pa`B|n?k$-`I{m#D?S z8;Z4T#FCclO!EM>v*)K(U661G)-%@jc>eUo^rh3nXCQHz%V)uvd^ zKkAjcQSARXZK6s}G=6`(NT@~Go>mawZ_PIN9i=@59{cc+J?Qv2tioCyYl*;3A zUR}If**ImAGfRE_MUM9FY|S1Oz5w*PvU>p8`!Slu!$zNLED87!QdRe5(^#IAKo0E&eB1w7lx+=76$)uy-zaa*&C94ni^I7rx&z-QX^9{|oxiXZKj^!9fcjHU5y9ni z3ED@i_qKF7{fwl&DOdq$+t%vwSwe0|~dUmIoqxld+M*v##d5o6;f z;kHM@d?w%hp`EDc?n$CqBH3lpfYrk@vbOH!ZU{H6GyIP&_mZSgAmZ|r){RxrPz_V0 z>H4JkklaSkDSy6i*=4G3cXNMWGDdxUnoZQF3lB@p9Gs>$|0Edfo9vsq{IMUi6nu80 zyz<;9q1#tLU3Co|Z6>E9D>qHbj#V93G7X4byW)lQqJ~4tmCMP@IHTX5bW z`A&r$zI;ot_7B>#!_<;lyTWut46$BL}Y_ZVD)*tpAE{#gv62SOOpQjPXVM z6UcuLa{&=_wrbRo)p4+0miQpNN1xZnkq}Eo%)d|G?R8sx<18)yy;rS&%$Q3*upXf6 zT{x+#Plvt0ym~xMZg;i$uUnJ^f*U)E#c;PrQa1-x?XXi;s~%_OlAIO9dl7coKfXy- zdwZ*6FI?afwr{Ih$TIuX3$8o~Th&}HUTC->7h#VjiE=SK39J2^PW`RXGKcBfbozqX z7bi!-p*i&bUI2EHJ5ErRYi+SLm{qu2v;K0=IzWft3OqdhJmG#ekikxqZ-H>j>7mnv z7on89QTSI<$ucr@04HV$Fe<3$x$i;j{vH#27K)q_^r+FY2` zz<;~%+p!5~Xekadc+!T$q_GQ^(e>cDWou6 z;M;qtJZAtNeoGMIOmbgFFmCUR<87fQzRTtGu;-fj-A=oF@Wh$c4KfC5fq|MFprD(tN+Y+t@C9(kolOV&D9G~Nb zdXP~_Iq+Eur0r|}`S15HxarAe z3DN9hH_}%cn(Mh-c&_$mU^S=2a8}Kklpo1_E%jX~UOR$eIeFCIU4*uy_RJw2;rdp$ zOxZ6Dj$Ao`$DOXLze7W}IIN5xN7KLJw}Z{V(pu}H-{wr|@ZhBc;w4WV-Nx}2H|6TY z!AmBm*-~2y6nY#ce^yew%Y=T5Pl+wZ0m8xhVc38aV2v}?FLD-Zzxj>LMs%oj3&}0D zl(RH4ldRnRqz+g)oYPGT)J)bz6!DLB&)D5oHtC~_7!*3VnXU&3L7b0$eAN0;j@~su zUcuRQn8cZtJbGGrUSkV^$29Kt1&fXH$64RD<2|wd5^Q@4J)TUFQa8Etd{NqZ%Bik2Sea8-pO?BQG=4r&9@URk{ ztv!Q0eXv=huKyI$@G{#aw6$VoBwLDjXjvB_t*NFi^L_(vIy*CD&Oo1&4?XxC7rR_) z)f7{f_0oCjtq_I5GoVXl7Y3_79X$Ot;mLG;cVAb}mR!X7V+J$N%b$UA0zEAk1!W`r z4AGaF>C&=)`~$zERLC;lV&bT?8|binbZ@Hd$8* zcoe>@vOdOBlox6XSX|6%VHz(Z?h2~;KQ@Ck;)Juy9w&&^6u;*wuEazv17jHnl5=X7 zEi1SRm$T`t)Q%v@A`UO^!J~bNhe`MaRPsGT4YuogpjP=XwQ|-1iYUsE2){0VZ)c)} zBm}c|{NVKlkaP#Lc=TS?l?`p0ENm`R2K(&_Yp%)ln)R54^>&xRz#B;jRiSIp70kg_!yxrK>IR-C9cgpna z>B49e3s9Wy6+h=dE|A0#A;Xc6z1uu5WAY3%(%rwKc}5UcACQT40i$RA)W9r}hW&zh zfZO_y?d`)QO+WQk;TWr!tN{UKEq8?;t6ZS)G@KIAN6+aYuXW~~Jdtrv=orbc>q}32 z{D}|jbFxs$Fx`>En1Wu&m8CKF0YxR8@N;08fVfWVg!WZJM5f;(y!s)gD3xV3A5Un- zoefx69XygQgt78%VeQvaB@d}`J96=onPZqJ}K}P<6oh1bmIojJap7FQI ziHW`c;iz(HLk|8+E^EN}tDmnGHaMM~i$lq`S&pQGkiYh6 zoF+Q@t;f%!F-I$ivB(IZxaeaJ|7O!qo?yMv{9ggyStknt+Wc-3pn1iU_1>*)z^y21 zL96;@&L{9pU~1&yaV3-kI2esU7GdcpmajN-M*`Bq#USg^=kycUnq8;|K!7W1E?$U~ zU>5`>b8(dYFb$ZppZnQ#$34_oJLSAr|5!cz(WrB|VD~%llYt&x?-E&ro*|i8QDFDh z^OA(}beQ~$A%%qT&YKzUUgdM%WT*t+BPYf6J>eM!1f_EoE?pDZO68L6v|Jm53 z^Bz=vKBj~2s8D1u+%sm)W9GZ;}vKLQT#AR!%!^hT4 z@DH+6CyH~uA@gE21CjIb#cv_&<7Y+6=N)~~9?LG5gL+waM%2uUH@qotv=CmN!2sZ9DO-G4seW)rowr z&Fva&%xN6p$2DV%sXy zdHyo?b$NxU-=>M&Qk4rv$lAL^54=EBs+IHoLz`r82z;!z zh0NV%TY_b0G91<#KnyWLoyQ zuBbh-mb!dkeswxS3(gZ@t{sz+H5F% z7Zt0UI>x;YQ5_#R$hc^$>tts;rrK(pDkee4%VNKIDnaR58(3%uY5j^0_#y3g_= zwxPBWtF&YaoW9q9N?gDLQ##N&8R-AxWEF^V&}{CWyZ3OM7Rexu+>vpYYx9M*I6W(gsMqY9 zAq|(!yy3AxnUJjm&RO9@7O#02os91?-N-^Gm1T?`6Go^%S3H^GndOZDZ*KVYD#1%s z2J<7;$AQfRZ8qWiq6Jqz(zHm=vS7Z#5|QF&WA8?;`1H>kmMF;Pez<2_!;zQNQ(Zq7 z5!P2d>Z=ykUOW0pBs1wz^(vH4I%v3L-R;xZ#?AlH`5R!P8%iDYbBv-Ts1V$bb#K5* z+%;g0PA3q)GqMAYnR|I=o!andp~lj#PEeAt^5?mY&T*FOdh;y+Sh7DNNN(C{@$?_k zK|U}t#<@}Tg07B{ZCNH<%Wx>t9ymDRo!BVMx*HJFwvP@;`W^<(sHFl-9TK8}4Q~eu zO8+jzR1&_)hoPVnw|`W=T}&$nz#>0;*!(@_+l$o>GnJz-zTUtZNQQh4Z2GQ_s!vt1 z-S)_0Qi_FykU&wK-I9QPQz6I!ZUQgIVP&P#%0jUQis3^)2?&yYV-4I%F6Hg0c%9+4 zp|iqkVa{vP{cdF!{f(rUTLXUi(&aBbc45keB+-+nGwM%y{Dr6y{bI~_G1Iq6+ZOT^ zi$%~GB!@q$wRsmHEVcKzB96YrZ_)afB#LY z4Hf-A81e%#(Cg4GKpnt-U|lznyB4a3vJD2J1%JRyzYEaL9eCn*JOfW|wL7A)figJ` zP2Z8Dd*kr=hki1D3H&8D@~D^7Sz4R(|hk}#~d;Mh`k4x=3!@gw;trV&M zU5%!VJ`W$bvK#i!vgh!c2v~Aw@BGpz0{cWd$iH#K>q9zY^owSO+w^LkeGtg}kH~j{ zDXNPN*Wz?*4)>~@?u$bSMUCQPSssn0s>O=`B~em$XkKLw=3=mz0qlA;zaA(6_IpjH-rz_z(d+ zDVvS2FxrfL>Y=w3-sxwynzJdAC5hNp*CwBQmo`dUr|X#Wp%6@nbMRutHP)>L^ex2X zi21zC-^1USg%QBei5K01ABQ`Wm%sKu72PkH9CK}i#ULRge=-`gG4Vfx%GbPM86Q^5 zeeY0=hb4?Uj;CBP3atOD>hRCwyoZ6iv(|D!_Rd&B58OnpiS%^bLw2Xb@#Q7W9BIlk z>*L{H#;+Jm-8=Pv)V&2%lmFi^JVeC=3ni3^i6ElVITeAQC?(w`As{IoLs1bBW)RY) zqST}rFs9Nu>1K4p$PHLM*Ayx5|L@%AIsfN9=k*-V#`pSOpYAJ0`!%j|7tQyC{@SVr zX$zNcjJgkK`9&mLkLftTv`FdIyOj;6W-h2wJ%e!~5`$ZX%m zZmx-CCmqD|6QiqO?GpQ;T5|~G=L-G@5A0R%@lmqA!8myt-m>47E)oKsZ$L$RDK9_5 z5w&I$>GvW59FmNy8CED{ED1+;oUoJ6&qhLde-4CsSgyo~5)|1H%L*P1>`wk8mzZc` z!&-|qXUkJ;5+`>|4CTEW4yks~x37CAWJAL3+f8>vSl>InG0KadI7gkYaFA&R;Uq;$|D$ls-cs*gB7cASEx4djj$jkD) zt=b7K;az^f#yw0l;lJ)xr^lkd;`kaU3?&tN8Sz}C#LA&~QvArhLB;pbF3xDE`K0%5 zey%5ruhi90SEQ+7u(Ppnu4XVJ<)b`&bD)32gM5 z+$iWes8Rr#1#xA9v)W$B5D{kNofbCv8yEUQTX@T zHeZR%eSuy)S+Do&7sv%JaWrfY5y4wDL6$56|kGJCb!c-?*7&?h)7b&{feB8QFK$4WBk#p_j-( zoC@r=EPX{sXnAh&COTO4EngBHYwnU+GV0~AOQPjoIkAoda&fN*Kf2;OuugsdK#!_k zdBnf_{?1Pb=9Ko8!9l4N;I4?;`h73*gKo*hos4K|^5WGH%86KrTyBDWZbp6F$N{be(A^^eV%5GPJV9+3d+ zeViN~OZ{}51N6PW5!W{Ns=10F*F!JSW<~*dO#)Td3)cY1+!DVinR(=B>xf%Z=Lnpv zTYE*cLu=le4Z@7tow|1p@hP7VR`h*1Pxtk~NH=KBP9$ zqSLf;79TRr%QFO^1U58;;6}zSmSI$XEVqp2=tls%Cs1|7 z;2CvRV&`SB#>!Nr?jm=f52>m0{c{v)C0Uu=5N2=h$RzD~Ce?=k>A*)o>z~Z-{w{MJ zz0z{YRNNSh1h%d$oWL35Gl7d~;2G0Oa^uaZGpSwhKxMh82^tv5Aw{x}ErtP;PaL!H zUbXjG(D8IuT`(>vhrDdgz&e7FQ5OTmOpYT=u35san|`ZeV#22?ylOilHT$l=NPZu@ z)8-uWD>_WF4RC>Z!}oU!#2RtI z4nK!$9d(eM*3@ntEqsIMUtluIP`mRmDOQ=MpTV!(w?A-S-|OY<{aLjjSejdF>|8wi z;8cmYONixA1K@X^CzG=c=|Go1(5yB9o^iHfKhXj*odIOr$8#DHc1kz~$tljhtBz)u zNERZwz(wP5TnN14Go$q6bqubDy9h!*K(cjxNwnvPruuVm zA5{OH5?KZ^_zz|$(O!4~IuCTPEKvPYDB5p7fr}2P8k7jAzE~G<=k*%$led8K zhd-mIPnn>JcY*o~RinQb`XhJ_O$0{um7~OmX|s1L#0C^9(2zlywmHbcfWG%8TC}|y z1;n!v5bS)j4DNO2_xiBYtF<|^h~I3sT7?zt>alku9?#?ny z6@f{+WM+VuA9$7sPJ>Ne9lQq2QRZ78wM`$THDhrFYlaqIwt3PkVp#jl(;7HYyH6%4 z96Hz!#ja4f(Jh6n*aB~yf|?q%5zBr9dSXYoaeKnf7)G$l32>hKCjSqC^9gWUp_Iob z42_sQbhrqL2L{f87l|A^tnX^)7*a=x78m`~TeCG~j#7oY*aHisd+Asjyi4wN zNLSHOUFb70DYobVQP+{z=T7GixT)8o_7|UUN%^jKf#4N?`MzfMLDpwscFYxL=iwSh zt9Pqb{A?Q$N;Rrpzz3B{m0$n#wsG|ns&ev+&$C%_`Ew~zarBqe;&bCi*mwq2@%+iL zhxzPd=MM*vSK)8(uc|WjBEGyxvE5Azt1f;k_9&E_HH^FieSVk`V^g%+3Sk=?GMG?g z`10jM1CMY|0vZU^{Q?az zV%Z}*G6@X4h@c(F4QW73f6`VyZ;6+^_6+j;cJJ9jP~evp)pWjUz)*qTi@dDgz8r+{ z!)eZ?zXD={1vN-Kj-8DdOG>ByDh-rt05^B4oqUX#EHEdI!Jj3jsFrJL6BGcY7-YUu zuqh?nUdBl2(WhBRyj4~R%vP>!NmC%w7jr?60=Ku=L9h{iMGDU7%GeOC0b$0F6bPY-_omSelfdmX;#Eu?%tX$p-ZKc{m9s!)VG(wG z7&eVU_~InER-i{G>Xa*1<(mR!X@MC#{29sueMq~Su+%SzAu!+emyjo-6+GEb`r}0{)+iSKsejwg__2 z(u58rFvaw&5NzO0#Z;6dfevPyL7 zu7MaJfd}iRy8(UBiYC-TR}mO#6-RizWtjUiKuTHy(odM280kECP~na5S&5{(IpP#h zhY9_KD56&WY$>aw0AMCmqEvi ze<2l`Ef7~h7URA)eH!rIU=J_UMY7lr-9co_bbdz zEHB_#J)mtj$^5a7bM>U}VB?o&jW@}BEdu;<(eN_TO@(JO^WSJPP;>qIhrJr}^vyFH zqfYj>v*3AHJ!FdKBw!LTxbY)(Pmmf93`T+b`!V1PrVUoil}y1w3VB+qCnNDLo!r1% zLnHz&kXi)-ptZ2$vy)Hew13=l^US4(_8Flx3_^A`Ef60OC+8Jzy^i&hI8t#ABMBo+ zsZV$aB0{aH&+3UR3572h0XG+%{W)OfVJvvSU{%rJzQh>tE2AFlvp@DLx+@n~Gt9!O z{W+NC%&+04M5jC+>;ry6@c21k+A92*hy#9f)EQ?>9{WhHqktYLNr7nZF%uG^NulD` zq>h2GQ#lvo5($^-o0V=bu$WIJd^}DIehlp5X@|5QYi+tY4YS~g+Y|Kq12~w)upt=u zz4-+H&}Tn=rSxa^?e<4?A5)V3ac4itzxXL^N|ijurzG`y%7<`RVb)(c{*y#sg1_gE zN`)yY$TtphiT;c~$47%q#_V&DZV+TIf#W6pj*uT52?3`^40?~tdnw(MV3Y@buNC;)nDs}p-M3HReR0#UAO4r-GHD2mi>v7mT9C1)3*8almt{7-@6NC4ZFEQholEOqb z^%VF+iK&OPr``bG;^s%(YeZ9*b4+Q;0#aQ(!~-0Hkq-sX0B=6Z*%`A3u=iM5j>O-n zyc#__x>s1lQakrH{)!??mt?HeIG0Z$TwFY<$jLDSJ;oN5b8UZKw>0qj#fnm)aw#9d0<@CgH-(qUGQ_)|0GG#*+&I!g zE%h@A0pzB%4$l&WZ>X2akReuwWxxX3fGs~lm*0TpuFra2fDB48-sOXLcw%OyvpCa; zTr<0tmFL(lkIFaOil2iFDp$;o4xD=cEk&sS0Uo{FAm!LpI{{pO^};S+G!ZLLP#=Z? z31nv;_^H?FByDcx@gg9nYp^lSO)x|>seosB$$UzBAH^Es^S{ahx8N*U6!qm7djxz2 zUy_06jaG7`I~4+f>xXQez=Wvya{}@o-5!UQFQ!dG4lSY&TRPo; z=*AX0U|u@NV0U^9G{xIn+?myUojI%KWR#MWm-Bn0n<*V2 zkYB!^qP)z(eJuMxAke`(|J=S00`0y*{l8~7u)=;IC<*x3>2T|g${ygK$DRi-fxq|K z{-fyt+HvUv^*_zU~BJ*P@jmOG1rjMNs?M*<=&dygJT3b388`_#&v9ULcoDpLI z(DC27eN)AybE+pGuhpUW+uVYB^pWz%v8C2+S1#R=YLxrf{^dh}H{~jfRgNIgD{dc?ZOdj+CQ4f`)XIU3A^0KP-c`5&mBV_J@RRIQ}ee!}TAQw-f$f z1-3@Qb{yL%`*Zj|EN>(H&+cu@e@j|#=Py&b0eYyVt_M~4ZC@XyK!A&gO;0OTq z{~h=Z5xgGBAZPtz#(Vcg?>(p23~k3t&>7&bUk89i>R-RUpWfK=Yx#FP*mnHo?=a#0 z3&duCzd-z6-VW_w5pDta-#c@IgTG1L%=>mGH*xTnZ2pzh|1H9Q6ZXH8`fq1~{$H!< zcaqp(@_&u+--P|k;t%&LRT+A5%109tmW|l{V zIxJ>6X+ad?!gCXLXe%*%!3+(NBx}y2gQ2-Z-jP^-O6`m|=y$ZH2Gn4L2^JhAqlO}7 zeY2bE%V>xvcppVQSGr=C7(Wy%Oqp6?A@aQ*vJ8fY@Y8}e64Lnxbu-3u&6D5?qypTp zvk>f8eAfDvlP(XJPM?tSO2n{b7~HTpbR{BvPWvnf^e0gSVxQyb%cjBvD~37(29ozW zONAAe)J!BMSIZUWuCR<+M#Ei;ajp!hQb6PWyWI0`%1%$0IBvCi?o*w%)4e09XGH5q|G%Zw?`Y=JUu#Yf+nUU^j`Ef=&Pfo|`_ja{?77uAxU@?P;0IC^OiS?eBw7r@%}T3WJ! z{uuUWjey)K|Hx4>*07-bYg#$*!~6H0!8-OX6yXuO#rCgrdP7rtZZ2=GZ$GQ?P#y08 zkNA}nv_kA{x6=J|SP{}K|gT?lcH zB|0Zi&Sj;{3yBkrhV)CqXAv*#xrZa>t!O}hJV4HRuC?GjpQWJ+p0&R(M*58IpFHhr+K8}6*(AJg3VTPD;n*!PN?&}Z9y9gi5Z8_sD+ za11GNiBL`dt`mT`;PA*zn&!7^s1Zcy;pD`GaeZ>$K($>{f-1q9zW34{gn&cfh*ll{ zWXG;eK-I-j(+2k<5LZQ(PL6p;XTG%*XtPc?L|@-TU4|2S?)}QZWCOGoc+T%pPRZkH zt@M7K8pJ1uNABgD@a`MwaK@GA6TmQB&#JIc(wX7Tdj1&89$tpu(x4U*iv1(VO!3`% zQ1@)BrZRTnvgNeb;5N7P6&(T&h?;-WkN3W}`iI09o(EFRpT6``w#V*y&DoFRo1DbN zYN=-0@d8(toF`!cER36tx>E1?uX1Xe<{ zD+h+Ng3-aq4Kt6Z+K)Zu-_XS7uQqLYQcse$+Ke+c&7*vZe~oMq=;!Tu!afUZ%w%GE z++GP5u2_D|;T`L?5@^06BV$A)!732ZSL}rj%5lUZJaF^O*}&Xs%~@~IY62#FZSH&0 zKv6yNq_iY&wb|9!GLH+>a_dNJBU)QpDxwvxz;bo3I4&PJe=fGlLtue9M|~a4w@WS$ zmbw~pFnfIK6o1S!*O|4%>{_P-YEadR9`NtfK6OQsxyno+R@a?rO{gFc@rVB@%RUoY1tSrJ(iY37);SRd`U??W+f-2=prZ+NV^y`>ZBP+O1iMXJCI_VeX;Yum%B zkmWJ^f3r<(K=}NU@}^#;lca?{>|)WK;YWbkf*HUl*P%~9dZ}&QQhuS z-#7V;k2Vl~fdt0pn{gwnN}L0K#{K$l>ZsoG^K_^c>2k8?5ToJ_d!B0Xs@?+|h@;+g z@Yn=F^nZ4J=Tf|GuTYJwVmr9$aHgZ<(ltB48ygC$pKvMK+uKx&bK*JO1vcQ@-ltl` zDlBH=H6w>BLVY;K1iO19wt2NZ6_f~C;9(mwVB}y$m<{)uFwku}+(HUys}MfrE~L1t zT7E_s;oDKOiSyX-ElkD{E1oka!o67}N5p6cVH4;d;*0YmLU~P6^wLj$REqQ9C3ry_WN|j1QYbpf-K8da==pU!dEbb! zPD_IWC-qndFZ8fEi(eJBE*^Zsq$zsIje&`6I>pUBTK@iwCxQ-0z3WARqTz*m&>!p^ z!8d2~y&50Q;nnqFJPhEVcZeW1ah5_{b6Ii@t5NkdUMk7j6B&v+i@(LYmWruqhqLtk zLk7|1XGa8V+Z{7p#xsS8Ep2w6)IB{tt-8oJiPIS?b}K(E6HO*L;d4AgG3EjrA^HZh zwz@i4T_Jkr+fiAS(HWA_0@Nn3yolbz>*^>xaw)B4i>MH_>d`IwNu1 zryMgLcT~3dbH=;DpC|OCm38$!J-AnCQl01-) zGo_1Cd|Gea#vh~cb*NNEmA_)C$63a>e_%ARrYx)w45>z5$KT6Zi$YX3WxJCViUTCn z6&`=xd;YUY;JrdRB?^;^lcarDWOW`BO3pqpHTI_$2+R zVR4)}mTfTwOkx%~{aCq~XoPRXpJ)Pf%!)=-r?=Ss%D(czd5iY}2?; z9w+g{$5FNj_b=gVL4xYV=Z`@O7EjH*W|ma}R5REY&y&y$M-p%qm7P`3i`5Zf{--yI z>cM$LnrE&#BF%Au1yH*Pwzxa?}*t;6CO;SKAkWW}SAUl$>fnxTAjb7Iqsu z!1*24<6T5$L{G&)rqVkgWB6G%6mU*Rbg>S54C9|JvRqC5ioc5Q>~^SQTTckmxj<2o zpMX>Itx?>)TUT6wvwwB9@(q)K+bu(^@eBfikGQ!`M&JWoUC#r>{a5H}6fexzlyVKP z_WK%NoBK2{13}JfIue)X01x@{70-(|IJ~C3 zouIfUf#JBXv?d(91RVIKY+>=rNLT*jzL!6Go4Nz)&aKnA+kPR+?9>Ix@P{1*6Qwry zR0eV=-$w2FrAYhTZ5$K?BG)BQ|I-JJI?k=7F0A`wxAy`x!2G9HPpI@5R3P8F%anPH*7%h7_|4zd9QN(E1T!kq_6=QgRKN zF51oLy9r%=u`kQI#8N4H@*|_=K2Nj*4_ds(iuO-4vd?BE=xhU`O_e?%euwzgg*O}n z{I)KS;<4^CA)WtLU)$~OmOm#z`bu3 z*p2M)EmiCX%vif}Pow*{S?Z?2I*~sLjI(9aD=rI*k)*k-Gk=SnwlXusaz7O707D~t zYd0t}uIh3hM4wo65<0N!YNnGtuyJm%BC(*2@i~fuXd8{O!L8daqYc&Dawz}Ml_(w> zbxQTa7K>_C?s!{j_>&6GK^*op}M~;ktRM);8BNGB`DKk zdN-bevEMy(`RdWNYz6Z6&oISb!w_h833}9)0x03d5=Vf(Hg~tzyyt1*qqWlOvN_Y- zE8g}Ue5flIs!_SezUAd)4<)uT+(2L*sR{N?i*};aB&V;}jaRYP(_YgIWn4Ugpg`X6 zvYYuZ@BL#j!D(R-B4?-bB=#GFP&_p*J2>n1@2I2$drgrkx9VR+9X37x#{v~YcLyQs zZUR@&+jJlwU!!(4esWO2Q%=}RzYkfrfeysvmk|18Z~di#dH(17Pa{_u9I#NS`hC1d z|9A%nYXBxWz=6_O($6-V(y7}nDgkl%tVr{q)KRbik2+%}RevCBW4Eg%{v>Qh{gu;K zI%0Y!tMw%n5Mm{Wt{abe&3o3&mwDehGuf9Ixb5TUqJkMM$$IZW^FO;Ub}wMwWR)D) z^+&I=tBLUX8O6b?3__Pqr4UNvd5SOJ2D##%56`S%D?9oVzpfkU+ZJkMcKvpVS=`zJ za7*|yD3cr#ID-dQG8=`ii~9U%{Y7=5Z?y6?x_ET@GHAX#09X0$O;+i>4W#AN#s%of z?Oo`iaxb2c&~Bg^>X#WUL|=^5sk zg*(;ZM!D-q>t?>6@JJW`d9{98a4E!3-u;5#pdZA^=os31hCgj zAjB5rC2^R&(%ip3L%H$J-HKF5ZIdNM;*_HFn*?(oQR2?*sGL}W7bGRIo87Bt;XScl zIC@{m0_GV72WRcB+!z#rE5lrda|Ej;yk9Xx-w|9R>|2LwuesB#&wR{}IM?a-8_=5{ z;qH3uCxtH7$esIDqog>s%nUPEh8yEHkv&GOA3N3XjvRD+U&gaWq=Dk8W7q3lXfZ4~ zIzCER*uBRlV8}Q{St5@5#?-1>>fGsl)kl zh4AA*Xlno5KRAZRRAjrGxz$B#)L-Cb+2ExKH}9)o7F&-U|9X(a5(p9jbfywVA~7C> zQs>8frAz%m3Ip&ga3GL7@hpNqQF6kGwH6ynl&@)b2Rr`Utc2>nXa7YVKb1_|g zQ0sTq9>3^2&~Py(2r#4aKtT+ndf>?u{GPkZfD#q&7Sf4F5`_}&)xtY|$3$ww7WLK= zyBtX?0Fu?J=j3JGVDTM}nCoNb)kgrtC>whH?%!VDat1W2o*{ON&=_dum2ilVk)w68idzy^(g&M z5Qn93P3_|i+R1Gb(K3m0s$gF;P;gF^iEvY`)5cNxeB<8hbY>uxXHgGLMK_>j01@EI zn0R|UGl-GhOsigimu;P|xIRcXDI@K8v5rqNm={D88{T4`13))2?i48)?#I;rjrj@*&Djc(T@G z1KLwWKU_iNG;LhMa4PS@CTP^s`0<#;w|*uNBe$7uy;v4_gXq(yJY7Qu2fS}phMVCw zq+tS94WA_dAp;}(TCSZNfAJKWP2!o!lUSEvz?A{A^dqU(8ZJeS#FbLjg z@f5$$2N;L~v%{+Zma2}?nx7lsINLF5#p9=e1J%r9$hFxj5L9lI6}v`_9Qu2Gm)kgr zXE4=C_taAw#ealp9ge#JwBOiK(5h-T++s{^ zg$EaWd=rkr#U0%Tfzqq&BP}WP?UEU(;jz7d8*G!TGZQ^Hpku5b*Vb!tHVen z?aMi86NvAnT=lnoboecc<{{fIe(W& zo})cXLQ^7>->BOU33DOMHf`s9X9k(JP5JS7qE%2Wt>=&wYGQJ7aQr-v^yGrO)``~G zr3&UM&2e$s^%!y^d>oi2mZa^oZ^|YN&i2E9EJ53fNp$i=fu~D`Bu!{kdQ?a+?}m*A zzhM+D_RH#26YWk0^;|(*2MX|s>=ozq5KDom<>{T1WdLD9s={0jrf%3x!n$C3ndIw} zwofQHQo_>O1K*=`vG$_fu+7DLNRotQ1@$BoVP2&3CT@;W2Qi8%ucGyv@TFngh4LgV zO0_hm&VWkR+o;y(G z%_wfC_o^>2dBCr*ILHUGE{o{tLkHY1r(UCCfDKJ8vhCQwP`bqItMl&6=w zO@m1t|LDmD{+Q7vu~FesXRodphuXPQ=+Q@Y2$M;HqXVWIDNv0QVL64J#aWaoh?lyX z(B+23}8+>DBT6#ZU2RNDX-q z^I$Uo;aKM{ibAH)ZNT2^VDq>F5u*FLwt+{4|6Bdlwe- zapu@YL_Gg#)I0u#`uWeQj`;S1X~B2BNAyyl%h$-Q$vz~r4(Lhu&;sR6ntaWWCs4i; z=FDHjc@2sft6pC1!pgbS7;tM8@zq->nNT!w`p@s88yD|6=B>%jV-HQ-?b_vm6Fw$8^KkM+c@^auR78ceH4JE1f zH}bahtZ_KUzSH}NU6ZE*vsTD!ZEOJ~=%lbwg7%BazIe$7(yBI9WKJgjK*=;Cr1xng(K`9rm(|N>F%XR?DgN34{OCb3BSKmGdx`Tf@jcvcc_P^#KAp zlftRumRn%F#v|y)n}hC#p@yn^|AFXP4d*ms%@-$lf0DDNQ2T;o(q`6YIEoLvK*(h+ zRcBa4r|yMZ=JX|2fiivVoIJ{90-7P7_Rq|qE^ReJ`(TQ{RaFJ$>X$kfx!9FYzj(PI zuHAEOeGc$4)XMs$1COx+w=rqs%#-Qs6A-EE3jqgr zt4ckVs?f_Y!%7_O+@}$lM`Rh*Z*5pRA!CN+w;2Hw)pO`ta^>sfmlE2!-4Ak~woc_? zvH(KiPd}KY7OoGSj#Y^(psfB;J;wl%=)9e~Lml-5-w9PK!=hy0#B2fAcEIE3>*PIG z%zG|bSU885tM#qUB`w+Eo+T=b`s0|cVoIsoRTP_iL0IWs5!$m(Y;S%S=8^2HRlB!~$w(xPZNKs2lO1@Obj&SvbbfB@Vb7(bz87{z+U?qsg?}8 z1+}B>JPtI%zV<;^I#e9$d zUDu4)w`VP@O)WX<5CXc|nqsHpHd5feAzaso4S6r_*FET%XZ)1X8k_En(Kn}Pc1%Np z?xJ;^8UE{qb1fdIi-lx0dIZ(Gj>XH`h!Pt3CX zKKK(J=9w1JixKk^thm^aI`SZ88&pqUQPs)dwlOpP%>QxY{T7lbu+hR*Don_>FYaNo zW3?qADB2EC3@%nRmjJ`81f(WzWs$oJcQu$ZPA2B0LS;K!LsIqb zT*xlhP=y9CN)Zd^X#xJ62&*(*d=|+pq>Ma>-bMs9+AyhtfVo6%X|u(A%TlKoAl7*T z3=+1LEfV;oF|cuAghzloC&B}{Ty6P3Z*0SmUK*+#6-|*+ZEl{qPTlN@a!UiyFOmm` zK5UVJ2AW3lU}A&@tT!(_SZmiW8NAI^2l%Q2G$6l~FI~qP%-=KsSdF>fsIo&@ZxLdbN1!-#^eD3;eXm#vP27@|G5(8_-b`^ zxAOfI1F9VYe7*fu1#FRjOIx=EQ_C}Jl-c{eUsPv*J1r-IR8e&ot>=8`k27+773d+b zNb|=t+Y}j#STK47vIqj{Ko;=s`K@G5W!599*nwh3PA2Us93AEflm_SXC_=8|9h3Cy z)5%>+k3tcMlSVmf33RQUhS`? z057H#JBw|+OzrOin0}I_ty1>HhfYo^%~Tr##~1+oWKe_x&B`0L=>7dom8P-wM3~>_ zmek3AjE#wDs&s&ptda*8^Vcoe8+8Bpivz5NXWaHp=1q$ZK#PeYruD9Z<;Yq4S}y`p zqu9t~D)r0KK-7vtjV_@~@yy4RRx73?$mok7fL%GWD$U`ZT1 z;B<}Xca2)k1`wdF$^4c;-3cEfFwm@7F>qtl4N#Rzq&)K8Eecu|8fdE&X}!xeEk#6^ z)v`5x;S9y0<&?z97Tt9Gt#+tX7j!f`6?YPNUT1yiyYscq!IQ+eJ7bWxl&oHhOz0%} zHc+riUe+jT4j`eImOq;z_u%v!)Y>cwuJl`JPLE+(xK+k*lcBAx!Uq;;(b`7p@Ka96 z$jBJbC*+OP=TW9m32CBO&vu6!z~yKf>V369*MI1SJ-=i5R5h6;s-Pf0o)VW(gp+&` z^m&TMejt3b!E z{lV&(+3kF#>EwK}hdT5x<@u9WV}Yc5+;jO(SutIqGdANFWh()Yzl8A!qof?Kk6e@k z;$p$MUY`Y?X(r1ylFl2fq^Bp6WJY0pfQH6+PUvdBLD76&YI|gNrz=Hv z0{MBy&2uWb5B1_JfXpZrlZ&0byjAiibvtsL%MOac_ynZUtaQOcglh&r6&-;fM2T1- zafF~s0sa0K8}RXA?-F7u#-G)tc%k>lTQ3EmK-4);g>9;%8Vz3%+X}n88$$fz&+?c} zMCF9~<0;ifY?W%;5(H=SQ5!JcHnGVUWFIkxU)or^`;q3H;NZog`$|6bC-hy@F878l zs_zH|80JT>5+oJe*tY84S}&G2&*()Ie@@}R)7I$f0ndj`U(}mhS}yIT!arcSn8o9| z{hVG;ls#DvD-+A2u7<7q@P${EmVhQ(zTh{Ue~hNxYSeW<&fn!S`UbS1xk7{=xh6}! zIxeoGLbkJU_6C3h?b1`$^DJ4|W>;B@;2O>$%&b?=WlSsr%X6P$3UHWjmLpTne=%DV z3jh3)#>{udvwEI1?p)zH@r0^g7bL%P@#vGS>K*CAs+mE$br2SE9mSAw%Xhih&q{}= zu)QaJo`e5l)N6SzY05Ve26M|z#Ux&W*Qp);y}9IL?BAO^@-Iz(H)M>;eXL`ZX z3(`^kznIjC<<_2Y-R1`!xGr2OT_hN~3ehZ5fRMBG?Pp#FmV83D~`Mdn&9Z8yi}mSMt)(>3a;wG+tBqG5H_ z?|_x>n>%qDWwp3{?^N$Qtc~}*=xd@W_z52=@Rxm5lD%_QeZk_}O&0YC^JZGnq4Mit zO{98axtt0kRnVZxNgEV?J6x;o?DJjmriCfil@rK<49e->M0}N?3|Rgpi%v&~nefl< zENA_wkSYd63LJ<8@0Vb$z??!qqg5u><1f8vu8<<`p_-t&q1d*dX#R<(ROgwKMcE8& z(_r|D(TboZJzp5N{+nR}Rk~|?-P~t9{vzaJEO(849KyD$@iGPuWY{nJsSZ|ZITGdk zmox$-i05jai~v33(Nv(hC5wLHAI|CcOLu^0RNKc1yLL`$7V870n%W7f(EQq-Rl)!A z^IjKAy-?b^26S=oFoE9zC%Q%}3xW9HFIpXVSZwg}R`}Z~#2M zO$Z2PT>IzCbP>)J(i?!WqzZYJH7ew2ce`(o9M;98USKmV9ppVAu_0b`%5N#8=;rnQ z#U8H5rWT-L@y(m!%-T$V0Elj2V4z)Z+4NsQU{tqJqK0O%GUI5b2kKMZ`@}2M{Btxt znm;FI*H(*90j38X2l+4F^Wv|;PfWY+&vb{gu&_`iXFge|3US$<9o5n_BYPAbfY_7i z0T1;c!lrst#NB~5otoeh7$9>ew}xz;VWDOZo9}NgV^VlfWPw7w#o$O9)$+6XJx3yA zXt$B0ZiWo$QCw(3qiW}otNj(R06oQ88I6En5%mIq__cO(?Vi(eHqH5d0O{&ps0%fC zi^*IJu(j9KCjM7C>mlJ~#OStW0`-TW_g%6+o!z}j)KU$I3mr&xv>4&-uQPN#OF(Fv zt>Id=&>DHR!qHAOFSR!*9l2_PXXEGNyFD5sNOhP79L6;)8^4|5Xdo%$rZKTSwpo;D zyxEe(L3b+^Cu{?3@|T+_;bYCV=Gh0TdOiZ$7y2Gre zAeDeX{fjAEb@j>-DS!eC$)`9HQnFm2ZasWg3-O;aGOlT5&shDB^Wv zj^68P0DjcZET(1#*^%#>0thvvlq|WWM7oYAO%RI*DNDi*SuQpbD^meey^+uFhElDk zY6`MdUB+1$FP=j7(exhof$o6hnpMw-sy*T?Eb|1?b32|QDnaM7wsRo9+MItG>KosU zdNEdI7K5JmL@cEfsGBN27blnskLi5PFG5X>0Ji=BAM*jlv5W@C;u$DtbK$S*N@ugjZMIdXe;FB)GcTyn4_m zs-W&*w+YH2Kw_1zi`{%Rud4|)tmhAR|2?d`0-OW1Gt|g3zrB@ce{Fd7%xKP7iNZkY zanM0gmgy)0zV}@cHC6zlimldU>`8Z^%8Mhy%c>Bt zBPq{lcYGlieH-u=KCL{gS0Yszb=#HUpXxrvdP+#?)( zu38ls^%LN!+btatmW1|~)c`8~lfV;BZK?1__(_|UJ(| zjmv#$G6RWtZ~za)i&G7{a?gtB<Luq^v+0Z) z_xlWvzro)o#n)9(oB>5*E~SdQl`ENahGJb787eTF{GPiR)Ew72YVA;$l6^l_yHS;H22$ZG78d}%QQjBLgO zSw+tdHVB$)-!_gWsb3;skF^HCi$;jYH@CQl$Qq+Do{1Sx>ApPtNFlQdJ`%?9-)b@| zW`+SbngBN=VKcrjraAY36(klsYNJT<9>r5B?W>cy_sDm_L7yS3H%0TW8)1D97n(9k z*hi)7I-J3A2MT4cjzJcJR4jn&4SJ5g3}C_}|7hNpzF{_ra}H0-X?e=eyxo<^BZ~8M zBf>>2J_TFPE-N>k!PN$|Lmy*WNgj)+UN#%MU1=RQsL}4Nw9CuKcI}Q#9?4~~I7{yZ z&T#IZgNJc;wcBOt$Mf?VVJZ$gLf9yrJX~F<)`_1;n1l9~JR;Q5;qOYk3UVDL;5JCp^d z?l!yJ1h0*N67lkl>Q6LH3e!<5@}oIh*tWH(FaG+-s$+sK^scDe$)L}KOGenYFFPOp zD1S)#ygGT90D+Lt&Ni6qhg4~0*oS0kZ6#S;A;_yYIA0cBlE}J*CCP=|r4!cVn5|=&mqUd-Aw&`U_B+=xb zy{TTbSVxJiLNZ&{KFysxP~kW!rxR&%%1@{Wz-rWx*o?ZsMQZnuOykym1`PRYqUyG! z)LTvY!$GLXg5&o5&9|rYojkr?xf&eS;{c<4lwW;xJZ08zw(`wbcNW}1bBk=uMPj|k zAAttctE?sdrDVz(C)C+94-BNI~-{{-Gzbxm&u&jwz4RP4a^$}{}I!Q$DMpBH0xM; zMc+=<4p($S3BNFhan7hW5A^iPbkNvBD95Ws8+|MW`t2O6Vu9w_59WpLb4~3KVra^Xmy(dxM-1`?7Nx}>4=;&& zsL2~1WET0c!nLJ(IMyo6oiYd%CGRWAZEZT!0YYEJ5}aPJLoTi?X*isn@S0!JfMy zgQ69yFb<4Lc~^|^T`%x_q&8#zW==3g$GJza+jT2(d~j-g5~dH;HXLkUB(PbYajFwY zP5RoXbLeOBuUeUqiOg({AqT;22l5`nAF(w$}Um&;E&`nX02KfC<$Ge*sB&bZ5_ zD{+`nH!5qZj_1UP%VV!fWOM-$AI^a@mnsi|??E90vm^d{Pm^Zy(JP!=<%XelmX@m# zUawZag&odmI@o)OyATrySn%ZX9FW56RkwIYJfBYM%tU*!vDxl^W1CVk`m99~bGGsT z`_S~ug4o8`OD2pEFXBVbDCk3((c~>cQxtJqVrBxWUz1f;b-J@Sio)$W6(7gynsnjA zj+0q0!G%s(zlroVQ3b#levc-BDIteA6gpOQeLvXuEWO8cN_u4<&#e*ZW*hFV<%XX> z4|!U%PMu_2ACTPu#Xm-hd8!F}w5gWHs~*nbJy2g&)4S{N!C}1PV<6Cv5|3@(oE_bh zz!^$TRDm8tUQ4jnEln3ZP+iqk41-ZV1%kz8wkXA1gj>rwD7MvxBkj^;zgz`WsM9ve z|Ju^BP1grZ{-uVcVRcL?V206=fKJvPlHGGU80OUDRxu;)?hi3cqi_R1Q}v=>C4G@q zkWTG3Uu&2Ou|3XigW=TLV`NX`A-mbGK}u_3ydW{J2P@r-<**=*b*98F zC;=?3&H8q}K0rP)l>6PT&w!Ume{(e&rt5GZzyHA$MdtQkyeSN>t3DaiZMA;Dl2&Ovf8BhJMlnuyGia-xcBo>L^y~6PM|G|Mj&6I?U0%J@gAPov3z`~e?;wOB3g%1zYp~Qz#yTg}8x`prw7Nb#H z&X@#J$lQ+)4;$KDp3+#Za>jIy?`}}M=iaFAGqu_@tE7)P1XQ+zR!7(E4hV1*$2QLr z3aO$2HWkp$i|J#Qoq*p|ipk&*U%SIg4)9Kfwv zge32f`74WFzUZMGhZO501=7dbYlJUsVt)^6blxd?VBx$1^Hs?&DRR(*^SaHzh#r{k zl)IkDb9k}$^q;GM-k={?*S;s(M(FYr2Seju5x;tPJRWPUW8MOfGXA4=+Nhxr#soYw zB(ga9!NsE#G#b8H7DPB3GCe2|0~5Uc;=pAWGZ!7(j*xl*Ab_kr|9dGdOBf!F)t= zmy21e&s?5bOTEPAE%O48$GGimC(rp9em)KH62Bm#*HXv4#gx6sZg(7u_#NIGURC)_ ztF7nHj_;ik+lUSznseakLZ?75ip6-(fzrt)wwDW6tS7BD@Ay#E^Aq3Mjx!Ifw2mdQWNdYMAn%d7tfMHG*&IIjV5hKe#c98l`0WRBiG;{0~>GiF8MpF zmKho7?(waWaZyLB=UTD8K=suVLXWcaPqF+T_Pzrws^jZ>wp>I|Ac+M_1Y;vc4GRd^ zX^S955PMq?Rv^;5H5d#@6osfU8bz_2Xw+DUu|yITO;oVN-mt`o1u?OLy5Dc^oxAL= zyPERe*%6?S9c~b*eJom+pOOTx5CfCuZMz%y|;=m6A)Ww^q1_@MM8GySCH!=n#wR)y}E^1;+jM{ZAf z`d;A3^Q(4k*3VI5h8M2C*`#Zq8Fn7`);<4yLCp9M&G9O&_KOAP_AZ}hjM`E9F#TQI z5~=dhvrVDN5w|kR#=_skcLXs)4-L$$dVTlv>P7VH!QVf-UAe7d(>sMn^=9WED`Urx z-*Ni!g)G^SqHB}x9i5XLe6VBm3wd)wXk*y^d{JYEVa}^B-rZ@C;vQbn)U3ruX}h~i zKdR}mSwC}{<9uWB!Ultnh=Ic!7B`PdMPYflCZ9iqzIx_PvI4Trz$e6DnRojI4Ft z6=Q2La8cUB@n-r@-b#z%Y7q`0$;Zz8)=dA=P_q%WCt~)56kS=dx!hU*(U?>5q{^_| zr5^kIqn8+Ns>WSh^ic!vsnh3_^)9DB-dN|`Kb@W*n%O*8+PFjE&%{{Mh8ZBzqQDq>myEnZ5!!f5%o@Ca@hp^8a=N1UQ+uRzjdN;hwW_XnSRlW41Mtz z_y_#(_KMAio4usi%&f6vF^@9zmKy1jDqp#}P7pB^06`Rv|D2Ys6rN!9NZ zMpSl6U8P@GbA5Y@4WE=2=C1L0;vYSv`<_L=>N&xWcfaUS+j`HyBDCsYGkxicLT+Ug zj-j)~R~~2lq6c^1vFNgXVY{2}kGSi;>8d(sP|>xOn>!W`D@)L`^yL+K&BuRqxns!h z$ArfbEgkxpUM`fXZ{2@m) zj#}aTc41IijDF2|_rJ&E?8GH;)fSCLb)Ru;!L>O3`oGwVbjEoSH@!=tvMfrk@KXQ7 zize)rbP92)Y>?7KU$>yDbxq>Ols0-z9y6u#wtsYi!JOnU|ED)TvOOR@+`h0|*=T*S z!+Q33n2nKZ8DnJ1efIv-s;G+wfsV;F%J+qxZFPojV%6$ZeN!>cEe&)ps9jr92XOJ4iS2pmE{=|6@ zVxaimz_i&ZshV5MGoHzFMpn#Sxw%bY>#_k*fn|Pjn|=cpS`|kA8r{Fe4QYqYh0Q8& zC*|tp9><=igr1wAAI|9IgRZ{4 zyE!&5-W_M&ps~Z`hsT>$bka@r+6L@OyxDl+kY3~L8#Hb^`TFtbOZxfbNxU%AeO2)G zcW2$MK4o99`F^whOCH=`koizAxmB$H?)&I<&)(bOsfcozTzowG{4l*mi?aK->T|Yk zHS5=$b3Jp!)~TTP!Aj@C-sj5Pb=%T$^hXI7#ymN;x zW<@=Yrx{f4Pa(b!-+XpxRe3^9gB}O<80Eviz17I>`$ubjaGE>y{;;4W!=gXewd$f3 zJ*sZLaclRR(fDl#hsmzT@h2JD=`J%?UtTnC(7hXNzTH>0WVB;i?&}4;XH+^b=)JJa zL04mU@847t)IIx5386_}YnMizHMdumhu3uKK1WxdrJsyKjyihDLl2j@_s@hh|H89o z-OBQjHMhIv=&_Y_PrKD*#&5me^JvJ;?H!4)3?A|nCuF=OGi_|fHjxO4@-`6e}Qcm4YFQ~Q6L zvBdFEZdgHY=gQ4j8))l*GT53(?loc5n|3=NB(*$qdH=D?k5-iX*5s`ypYE*x7RypT zH$*09_tBKXs2dIYt}OSe30zU0>nw$d>gL&{hei!J(Yk%liT!WasF$^NZ~XS1XZM@= zE#ac2qH26%>NS?S+Tux1AD-TRy_n5s7XoYh_3`p$_h(Z??aO*|dlOs`o}-`Kuodt_d# z^ys+92|HW&X!rJ=!&~|uAN^o~QtUF`oE38)eD~z+e7E10!uNlwC|uTWqT`)?TRKd3 z)verVQ&!ln){T_MfB!w>UPaEctH(dgubtlMiwEzlKejkv;=6Y|mnf&V>y>jsDaNiM zkBcLA?6;YI?BmwRG$Z!Z?1wo%Zr!NugcZ9!dpPv$xZbIAKe*o@1HVMYznn(0rQ=h7 zb@g`W_xrovxmLT{%`3Be?W6bK@OJMNdv`^zxesUWzF*X6W%R}!b?@gM$Wz~HxYXf^ z?e8VBZ};xE>)AdxX~5AocRt$^?PJ|<)C98~GsM-l$JCv_AMNPv@N?;hU!U9e?9rnc z%DcT^pXeIsQvKWfElrOt_M6z|&TC5=|E$z66*yn>S?fmX%G;J}mz`>OYHw=f-B}y@ zG;7xIoT`beqtAp5$0shnSi7a(vC-8Fidq_|clz7jU8lWe*>q%vy1~vrN)ctBpRT@; zwbb6ZvRBaE_zC&PC&ri0$uY3P&8;8ihD3cCzq*U!>E#iTOE(v`uxpYFE{jd_+7IdJ0eHdW|n8&{AB9AA4XX3zdopZdV_ZDcXg=T<$pJH!iHlL z$KIX2L%;BM>eDga4jl)qEq-&>h{ zu$Ok<{`j~>qsL9OI@@xhUYCpTvL{pM!_s%wuqpB}}Av4mJuJWHS0u&BaiQD$;F^2#=J z^7o67 z2$ye$^d24mSRV8=^45@ys@G*^7j5!;O&AfFRke7&b7ah;_sg&M`r!I!i}zKvC2W86$X>IVi{c*3)isSrHXU`ecbCLdmGkev|FH4E zkj2L~pDxrI7VmwJxa&4an*CP4@-dmOi=7|iHN(wq@A$8~H}5U+P-vFjy0O{4*PIJM z+QI)x;OO5Ae|Uq;&AuO);Z|pZluM^8bAw5U^qBLR3w5>lo%;TfZFh-BeZTUkOzjV0 z#7HgOe%be3({G*Aq}i_*EdHtT%CT9C|H3zWHonU7@3Nz=xyIyu~M~I%x|{U%%^* zh&}CyLqz4UJ7wAitghI#b>fvp^G@UjkdPmbZSLM{^Mz5O1uNP%oIGXT53dvC2Zu5; zwHBPSG0A(>mbi0!Lh6&BJtmA@9sO+&_Iqhk^7NC-bMU7(q}fih7hkAy6cwnh*Ca9F zZq5AQbM-69_q6WPb&t#d+#6Eu9E1k3>^Z7#ddukH$JYU(uy7rbeIZ&~|3w3uYzfa!Kyrsm$ zOb?#*#UF<^Bv>+{0$ z2GfbXcV)A?>qV73l*1n%TpDxYa(C~y$bpavrK_WN^;%V(%R|Nx#7(mw0gfGD&7@v5eER3;B(wJd%-)HIF<7 zZ+k-`Y2 zw662Tfp$YKT6dAi*+EqO=N}`(t~a|uNQcfB-aNll zlv4e<9m(D;XZA!w5o1-^H}Ki@dL(Jp?)q0gIx1mH8HZ*w+)nIonA6wxJR#AYF1&s0 z!jErSvUN=MvM+W&4MyZ%$aGwB|WOUZPDeKV}YKH5dzyfXrEGkE*ZU z5LPkt3;dVA|NXt7_>m{d?@lH}`FK>p^2~y?rpX;-S{1%{{LY5&?|n9ec+{WN?xb7Q zSZ(2w1tZ{hwk|1~Htdv=e%Igm=GcX{7eddU5KM?+5~E?0x=X@xvJIJ_m$@v>tzTx_Or@6D!F$7`EgcgkW{n(~q;!*6lWa{vm0#uhxmAHxv$Tc|xw89~ zBKe0?iW`+bp^-DqTEH8hEw6NIwZnVmj=7gCnXgIY*<;?{dg6NS{GHc!Y)ia-A3qhE zv}j^-4_O0}?L4baDHfY|h+l2EI z-d}X;tL3fngRE0m_878#;>sRFx6fGFW7zhE-z}H2sr2bZRbt#%`HxOked0DGVMeoq zC+%vhD(nBTyZghOMg4abJLU#uwMl5^+P(XuW{sK-PIsF`h=ZbX*1W3sD$C|oB~)5{ zUX@ZA{CQPI<*d)ECRCRFR_~PLZ~W4?gwR7srRf(FyvGJV{SLtw!-gz3RE z847ukTO#MV`Fb$i{|hDmwBmf_f5TGv(lsrrQ;&|27aB&t27=>7OVq)FN$LzJNdB{y z($VAP9c8@2$M4^{uzTDunJxDx2bZ?)=O5tXnpn zw7aTuvNf&q@0;ZBm;4_xCT;G^dr#LL{#w7ktfbDkebLc$9f>OVcRbfn)jwU~|J5x+MXhwYeB6!l9frIqt) z@-_1atyX)2XHWE?YVjx9n?@x3Gx1D~m*`VhC2ze~>Z4U!$L{}q@uFe>_gVO&A8#_P zS&a0hzG46Wb^a^+Qs1|(1PQ_9B{r_>^CL&Bvou4O?c2GZqr06rY&__HLRj%2p8VHR z>+T@#^IYN`UN?!HpGf#~A8g*@iceJJHo6n0E*HDQa|zXnVqbfC<@%CeS)Qt|tD=6h zbno!zx@ysLv9(OaS5_`qOAzbB+fKKNzfd{tfR|RT->esuH!N?wLupPa_=aMB5@=-zw-r$Kv(}c7avTAHQ)V#H>3eea!SU zWb$D%8wmhD!i31*F&AbAk&8xu;RB{@nga-VfWRf(5vCA!S1XosF!6-v5X8Sw`4#Ud zL3gUE98c+JV?pSLjwSwso)m8L>qEKFkK!HP7r~4{4K8gN$f9LLF5U7>JgSh}n68|< zkHAUQ;>8PbLt6znUS2t`fPwO+DwpUsizzQC{bwqF%|qXERC!j8w~25L+v+N>Ym*l( zCss~7L~et>-}*u~>UzhEK4j<}lmjk7gpa;===zYky=m{F&dVIwMCJdBT-(UFqDs>t zqN}{FO>|o>H8*Y3E0+i{>e@Qp_)72OUExo9r*ZG1gNJ$9ONYk2)=tLT@}IB;U8xB6 z{B!;#EFoBI;?)w)AxAex>2{HE<*5tP%4r8u4&9Dq;tA!bWn?tC}k{Icj7 z=UgtV>E%X$VVGFn|!WIqi@$Ie!|z(ciH}>R~G!7IX&93#ZQE6IWr--c2$eV1wk;K zl-!xH?nK;BiwzCK3F%&yp4_5*!pJ7nQZCMuT3QX+)1pmNLV8yQB|F;{)5jac{_c%$ z`gF=|TG|PJZSMDF+g3h0*M#a>(D(l7H_N7dba~fh3qsnASDimuS$Z)(mFiIPc+dW# ztc-iBKEHQpwLkbMe?d~YE&k}tH~rim=LPZLiI4KHUjFoQeL~*&EaCU7 zt`=0Cye7RSTppP9UJU+z-r&VezMW8>fn8up_MMON-@KeQv}-5)S*~$w_uct^&paM~ zcYpqO)tg&G$jsRZkGn0zFM7*KZ!5dw5&M$lB-=N@?b()@_+evdcJ;jrkHRhwIPHYL z1yaH2hxJt}->8(5I)1FZ`wU^T+?|KNEmkCr9kFQhR@$%g)1Gb{Q-nOL>$WkeR8hxIs*hT`&2$2nZ*1!Q zct&f4ck@w%l*m^GImIvM!9h ziHh>Z<251)|7HK^CwSaM3U0Z1_O!C3JWHokpHG}Z2>DLa{$o4edX(+ly~zGq34svS zu%P&0s}WX|al^j+FRM>~EG49Q+xYo!FXX}Uefd*{x-KRp+pOP+Rf*@QF4bR>l;iL* z(){+S_)E}?#G%d~KvygO7BL%wXec~Vb?MnqS2RD{YWTy6_OymO z4ec#`;aEo^EQ|5=f2l|9mHnSqul@mEl{WOOPv1B?8D&4*n_qZ&4O(Rhj?hC=VeuX?-1>$H)>B-dsuXnlh|kMpA{T;H2txlw%pT$2W! z4L)AnmMZHkJuv+>aBYl#M*yDRi!956Asph%R?&IzfZLSY=6zapL9vx9J8#`n%!AI^ zi(H2T%FQ?{0Pjw@|KnFbpc5UpZ25A6YkMktwB*{{Zz!}WObdLulm}J|K<|53w|xpA zWWm*9zDO&{wNIz=KwlmxxpsAbUNQx~Yqk(yH9f<#hw^-0d}_)FygDff?QoIa*WEVzMbJ2|(bX+3{4Lkp5(Rya0?7IBFgzA2>~mZ1Z;QNM&r5 zL|r_>1LIpXrZUcwl>GwGL*Piix4h}eh7AeH{v_bsy6Cmk6a(MzF!Mzq@o+UO=EZcC zMEy_#F$YRN_?oXdh!;41jfi>-W#IAi1hp)BDv+?(1 zJeN~wM7?+ssGq|F9kd+71Rz?=kuCtIw7_&vs@vC%&+)o#Bb&yC(3-~`&Y(3r*!9Wy z(Ao^K&!hO**mLSV)G%``?PZa)qKUE=ct=`NG?FZEZi`Zz+@eK>KXTYPz`zi4Pld$mjUc}HGm=AK+$lcpXC zEnWx5nH}+BCDsk#yxF&VZH%Dq^D|e_L8x`{>5bIEew7|@_U830j}z7SOi*KpsK%xQ zzShJGVkO0b%=k0B2-HWQFC{d2;15`U9wuN~vF>fgZ3zE2g^6_;)FHx#iW?|wqLc~v z?+Fu2{SO!?n_N-y9Yo+V{DEYQ9&luy!t42i-8KQkt9dT*_J35EsDeQqB5Y8X30Txj zy!{^)_CIJGR&}=PlNNiNl75H?-djj}!e1Hev)(KG1Dr})$a?&OAUq!DM?R_1RO7s8 zPL0MEUA7Ul6N365p!m}|#C&dzWN=TEHxV9yv6m(-V%JsL9c-pfj$N;0ma|j zA{C(apybOMjSFZ9=nBwq(A)I>+8T`?+F1=c5|n&hqgewQ0$KrTv%W^-h)FmcGzK&Y zbP{MaXbC9UfcvP=2Gj@C9&{+EBWO0L2k2bT5YRQC;h;M~lR%GvW`l-6k0Q`0&?BIe zs9vB2pw*z;Kyri?}7s#`@2>XL>yi%j_fS-6=g&%=dgKh-1zgD9;09pVV0>5#*4ji=lHt-9W?dqaP56lAgk^;6D{@YBklMj&Ij$dcuEf0&6uMsILGti`E}htGNyN z*&(%>(M;S=@L$JCkOyj$hjQ?9`+VpHT2WA|DWQHpAN7Er6xM3o;rH3AaUV2%588!t1)$ZS zM?lRn4(I_j_(L)Q->J^Bk+f(~&%6LZyDiX`_?-R_K8L;}RyMv?w*9OvGtIL}pXNO} zI=6j`7Nq5U@X5}v(ZEF7gPxDX=fGF!Ylc!R37@^d;6D68v1#~}81T&p_7vk=m_N{F zT(84tjR9W?uoVXKegRfwfZYJL$NSbYN?ukFQiOWg2=YaY}eriicOH3yb(z*~jI`q(OUVHK;TsN2avc zgDPf8sa^Ntqk?=47a~6bek=PN8Qv*(!SyeYAF`@O6M%E#Yh{xw^|7+ek%d~>2U%Fz z`dHzIGR(a#f%V;k^HNwCw#BCb=Cl};+d|8ES=r>#a=9{Sk|X!EavWx1W$$fe>uF`< zMY}Lm_tM`Iwy{@=cYQ3W9wQ;|^k3A2+Gj4xRihk2IDdHH-!;H)152fdUYjD(Cg_AV z`B5dbjS8eK6dK!iPiZ3*yA2r*m;*(*RFn@sayeoQ=DgXUuzPq|PQCYX&GNXJ@>w!z zdcIVOA9lSYEj@I&Ou5GgO}7fqsVCl7mMRY^4=c-Pp9G@({B<>&_Bba{DMuQ`+m^N| z2KUzCp02M?0=5kp@0YOhP;gUUC_?`o0Z!wG{3!xAWaUadX&?5*2=dl87~_c6dj$M3 zGio#)D1Qa`tsHY?xl&%%ZQR?kllh?)a`+Dp$%Y5 zwy?6H4F?Zx3(X0rest=m2gUq=9Ren{k76T%od(u`GU1?D60kJr^A?W?@pBrm0$`s~ zY%p4wVrA}t(?!5-chzWaQhd0Tqu(rPD2BwxdqT^s%m-RI&XW4$1Z~G{nwvHFzD9#L z_=$WbYykhwm%<@u$&^<1Gv!`Z4tX5nPp+A#m3vOTzErh{d$5(GrL90jS>DkaZuj`lFv{jPcLq{PN^cGclG!AY(dQPI)-k%3O)~VMbBuUdd(!-N*)0hS>a<$jjR@-SSMBeqag(KjQ1s?q!c zDp#Oqd3(bSv#1@Iy~k6HiaszfcmTC)I6m_sYa8OU6LK24Jra?= zR!7jxdLx9vCX=DV&^@ve$t+pERCcDGMVViDe@j^x2|ZC-jwmY+v7onlu4QZSyCl`>Qz=goSuv=E05%Xon>e~am2?R zeiyi{Mk7PKrftuo<1<(0Nn<6POInO@*jEgPN=rU2$Dz!DKDC;36cNhs@s%$lr9%;8 z6Aswl5~74t_!?MOpq!1zUn@u3dLHGr9mbfz*r0K3XimLZGPPh#KCTTYm$jpD4L(+8 zJh1Wcu`Ti+8|1G4BtFu(mW5nA=0uGqALsIB=w$u4mSGsz)_}j$CoHbjVzy*)%^u~q zL8o<)wI1ihkH*?`I7fgb%!s*Jh%4v8<9<>$ zq_UfwMVZnvpbR0JGYPv(~^l?Fqe zx8=|r8MXrV1m#fEQ{6U#e+*p0%0?${(W5llXC*yvNEmpcI{S$jY4daX5IVf%h@xMeIZR=08&wnq!7Q@1G}^ zez1pT5TP`PW6sFs^5lJa1R&01qUQ_DNYrZtj+MAr%s!dL8 z;ZV;OzMpj!^E&)SJ{1>ztqP=pIrRc&%F|}ag7UZ_xn{u#ysc&B8Kr)Q{K|$;jR!jCqb+=`e7yNlaIs&%8T)r%9seTe&xwx z5q_@O2)62*HJWiqaO4VH7@KQ!=k^kr%nlQnkvZHOrHMVQ8~xG=dPtFj$q9`uCE9s_ z>d^^24&b?gpZpACoGS{oHH_~-nf}^nX7b`Om8Czr!jl zFugDy+KjMJj06q}@L1jrlLcBw6K<|Bwd!4Y~@;1(e z7#2-aTYeq70{1*{Zz#LR)^q)=?4{U~K)}P=hsK&i;L8HvZOTVu%}kj;A7}>V$^DTz zMp+zEmi4v7f~8E2S<=cePmcKrS74{*ZDBJ9?Dh1f{!8OLKOZ5d)18k3tsG_bFu3&Q zBTs%l8jA8BvuZTcAWNQ)@(5{cI^yGO7Veve)oLuM{5iPK&;Q8L=~^U2`mJ{UXEs>_ z{xrx7qVkfdJWM)R*Er&OFYXghiQP9X$$*3hRjL;@;7n6uhmA0UyfP8Oxe&}PWm}N+sRHzEO@(F5;_+IqKqqK z##5P%smzTM8pmg1j8V3Jhss7%N_CFI^6Nl)t)@QprQuc{$~+E^c{@RRvvU(w{rJ>A;reZ7{%%IVT--AqsXh| zDbN-9fHJ3EzdR11Ae8#EEI^9zJwsYP1#Lxai4dB6NkS9<)O^^5>g0jtRmq@Q%}qJv zybbGOo{;$GnxQcW8d5L1a)y|r60D5<%H!#Zxj@3eFzKPg}u{TX;ztZAWf{K1yDD@Qg%Z^ zuhQv1;WQr^2pRVwG6ESm51 z{xGhrOj<76#PLR-WI-1&!(i+Ju&;xBIrceE;uRP96<+TmStzU=C0Yrk@0wdc@eoWE zLFN7Vy{Q3v{Dh{Ij}>~dLWezEvIk8mm-^LV(rf|RS_jGS=V~ciOdSM$Lhy0Hrjuht zt>&r_$3m1jX0Y=Jn!I4BNORei$S5R-Rv{GS*R9Lo+kR!rL;lpVAp=F6$()OggF|C5 zKVpo^+aOuveLcv?dXitiV?LD1cGovL$NSOo-WH!5kZFa!nM~u&1jsb#8?f;4T8_Qr z>@RCIohg7FqZk&)TLPaCyeq?#fYaFFLHiRpWM1v^ zI@}K=pIdXk1d@l=-0@&C&xV^5OqSYkGlI!4HWwtg`0jP?UJ%i|J{;#;8zCF5YQ$X) zCeIpi3xmn?##~+?scq8cS^!zql=~%seAr@(B%0RT=3tWl7WX`e9Da-2 z8Avv@L%qk_akm4>?RFim1(F5rx$~&KJ@+(#%YwZ_)YjbWbZE(#c8^}Ae7FnRheHOg#9?tB0_>&P7nAO%j`xFrR z^k}|3nC$QU4(u?k4+q2D>_baE>BFHJc^)lszRQD}ufl@^=Ti^vU@-Z}lY4^h@w9`q zFT5#I>doB_AP;@HbHTi?C@#Vx@Re}`K;yYR7Gwgq(1NU#(9;{#k#eNm4hvEsOXlhZn*_nAmip(kSZBE=B%8XVL=XX-1GXR*o<3iK^E2Hax7@@fv9cfl>IP& zPJOg%0cL2N6v%r)STZ-mhb)qCRbJ#PD*U39Tjfn^rQCHdvXlmqU2^WAH#s2Z_IQ&I zIC{Q@1N@yCx89rN)#GY?$l7|`b1!nBUgJ_Pa<3j&=0#?jb0@vXd~@!i7gpZ^Ro@OSze^5A;k|{ z(^~FZQ_cdosFEzS;ja3SOE#Tw{^@JnEgv%H4O+{MH>OGc@FBl9;?DVy9gREVys9zx z(2JaD%KhO@9yaA_y~)XDcDdf~nw{5tCKBTryC!BxXmV4+)^4rn#AKGyTmE=TwcPR9M z!x-?xf#)bm?%Ui#C7JaOmG<-}mW!!NKa)kQ88IG&4AY~SqNQh=(J4y4#0R6aCQdvgZVyR@Wgj+9_{VuV? zIp!n$5DL%NTGGgliy~fJUzv(aBZ(;UK0aCwz8VV;4!c5W+;d^pVUw}Bf*VJAaj8@h z`5Pz%>M)!;%8{|$WsV$|bU(w9y;5#3M@~w)ogAKEaa%aDP0pFr$W$q}!j60@<-W1Qqam)?j@*=Td3NLv8Mnxe%#?F; z?P#Fi(288(xM_A|Nqz319Vw~L?E!y%Zg(s4m4y?|f3x6@+mT9ZdiRMncd8ZH*NC2< zXvCGbA}gD6`&*HZn^Ddq&FJ~3&AI!n$g1Yt?N;PYbMCiRWK&D-QY&8Ncd$N!>NX`7 z(0#5ox4@blvSvm(E1k`KWKPzZvui|^Rjy?98yk?rp$y-B*rO5FXy74zg9jmDBO58k zZi7ln=ryu2{=jbw@z>&g2LDU`wZOj?_}2peTHs#`{A+=KE%2`e{q5D-TAC=z}z!<8(K? zbo7$rDJxeZQiJhf+x_L`_x>W(Z_nsPgZjf?QT`>W{d?>Gum!|u*Q}e+2=V$|gKKYt z>%j)saR%2D4X)=HT(2^?{?_37Cxh$L2G`dNuKzH&mg0*J^bp(A*x+cWCQs4t^~ z86C@L2BW!*&SP{Hqs5GtGJ2BH>x@2R)NBr`pV9V=x-#m^=wL?2GMd3?E~E1pUBzfI zqos_VWb`_t4;eL^%j##eJ)^FS`Z7A0(XotXFq+HgJVsYBTFhuEqbC`?&ger%%|2uG zGuoa}S4Mpq9n9!hMl%@AWpo~+s~9b2w3N}4j9zE-A){vVSpAH)XVjHZUq%NrI+oE4 zMspdR$LK0Xiy19t^dzI#8GXp8+2^c&M%y#$%BU}+gBcymXa=LXjLu_p6{E$BmNI&h z(d&#pWYlavtDn*KjJh)F%jjT6$1+Rj$-T_Z8-?mq{c5&*Wuy=BFa&>f9IEtLcDb1GTq^i^%uiM^d?Ukc82?Y8RK7Qp-vlxF#1JxrVz(swidrd z7mAT|;1ay$Tw>6_8yNp0#?QhwImP&^8NV%)^OWH?4CJ&yf=lal!taUE(sXie^0zkjVL62C5 z4_F~w)9+%?<5Pw&V*=>+80c{n_{;jSdbA+GupbM?2)NjfSD5_pcmb#H(9>fs5`U`a zwl9V2X#ybuSddV>=T`y{#Bepkr!!pamst#7#_)K?zn$SWYXx91!#ON)sQj@E7q>O~ zGrY+|M5)Dk*}EmMkX@c#$dl_ z7Q+qqSyuq3^%gLH7VD+I-ytE5iMUP`YdOW_i2Ju9ewF8MM8tKkh)WU5jp^S2xP-h$ z^6Z87iu{xs<8RLMHz!F3({CAtnCaVXHt^R)CLOxQ1ise<-pbmzoPIpskQ7u3!q>AphB4gZrU0~Nc#H`- z`6lpvCh&$Z;OnqY_Pc^*==aR%;m7b27RTBOFv;R^cA-N)GlB15a*}om%=A0j^tc6l zDQS-1WDx9}B*3J@YsT%U zmd{Gc8VT}`3>M`7$nc54jmiI($I;#-fuDW{iXInD@Haz3XiSb0IBgdx6Ux)yW1vT& z3I1P9;58=j?nr!%)thSq{|b0(`9wVA+Q^b6m8(TFu~sl8_@iCJS50v z;gdK6H>OW4aAW$`#Bj7{^flU&MbC{PkKHm;WY@HzXcA1OcL- z^acJJ#%YCtea18XqRj&T7FO?94Bz;ZpigIp9|PVR`6^-01KTkC3D3_ibcmasV9yHH z?`(P|UjnD|X*JW+gOxeO<2nM^skyyzf9MUI_SccG1wHBa_~?;qFW}W|yu8b!_{lxs z#`^sn;}2Ob$lZq zP{Hinm6hoOoXX$Gy;z1F=n@Rz15W*od5&RWX!Q2;mQ4=z-j*$4G{!K2+bv@7@lO%??Ih}ezBpy!;XV~ zKb#)3f!p(E`v0s0PW{l9%~Rrf=QuA%pO;?wV`4Jau5=UlHzx4gCh$gG1pN)yn{9af zMSXfPej7HgVR-UKH1MT}he;;{J0MNskFOYiIP=d23_or{errr*RL*oJryk=E0Z#ot z>81e0GyFZ^)SgKO`T2C7pE2o>VkXCMy!>W@-_p^z{X3e#$C|)5nZR!Xr~YQo<|7NH zYqUaWuVb`ePyY8qaBnKZOQZr$f76B@TX|eK*ZudTD92!3_Ke}#?+J4F-xNW?j!wqg z8)gE}G=Z-LPTN($#tR!3gmV`1>TH9&dJyo}bromllTG03OyJ)Gf6a)T6Tt0_;P*_( zY2jjAAAcTyF%HL@;GYT{smlw;A|6LxG(fO_I^#HGLQcJ|#`Ww12}5#wqC~ z;3a1T!Swew>CqmzF@GMz<1hNdOcVU;OyJjnQ+;d>3H6CFkn1hX*99yN*b28vOW?-z z>1hHVVgjFR0^eW)FXwUO6>MMPHq)m;ALxT$Bk0w84w99b+!Jpxd9R)`E zn{V`p<8k3!_utQe^ZjKI|M!^SzXIIYczk4nzq^NVdkz3j>-AvyMr)>2yb1n8Ch$La z9Pz|p+%@(zUT<$6$9%;6TwJFln&6+w`0Z0AyoU6*qUdp);^-Gg)-MeOnA|lXr= zeF9D3(I)VZc^tJ>3KizFdY72s-(&(m$mE1<76gcK<2T?mkNwynkG1kP-tR8JX+IjS zQ-%Yl{&~b;{z_x~;RgP;jPZL^3Hs3A=%mL!9v9Aa|Gfm<63!~A)+&|l&{Kre=u zu(%}Vx2u5DdHFP(m&Lqd6L4d3;JOLCzS6iqw*_uYP7;s5xDUC;1pg%_-|#ue5MSf+ zV@=>+@%W4W{|m!6vU!AK#%|WvxcqKBj&aAzJ~1*?6`2^H6dMVDfQ--*O_8;?}Ix;O-p$H8EDqOjE)0?p&AsJmF z6XT*FWw?_YiYLXTN5>|plGD{G<9Q)b5or;s3@4>iJZ0)TcsO4RV~b5dbqSGbWjB?0 zN+rFDrLG>al&FN*6lW)GQ|fdM;v<~h2=rlv%6aeT$_@OG+; zBHDraA5>G}20al8)G2AI^n_T%9+m%q05mE%teZ-qPGec$>m0DMg)@Hl7BZ^i(AalR}{Vvt8vLIyfRF zHXuQ5PK*uBqy@I**J+Bp(nUI-S_n!-KWr zy2U1>r6fkBN7C7cl~ZOY72TrLVS`GL2V6A&PjT)IS39K91*Wh%}{nt zpcKL|_52w&(>!&x8O#KjVPX=ajMew27!93BSDaX9pu#;VB|SkMtVZ0#oEaDA85LD$ z>Hz^-S3wCdB&8%K@#FIE6%?!0>45Yk%;f66afxFh;=(XwFcG4!yM_kFB7lfpuKbe) zwMm0GUn{!7k%YmKju8p(2#QF8e3wvAt$1xCSv|~yXm7{;*TxhLE|G~zUc8^fJbw8jBXGB2rQ!#;cIVr;I0KQ(zJmUoDF0Tp=fjP19qAQtE^#s*+0O zJHRtYsls2;RH=y1kS;0ev0YTE=&USNk~$?dF##q^8?VZM7PLaGP5S%#hA9WC26}o0 zDpf?~Gc4FM$lse<_0^g4-&cv;?VP|fkEC(YdAm#bVab_*DUF&)G@RX z^=~car~t$HNN1t*cUwR^0;=OHMk=Krv%H_r0AAg|#OP>simSJedQ5t>5AT2QV&~9) z=mej{$n<#hGKD=t(^Rgsgu*@4a||3FOCD_~P&h?l#tVv#SJR=Z3<>BKDqaLTg(BPa z!EH}I?NG+X4hW!YSvqU@Cq${Uw2~<-EN`h4g3T23ED1V|;p^>(9jipMxL`{Wbs3-M*Ude7LYGea+L8Tr7AI4W*V3m9Uqw$ zq2i-~3VKGycz6#T>gnaLQgm^q!o=)B;ey3Ve7rhJ6{C*BD1@Lel~&uol5A6{-9pns zQerb;7pJcL#>K$#NopjR>Xfk&k?J8S5lN`RpV>g^PM7|agRb?X;zBawb(HMVjS77A z0QX_Nuj8R~a^yWt(UmsqqIy$}QsGwD?Vbry zePMfLu%2JIP%JGbBrz57AHALx5~e`FqSh8%oF@J{=Iw?Jorw4d%qXs5;}NRk-T6e5 zZq8(ocy)YyVusqIZ=k=Ix5^3M5$sAup+Y)J1!vS9qFT?=T?2U|ghj(S`8lYrcN9+Q zKp{YN2GXh6HHvOk#VB=#vFK1;QjVe?y7n&Pk={>W$njOr1c@mVqgtZny;e#}hRdOf6B$ z0jQQ*Q@e0-k4TAD#bO>*DqKQ66R?D&rlIzT6`G>8gV<14>daJ>?to#PK>Jzjb6QQE z<((Zvm07SuWNcd8_%N7A9YsS5^SHrI{_ZsUrjUPFnsdCdL|nUTKz9%*o4C*5tO}zG zQXFE0)b&nxF=Q!2;DcGOj8uBgj|Le@6nTHFi>7ts&M`$zeU~3{rbEAIA%$ZaCXo~t zui=aXwU=6}8ylWtPyCaSX)J7X8>>dZ3`$I)t1aWRmcliZpF8PJgE}k%DS@{_Ie>w6 zN*l9{f?CEqF)lqm!ALxUU)IH>0HfN)W6>T;n#_X(cj*L@Bq)_#Z z8N04**U&U!AhSX29AyX1PzfOn|mEE;N$iNF@V_)qh zUE}GbZ`fdDVcL~#tZs1b7DU-;OjhayUxR+`%C7))ds%lmDyEU9`p-EtHVQTfLZF2o zD0ORBDEg?5H}qU^f9Z8*Eo5C1Uu|X&^N%B~G27b#XS&z9b_T zTFNI_(diK>QL2bBi79D1xeN6|F*v!Z)bUArQ(B#Y*sQN`gLVU97wqfdA<@{x6y&au zVR~DPR!}EK;jFhsy)y`W+r8+sL zrY9xA(wH)}D+}!MY6p>%lQy3U;U9^yCp6eG<)1?7tSP8P^d>lQ#(cE_Oh~Jn;$N2f zianxZMXmaE9qKMVBmiF@J24a3klL>WJ8nQWcM0{MT zGP2Ivq5l1S)EU@5r)hl@R%|++^x|d}ruY7A<5kaZ^z*#B=<1r5NEgaFGPNC~x3GS- zzlm}6B>~BVONuLkKRa_eyCnN#(_jGG3`;fKHlsUGG%gJcd$rd505cLA6wX2tASOUB z$pf?j>+k2xcpmk#Y#9kOpDnWuke9A@9ff5T-RKksBuxypkLKO6F~YBV>--@E>jL_$ zzRu&c(MjQiJS{y=EiC%PZZaOF>f#D=&c5mdbxLd`pKbL|N;O!Zx?!e?!#dl)AJ!xa z+O~`=pCnxAnMGo!}M;_RNCZI2soDRdJ0CNy+C&nuzAdHH!yoD>8$F5O-?-Q3LX>} z5{T!*wl6*K z`%0LW=u`4nc+0B|s8l#pPZFM%dZ+z8e`4D<{OSu!FJXH@XLc}bo6gFIr6vQzUYwO) z(p4tr1jB*G$MeB#$nfH{Lz)h)#EghBacXV6(avGYx>)lUNbCF%hZWF|lz`De9Lj*mPGO{N{wIhd>4;xJ7(p?B~qBhPD-ph-*k(Ni%3lsCL?V$eu)qL)n~m1Rx_~>M}89$5NW_m2aDj|d;(-TlJk?4 z_Hj0KBerXeEtRa;G{Xhis|V_z-Xa({_*FxxE(1?M`e-`JyQE@0qKu{co87{2+CK%) z-Lxy{e;#`N$sE=-)HgOx?UIOH%DUAymh@uY>xE5Mg;Rgrrn^Qjto@D6X^t^SmGMxM zZa(pi)?c~T?Of?@JSrTcw2w>Z_IFm@u5sNI^0Gyf;R_GO7EgMEhEE{Gr52X>bd`@u z?WOshb8M;?U2G-LfX6n>Sy*&(WY3TB79!RQ;-0!#0WaFvGPqkj_AzNnqPs|~i;h|! zQ@Bwlqg#pThE;BU!#*hB!a~G2p-6sjE;oXwG_$5waq&5Z7K9j&cS7Jf} zec3cIEq3g9wq=B1B}}hEbird!q%-_8a$hy{Oi>R{O^eb-9-Y?f1acIjK`$~wh!Z0B zz`-vGRQk=)OFqOUx^8^cZZ7I=4n#x?j~#XGF7}rD*p$ThL1|;%=|;cT_%va1qYG|P zKci8;ZsucQ{uN{UB~AQiiRp`x%jqw@M?qBn1B1|+!n*-@uub0#7)YHSrXM)?)lpWz zhup=NK%5lFcKe30OS~z?KLSfthS0QIe}f7xMnS!)SfTKzFO}fYSAd%Opy8OOwTio@ z3dcyAAJjcB;L`=Yr@Yv}sCzvqHX#yQVo2LfyftLFk5M;7^>xJlfw;v_Ti}Sdl5~}( zDr()t$QmY0rJWeWku9bShT9Z%f%Mh=f$WFRrs`s;ku}lF+|h-;-a;S2zHE)?mY5Kz z#&Zt7F6_Q^t9zeQcnK71BzP5GRHJ=3#)PF|vjKSi$v@Jp+c$ct=HhCuPD||ziiS(_ zf&MRPrh(gvJ8TNK$QX6xxB++`iZvZ|5(Ev(`>M$znC1n#lLg*>U`tE*XG8*Ctivi8 zZ;`5W9{8eX3?3U%56}i4qmfPF1Zlpnej;UTzIMi#^n2-)t@}X0s2X z-Y;=XXu3LG4a?}g|H(TibE9ra=`7Vo9xgnljyKwg+G(=unDnS9agKlSWgMN6Xk@Q} znep#!C}@|JFU#~^GJbWEKHgLane;sfVOOJT27RiDX+xal>#U$-Qtg=UhWUU#x5Zm? z5h>$`@Xw|AQJ;_*uNRzKh+kUC0OMbY(?5R&v=?!_na)Go|3bixY%oC+^J@b4oUE~*qRRHZ0o zLV7%(1Nb{RvKgFx<3>mVmEuHIXHEJ%lkH->Vu=^##%JF;zU9hZH=(gb^&Vcf`G2Kd zJ8UFH5FG*HD{({!gak$c0Rbz|`ilrKpbe}OobPN1NPN5AJ+DvpuDv_9eAy)=7hOO? zL_~<>jDUm$iO>NODIvP(q7xyny8Ct4^z_d7?2+v1nVsribyZhaS52GYD|g=Q*bnHi zSO~`TrD80u%0X~enXFo2uWql7M_1feUtO!R0&eJnR5Bmg_zTnYX$+7Y3;bRwXRy} zH6cH__^KIgKVGu<*P8oOS*`*FwKnL>hI6ZN9ZGtA`Vzx9uA6O7qB*rXWb*lLzwai5 z&W#dF%@m!hV)bwobzOqF+BhZ|&tH-e8}OCrf~fnW<&;vSlYO%+Vyfy3>wCqCA7g`8 z6C~K)i%m1D9rt8*;Q*u%^28QFm}B{a-6H9Pn$eUbD<*p7e2tNF*V#}bZyRH%5ETdI zq2}IHv5_ws&1a)KL6G2NGM@Mb)(M@(yW^f)+JxqMEwgMcf(E0F&28*?ppIyCSeMqc zTKdq271;^4Y?+7X>@3?oVChKi0G1Z){lU{M*lQ|-{#6XEe0H!|Ie-ClwxliFEJBqz z9@NT7hC#}bFCHycT0)Ri20H|QHS{5>&*DvNH5%!{Vm+~yWb*QN8POvL@V*UlS814$ z6$ZPR@VEjcKn7+m4WX4~X)w!wzS0t7fik9${e9YlTquvu9NKgggD&MYOUH|?<79$w z=SR1kWvfX&i06!)mMkj1SRGOCh~yA^%ag*f^y=nuuOs0x#+ah$qolXDiNfFH>k^lR z=zgCsHo-yuW$cDb#Vp~Uuim7GI*G+`rZkxLywq9dt^ zkW$sbUgkrvOV9^=?`Y}o+gc~n;7l_893JIxC>)7p!s_#0P^b1;6G0SD8Pb-8VO;s* zg65w*Hw=V57&wEP=#V%Pg~ZF3`+HLmsL2R#V>+N=B_ldgJu39@J?XT?5+$a^War?p zyec$85^>Z+1T#e9s7B%3T5o1#bkEkhnr)L~$TCl2HQ?#$*)muHWuJlW%tD09x;D+; zbo^nv(y`JeLv3!*%EQ*T2+0u2oOXMACwUv`=^op=0(t#5DHy1W~VZ%CcD8e==$pfz)Y9*J6} zdW~QOORV(r%9k0Gx;j}aPW~`>yPeS*jY}!LHFKN{vsvp<&LW<@qc0)|ZXi}ti0G-L zuBeMwcD5o_F+NIxDGv8Nex-nw$fGqVZ=Mxr^{Z-ZSY>`$7e8GCfH~O8HCn(+8SgZ3q28VmI)f1-L=BY4W zv^Hp?HNzNLw{_JCOBm-a8P@lSy}stcJ8Cnn`RzP1SB2Py?xrl^oI7aNn%+Aox;?;R zV&Raf(YP42j*6B{(|y?MvX*(WJ34Oljd@m@b`$sK&ZhFJ?Sz{tzOVq$-BcKFiG zHh#l8t}6&Gb+}(-Eff0OLbA0x#x2~5@ZW@#x9}wtQ~qG+qSl9fWWqb-zO%DEINcc> z7KrbbP4Q4u`Mw7XTlZ}KHpbm%%d})I6+$Vd@)F35EXRe^1y4-LM}==nZ#vEJVFrZX zjtc$Fuq&kB0`3d=d&cGQk4q5VcFzf3WWqswR=kA2_N@JZ@V)5$=c4;H+&{tD)GVLp zaTA_71meZz<1=d6EBGTm&+8^UeH%aGlF!)57ww48@37s%GpRE1dHy#c&-=zJ=5n9g z<8AgGQgZe-@o#tSPlONL53E1mBizO7a+Wvmd7d}n?>0MAf60UOcaO6ZB;+~qd44z{ z&ktw$#Ao~OJNz#I<>Gndggn1o@ZXf*%nK=Bcbu< z96sUsOMKJ9*W4|kysq&d|7c$z*EK%RLnUm@%dg>D3rUmu3I8=d&&MO= z_eqHsxBq8{Px@u&t~>|7S}tSEF(U_miST(|9pPV&ABk4ZEz5q3@IQRnQj&1^Ix#I| zzwzlG5&lDW&LH8Z5&h!w{|3I6Kj$CW@(I^ikb`mgkMR6e{IQul7m=`u{!f5=P2uw# zM#8u}-V@4a_=RFDpWm}4ye)!9U2`fe$!kEC789T6B@#Y%1B2PHT(;{6;Og?{KePQu zcqWCYi}-|ZMD_pI;S>HB5sY|*??(7MzmbsVtgs4mOgQ*KgwOLF3E57f#rJLCOI_H1 zJYSRWJ`o*^@mE~=^U-_6kL4F$H /dev/null + # Same rows, plain JSON: packagechooserq's prettyStatus() override + # reads this to show the Summary step's choice as labels, not ids. + sudo cp "$tmp" "$sqml/items.json" fi rm -f "$tmp" diff --git a/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml b/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml index e06f551..34874db 100644 --- a/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml +++ b/archiso/airootfs/usr/local/share/steamify-installer/SteamifyPage.qml @@ -25,6 +25,8 @@ Item { SystemPalette { id: pal; colorGroup: SystemPalette.Active } readonly property color accent: "#00CED1" + Rectangle { anchors.fill: parent; color: pal.window } + // Only what can be set up here (Steamify leaves out the rest). readonly property var rows: Items.rows.filter(function (r) { return r.selectable; }) property var want: ({}) @@ -56,7 +58,11 @@ Item { for (var i = 0; i < rows.length; i++) if (rows[i].kind === "toggle" && want[rows[i].id]) on.push(rows[i].id); if (want.gaming && boot === "desktop") on.push("boot"); - return on.length ? on.join(",") : "none"; + // ", " (not ","): Calamares' packagechooser Summary step shows this + // value raw ("Install option: "); steamify-install still + // parses it fine (${choice//,/ } + bash word-splitting collapses + // the extra space). + return on.length ? on.join(", ") : "none"; } onWantChanged: config.packageChoice = choice() onBootChanged: config.packageChoice = choice() @@ -102,12 +108,12 @@ Item { readonly property var it: modelData readonly property bool vis: page.shown(it) readonly property bool selected: vis && index === page.sel - width: list.width - 12 + width: list.width - 25 height: vis ? 52 : 0 visible: vis radius: 4 - color: selected ? Qt.rgba(page.accent.r, page.accent.g, page.accent.b, 0.18) : pal.base - border.width: 1 + color: pal.base + border.width: selected ? 2 : 1 border.color: selected ? page.accent : Qt.rgba(pal.windowText.r, pal.windowText.g, pal.windowText.b, 0.15) MouseArea { @@ -118,9 +124,16 @@ Item { } RowLayout { anchors.fill: parent - anchors.leftMargin: row.it.parent ? 32 : 12 + anchors.leftMargin: row.it.parent ? 12 : 12 anchors.rightMargin: 12 - spacing: 12 + spacing: 8 + Label { + visible: !!row.it.parent + text: "└" + color: pal.text + opacity: 0.6 + font.pointSize: 11 + } ColumnLayout { Layout.fillWidth: true spacing: 0 From 219aef176a05713dc548c5eb3515c65ace04aeb9 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 15:28:56 +0200 Subject: [PATCH 36/79] fix: make steamify.sh executable on the ISO steamify-prepare.sh fetches it with curl -o, which doesn't carry the executable bit, and profiledef.sh's file_permissions never listed this path. calamares-online.sh execs it directly ("$sbin" --defaults --list) to regenerate Items.qml/items.json at boot; without +x that failed silently (stderr redirected), so items.json was never written and the Summary step's prettyStatus() override always fell back to the raw, comma-joined id list. --- archiso/profiledef.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index 7157029..a6be25b 100644 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -36,4 +36,10 @@ file_permissions=( ["/usr/local/bin/prepare-live-desktop.sh"]="0:0:755" ["/usr/local/bin/nvidia-module-loader"]="0:0:755" ["/usr/local/bin/pkexec-wrapper"]="0:0:755" + # steamify-prepare.sh writes this via curl -o, which doesn't carry the + # executable bit; calamares-online.sh runs it directly ("$sbin" --defaults + # --list) to regenerate Items.qml/items.json at boot, so without this it + # silently fails (stderr redirected) and the Steamify page/Summary step + # fall back to build-time data. + ["/usr/local/share/steamify/steamify.sh"]="0:0:755" ) From 17ecdc1a262184bd2639329362754a36abd6fd31 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 15:39:18 +0200 Subject: [PATCH 37/79] docs: update TODO with today's packagechooserq work and lessons learned --- TODO.md | 146 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 82 insertions(+), 64 deletions(-) diff --git a/TODO.md b/TODO.md index 6121a62..9e31729 100644 --- a/TODO.md +++ b/TODO.md @@ -2,73 +2,91 @@ ## Open -1. **Steamify installer page** (2026-09-28, in progress). - Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots + - `pkexec-wrapper calamares -D6` foregrounded, its own debug log): - - **`packagechooserq` (custom QML) does not exist on this Calamares - build**: only `packagechooser` is installed - (`ls /usr/lib/calamares/modules`). `SteamifyPage.qml` can't be loaded - by any real module here; confirm a module is actually installed - before writing QML/config for it again. - - **`packagechooser`, `mode: optionalmultiple`, genuinely multi-selects** - (confirmed from its actual global-storage write, not its static label - text which misleadingly says "Choose a product..." either way): - `"packagechooser@steamifypage" selected "single,gaming,theme"` — a - real comma-separated list, matching `steamify-install`'s expected - `--options` format. Global storage key: `packagechooser_steamifypage`. - - **Multi-select only works with Shift/Ctrl-click** (plain clicks - replace the selection), so it's unusable as the Steamify page and - not a fallback either. - - **Its UI doesn't look like a multi-select either** (a plain list with a - big blank preview pane, no checkboxes shown) — confirmed by the user - watching the VM live. Not good enough visually, even though it's - functionally correct. - - **Decision (the user, 2026-09-28): use `netinstall` instead**, the - module that actually renders a checkbox tree (confirmed live on the - Packages step: CachyOS Packages/shell config/base-devel/KDE-Desktop - all ticked together, real checkboxes). Not yet re-confirmed live this - session (the live session's keyboard layout flipped to Dutch after - the Welcome page's live keyboard preview, breaking `/`/`(`/`)` in - `qmptype.py`'s US-layout key map — `setxkbmap us` has no effect on - Wayland; fix the layout in the live session's own settings before - typing shell commands with those characters again). - - **Next**, from already-known Calamares internals (its `Config.cpp` - logged `"packagechooser@desktop" groups to select in netinstall - QList("KDE-Desktop")` — i.e. netinstall groups CAN be driven by - another module's choice, and/or defined directly): write a - `netinstall_steamify.conf`/groups YAML for Steamify's items (id, - name, description per group; check whether a non-package/virtual - group is possible, or whether `packages: []` with `critical: false` - is enough to make a group purely informational/no-op for pacman) from - `steamify.sh --defaults --list`, generated in `calamares-online.sh` - (same spot the abandoned Items.qml/packagechooser YAML generation - was). Read the selection back from whichever global-storage key - netinstall actually writes (`netinstallSelect`, seen in Config.cpp; - confirm the exact key/shape live) in - `shellprocess_steamify.conf`/`steamify-install`. Boot into - (gaming/desktop) still needs its own small `packagechooser`, - `mode: required` page (an either/or choice doesn't fit a checkbox - tree). - - Dead code from this session, left in the tree for now: `SteamifyPage.qml`. - - **Lessons for next time:** +1. **Steamify installer page** (2026-09-28, working end to end). + `packagechooserq` (custom QML) doesn't exist in CachyOS's own + `cachyos-calamares-next` build (`-DSKIP_MODULES=...packagechooserq...`), + so it's built out of tree against the installed Calamares headers (see + the build VM notes in the steam-machine-iso skill) and its `.so` + + `module.desc` are baked straight into `archiso/airootfs/usr/lib/calamares/ + modules/packagechooserq/` (no conflict: the package never ships that + path). `netinstall` (checkbox tree) stays as a manually-swappable + fallback (`steamify-cachyos-dev/share/sn.sh` + `nisteamify.conf`) for + when the module can't load, but isn't wired into `calamares-online.sh` + automatically yet — see the version-mismatch item below. + - **Fixed this session**: selected-row contrast (border-only highlight, + was a translucent teal fill making white text unreadable), page + background (was falling through to Calamares' white default), a + sub-option `└` marker, more right padding so the row border clears the + scrollbar, Summary step showing readable labels (packagechooserq's + `prettyStatus()` overridden, only for this module instance, to render + an HTML bullet list from a new `items.json` that `calamares-online.sh` + writes next to `Items.qml`), and a **pre-existing bug**: `steamify.sh` + on the ISO was never executable (`curl -o` in `steamify-prepare.sh` + doesn't set +x, and `profiledef.sh`'s `file_permissions` never listed + it), so `calamares-online.sh`'s direct exec of it + (`"$sbin" --defaults --list`) silently failed and `items.json` (no + static fallback) was never written — fixed by adding the path to + `file_permissions`. + - **Still open**: + - Bake the `packagechooserq` *build* into the ISO build pipeline + itself (a `build-calamares-modules.sh` step: install + `cachyos-calamares-next`, build out of tree, install into + `airootfs`) instead of committing a prebuilt `.so`, so it always + matches whatever Calamares version is current at build time. + - Version-mismatch fallback: after `calamares-online.sh`'s + `pacman -Sy cachyos-calamares-next`, check the installed version + against what the module was built for; on a mismatch, switch + `settings.conf` to the `netinstall` page instead (generate its + groups conf from `--defaults --list` there too) rather than risk an + "Initialization Failed" module. + - "Boot into gaming mode" as an opt-out sub-toggle under SteamOS + conversion (agreed with the user) isn't implemented on either page + yet — both still use the old Gaming/Desktop radio-row. + - A Python job (e.g. `steamifychoice`, before `packages@online`) to + normalize either page's choice (packagechooserq's + `packagechooser_steamifypage` GS key, or netinstall's + packageOperations markers) into one `steamifyChoice` GS key, so + `shellprocess_steamify.conf` doesn't need to know which page ran. + - **Lessons learned**: - Verify a Calamares module is actually installed - (`ls /usr/lib/calamares/modules`) before writing QML/config for it. - - Read a module's *actual* logged global-storage writes, not its UI - label text, to know what a `mode`/`method` really does. - - Both testable live in the booted ISO VM with no rebuild: edit - `/etc/calamares/modules/*.conf` + `settings.conf`, relaunch + (`ls /usr/lib/calamares/modules`) before writing QML/config for it; + `packagechooser`'s multi-select needs Shift/Ctrl-click (plain click + replaces the selection) — not usable as-is, `packagechooserq` or + `netinstall` only. + - Both pages are testable live in the booted ISO VM with no rebuild: + hot-swap `/etc/calamares/modules/*.conf` + `settings.conf` + (`share/sq.sh` / `share/sn.sh`), relaunch `pkexec-wrapper calamares -D6` in a **separate Konsole tab** (it - blocks the tab it runs in — typing into that same tab just echoes - inertly into its blocked stdin, doesn't run commands). - - Watch for the live session's keyboard layout changing away from US - (e.g. via Calamares' Welcome page keyboard preview) mid-session: - `qmptype.py` assumes US and silently sends wrong characters - (`/` → `-`, parens garbled) once it does, with no error for the - common ones. Check with a no-symbols probe (`echo test123`) after - any language/keyboard step, and fix via the live session's own - keyboard settings if needed, not `setxkbmap` (no effect on Wayland). + blocks the tab it runs in). A C++ module change needs a real + rebuild (out-of-tree, in the build VM) + redeploy of the `.so`, no + shortcut. + - The live session's keyboard layout keeps drifting to Dutch (e.g. + after Calamares' Welcome page, or after opening System Settings), + breaking `/`/`(`/`)`/`&`/`>` in `qmptype.py`'s US-layout map with no + error for the common ones (`/` → `-`) — `setxkbmap us` typed via + QMP *does* fix it (unlike the earlier Wayland claim), but check + with a no-symbols probe after any language/keyboard step regardless. + - `qmptype.py` has no key for `&` or `>` at all: a typed command using + either raises "no key for" and can leave an unterminated quote in + the shell's input buffer; send Ctrl+C before retyping. Avoid + redirection/`&&` in typed commands — write it to a file and run + `bash /media/foo.sh` instead, since a file's contents aren't typed + character-by-character. + - Send QMP keystrokes one command at a time with a beat in between; + firing several `qmptype.py` calls back-to-back can interleave with + the guest's own prompt redraw and garble the input. + - Don't screenshot-poll for VM readiness: pass `VM_SERIAL=` to + `run.sh`/`vmisoboot.sh` and grep the plain-text serial log instead + (near-zero tokens vs. repeated screenshot+image-analysis). + - The build VM's guest sshd applies OpenSSH's `PerSourcePenalties`: + repeated quick reconnect attempts within its window make `ssh`/`scp` + fail instantly with "Connection closed" (verbose: "Not allowed at + this time"), and each further attempt seems to extend the penalty + rather than reset it. Don't retry-loop through it; back off for a + while, or just restart the VM (clears its in-memory penalty state + immediately) instead of waiting it out. -2. **Check the live name**2. **Check the live name**2. **Check the live name**2. **Check the live name** (the build tree has it right: +2. **Check the live name** (the build tree has it right: `build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is From 5133323237f689fe2c9c65965851ca32dbcf0c8f Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 15:40:45 +0200 Subject: [PATCH 38/79] docs: TODO - note 2.7.0/2.8.0 are released, ISO builder already tracks latest --- TODO.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/TODO.md b/TODO.md index 9e31729..c7ab10d 100644 --- a/TODO.md +++ b/TODO.md @@ -91,12 +91,15 @@ "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`, run by mkarchiso after the packages; the airootfs copy of os-release is overwritten by a package). -3. **Steamify PR** for `feat/defaults-options` (2.7.0, `c4ec755`: - `--options`, `--boot`; also `steamify.sh --boot` on its own and the - HDMI-CEC volume fix): pushed and regression-tested in the VM (`--fremont`), - no PR yet; the user merges (never commit to main). - 2.6.0 is released. Until 2.7.0 is, build the ISO with - `steamify-prepare.sh ~/projects/steamify-cachyos` (the branch). +3. ~~Steamify PR for `feat/defaults-options`~~ — done: 2.7.0 (`--options`, + `--boot`, `steamify.sh --boot` standalone) and 2.8.0 + (`--defaults --list`, what the Steamify page's rows come from) are both + released. **The ISO builder is up to date with this**: no checkout + argument needed, `steamify-prepare.sh` (no args) and `calamares-online.sh` + at boot both just fetch the newest release, so the ISO always has 2.8.0+ + without a rebuild for a Steamify-side change alone. Only pass + `steamify-prepare.sh ` / `vmisobuild.sh --steamify ` when + testing an *unreleased* Steamify change. 4. **Build in the test VM** instead of on the Steam Machine (steam-machine-iso skill), and install the result unattended with `scripts/vminstall.sh --iso` (vm-install skill; the Calamares Steamify From ad246253c7ca3374269af93f2d903dac15c76de4 Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Mon, 28 Sep 2026 15:42:57 +0200 Subject: [PATCH 39/79] docs: move operational lessons from TODO.md into a new AGENTS.md TODO.md should stay a plain task list; the Calamares module/build gotchas, QMP-driving quirks, ISO permission pitfall and build-VM SSH flakiness notes now live in AGENTS.md instead. --- AGENTS.md | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ TODO.md | 71 ++++-------------------------------- 2 files changed, 115 insertions(+), 63 deletions(-) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..392ec16 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,107 @@ +# AGENTS.md + +Guidance for AI coding agents working on this repository (the Steam Machine +live ISO: CachyOS + the Steamify installer step). See `README.md` and +`TODO.md` for what's built and what's left; this file is operational +knowledge — how to test/build/debug it without rediscovering the same +things every session. `TODO.md` should stay a plain task list; lessons and +gotchas belong here instead. + +Full build/test workflow (VM scripts, snapshots, cache setup) lives in the +`steam-machine-iso` and `cachyos-vm-testing` skills in `steamify-cachyos-dev` +— load those first. This file is the overflow: things worth knowing that +don't fit a skill's step-by-step flow. + +## Calamares modules + +- Verify a module is actually installed (`ls /usr/lib/calamares/modules`) + before writing QML/config for it. A `.conf` file existing is not proof — + CachyOS's own `cachyos-calamares-next` build explicitly skips + `packagechooserq` (`-DSKIP_MODULES=...`). +- Read a module's *actual* logged global-storage writes (Calamares debug + log, `-D6`), not its UI label text, to know what a `mode`/`method` really + does. +- `packagechooser`'s multi-select only works with Shift/Ctrl-click (a plain + click replaces the selection) and its UI has no visible checkboxes — not + usable as the Steamify page. Use `packagechooserq` (custom QML, + qtplugin/legacy) or `netinstall` (checkbox tree) instead. +- `packagechooserq` is built out of tree against the installed Calamares + CMake config (`/usr/lib/cmake/Calamares`) with + `-DWITH_QML=ON -DQT_VERSION_SUFFIX=-qt6 -Dqtname=Qt6 -DWITH_QT6=ON`; + `find_package(KF6CoreAddons)` must come before `find_package(Calamares)` + or the build fails with "KF6::CoreAddons target not found". Its `Config` + class (and `prettyStatus()`'s raw `Install option: ` text) is shared + with the plain `packagechooser` module — override `prettyStatus()` in + `PackageChooserQmlViewStep.cpp` itself (not `Config.cpp`) to change only + this module's Summary display without affecting `packagechooser@desktop` + etc. elsewhere in the installer. +- Both `packagechooserq` (QML swap) and `netinstall` (config swap) are + testable live in a booted ISO VM with no rebuild: edit + `/etc/calamares/modules/*.conf` + `settings.conf` + (`steamify-cachyos-dev/share/sq.sh` / `sn.sh`), relaunch + `pkexec-wrapper calamares -D6` in a **separate Konsole tab** (it blocks + the tab it runs in; typing into that same tab just echoes inertly into + its blocked stdin). A C++ module change needs an actual rebuild + (out-of-tree, in the build VM) and redeploying the `.so` — no shortcut. + +## ISO permissions + +`steamify-prepare.sh` fetches `steamify.sh` with `curl -o`, which doesn't +carry the executable bit, and `archiso/profiledef.sh`'s `file_permissions` +map is the only other place permissions get fixed up on the ISO — any path +not listed there stays at whatever `curl`/`cp` gave it. `calamares-online.sh` +execs `steamify.sh` directly (not via `bash`) to regenerate `Items.qml`/ +`items.json` at boot; without +x that failed *silently* (its stderr is +redirected to `/dev/null`), so the page kept working off build-time +fallbacks with no visible error. When something the ISO downloads or copies +at build time needs to run directly (not `bash script.sh`), add it to +`file_permissions` — don't assume the source already had the right mode. + +## Driving a live/installer session via QMP + +- Don't screenshot-poll for VM readiness. Pass `VM_SERIAL=` to + `run.sh`/`vmisoboot.sh` (logs `console=ttyS0` to a plain text file) and + grep that instead — near-zero tokens vs. repeated screenshot + image + analysis. Only screenshot at real decision points (to show the user, or + to check a layout), not as a polling mechanism. +- The live session's keyboard layout keeps drifting to Dutch (e.g. after + Calamares' Welcome page's keyboard preview, or after opening System + Settings), which silently breaks `qmptype.py`'s US-layout character map + (`/` → `-`, `&`/`>` fail outright) with no error for the common + substitutions. Check with a no-symbols probe (`echo test123`) after any + language/keyboard step. Typing `setxkbmap us` via QMP does fix it. +- `qmptype.py` has no key mapping for `&` or `>` at all: a typed command + using either raises "no key for" and can leave an unterminated quote in + the shell's input buffer (symptom: the prompt shows a bare `>` + continuation). Send Ctrl+C before retyping. Avoid redirection/`&&` in + typed commands entirely — write the commands to a file on the shared + `vmtools`/`share` mount and run `bash /media/foo.sh` instead, since a + file's contents aren't typed character-by-character and have no such + limits. +- Send QMP keystrokes one command at a time with a beat (~1-2s) in between. + Firing several `qmptype.py` calls back-to-back can interleave with the + guest's own prompt redraw and garble the input (seen as commands merging + or a stray leading character). +- Calamares page Next/Back buttons move vertically as page content + grows/shrinks: re-screenshot and re-locate the button after every page + change, don't reuse a fixed y-coordinate. +- A second `pkexec-wrapper calamares -D6` while an earlier failed + instance's window is still open just prints "Calamares is already + running.": close that window first (Cancel/Afbreken, then confirm the + "really cancel?" dialog). + +## Build VM SSH flakiness + +The build VM's guest sshd applies OpenSSH's `PerSourcePenalties`: repeated +quick reconnect attempts within its window make `ssh`/`scp` fail instantly +with "Connection closed" (verbose: "Not allowed at this time"), and further +quick retries seem to extend the penalty rather than reset it. Don't +retry-loop through it — that makes it worse. Either back off for a good +while (minutes, not seconds) with zero attempts in between, or just restart +the VM, which clears its in-memory penalty state immediately and is +usually faster than waiting it out. + +Large `scp` transfers (e.g. the ~3.2GB built ISO) over this same flaky link +can report "Connection closed" while actually still having copied fully — +check the destination file's size/timestamp before assuming a real +failure, and retry the copy (it's idempotent) rather than the whole build. diff --git a/TODO.md b/TODO.md index c7ab10d..49491f4 100644 --- a/TODO.md +++ b/TODO.md @@ -2,31 +2,14 @@ ## Open -1. **Steamify installer page** (2026-09-28, working end to end). - `packagechooserq` (custom QML) doesn't exist in CachyOS's own - `cachyos-calamares-next` build (`-DSKIP_MODULES=...packagechooserq...`), - so it's built out of tree against the installed Calamares headers (see - the build VM notes in the steam-machine-iso skill) and its `.so` + - `module.desc` are baked straight into `archiso/airootfs/usr/lib/calamares/ - modules/packagechooserq/` (no conflict: the package never ships that - path). `netinstall` (checkbox tree) stays as a manually-swappable - fallback (`steamify-cachyos-dev/share/sn.sh` + `nisteamify.conf`) for - when the module can't load, but isn't wired into `calamares-online.sh` - automatically yet — see the version-mismatch item below. - - **Fixed this session**: selected-row contrast (border-only highlight, - was a translucent teal fill making white text unreadable), page - background (was falling through to Calamares' white default), a - sub-option `└` marker, more right padding so the row border clears the - scrollbar, Summary step showing readable labels (packagechooserq's - `prettyStatus()` overridden, only for this module instance, to render - an HTML bullet list from a new `items.json` that `calamares-online.sh` - writes next to `Items.qml`), and a **pre-existing bug**: `steamify.sh` - on the ISO was never executable (`curl -o` in `steamify-prepare.sh` - doesn't set +x, and `profiledef.sh`'s `file_permissions` never listed - it), so `calamares-online.sh`'s direct exec of it - (`"$sbin" --defaults --list`) silently failed and `items.json` (no - static fallback) was never written — fixed by adding the path to - `file_permissions`. +1. **Steamify installer page** (2026-09-28, working end to end; see + `AGENTS.md` for the module/build/testing details and gotchas behind + this). `packagechooserq` (custom QML) is built out of tree and baked + straight into `archiso/airootfs/usr/lib/calamares/modules/packagechooserq/`. + `netinstall` (checkbox tree) stays as a manually-swappable fallback + (`steamify-cachyos-dev/share/sn.sh` + `nisteamify.conf`) for when the + module can't load, but isn't wired into `calamares-online.sh` + automatically yet. - **Still open**: - Bake the `packagechooserq` *build* into the ISO build pipeline itself (a `build-calamares-modules.sh` step: install @@ -47,44 +30,6 @@ `packagechooser_steamifypage` GS key, or netinstall's packageOperations markers) into one `steamifyChoice` GS key, so `shellprocess_steamify.conf` doesn't need to know which page ran. - - **Lessons learned**: - - Verify a Calamares module is actually installed - (`ls /usr/lib/calamares/modules`) before writing QML/config for it; - `packagechooser`'s multi-select needs Shift/Ctrl-click (plain click - replaces the selection) — not usable as-is, `packagechooserq` or - `netinstall` only. - - Both pages are testable live in the booted ISO VM with no rebuild: - hot-swap `/etc/calamares/modules/*.conf` + `settings.conf` - (`share/sq.sh` / `share/sn.sh`), relaunch - `pkexec-wrapper calamares -D6` in a **separate Konsole tab** (it - blocks the tab it runs in). A C++ module change needs a real - rebuild (out-of-tree, in the build VM) + redeploy of the `.so`, no - shortcut. - - The live session's keyboard layout keeps drifting to Dutch (e.g. - after Calamares' Welcome page, or after opening System Settings), - breaking `/`/`(`/`)`/`&`/`>` in `qmptype.py`'s US-layout map with no - error for the common ones (`/` → `-`) — `setxkbmap us` typed via - QMP *does* fix it (unlike the earlier Wayland claim), but check - with a no-symbols probe after any language/keyboard step regardless. - - `qmptype.py` has no key for `&` or `>` at all: a typed command using - either raises "no key for" and can leave an unterminated quote in - the shell's input buffer; send Ctrl+C before retyping. Avoid - redirection/`&&` in typed commands — write it to a file and run - `bash /media/foo.sh` instead, since a file's contents aren't typed - character-by-character. - - Send QMP keystrokes one command at a time with a beat in between; - firing several `qmptype.py` calls back-to-back can interleave with - the guest's own prompt redraw and garble the input. - - Don't screenshot-poll for VM readiness: pass `VM_SERIAL=` to - `run.sh`/`vmisoboot.sh` and grep the plain-text serial log instead - (near-zero tokens vs. repeated screenshot+image-analysis). - - The build VM's guest sshd applies OpenSSH's `PerSourcePenalties`: - repeated quick reconnect attempts within its window make `ssh`/`scp` - fail instantly with "Connection closed" (verbose: "Not allowed at - this time"), and each further attempt seems to extend the penalty - rather than reset it. Don't retry-loop through it; back off for a - while, or just restart the VM (clears its in-memory penalty state - immediately) instead of waiting it out. 2. **Check the live name** (the build tree has it right: `build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say From 62402ce4c886f2e9277c063d11e98f173b9c30b9 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Mon, 28 Sep 2026 16:41:06 +0200 Subject: [PATCH 40/79] feat: packagechooserq is built with the ISO (build-calamares-modules.sh) instead of a committed .so; the Steamify page is left out when Calamares' version differs from the one it was built for --- .gitignore | 1 + TODO.md | 27 +++++----- ...libcalamares_viewmodule_packagechooserq.so | Bin 442600 -> 0 bytes .../modules/packagechooserq/module.desc | 7 --- .../usr/local/bin/calamares-online.sh | 15 +++++- build-calamares-modules.sh | 49 ++++++++++++++++++ 6 files changed, 78 insertions(+), 21 deletions(-) delete mode 100755 archiso/airootfs/usr/lib/calamares/modules/packagechooserq/libcalamares_viewmodule_packagechooserq.so delete mode 100644 archiso/airootfs/usr/lib/calamares/modules/packagechooserq/module.desc create mode 100755 build-calamares-modules.sh diff --git a/.gitignore b/.gitignore index 4366873..fae11cb 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ archiso/airootfs/usr/lib/libboost_* archiso/airootfs/etc/steammachine-iso-build archiso/airootfs/usr/lib/modules/ archiso/airootfs/etc/modules-load.d/steamify-fremont-poweroff.conf +archiso/airootfs/usr/lib/calamares/modules/packagechooserq/ diff --git a/TODO.md b/TODO.md index 49491f4..5d59864 100644 --- a/TODO.md +++ b/TODO.md @@ -4,24 +4,19 @@ 1. **Steamify installer page** (2026-09-28, working end to end; see `AGENTS.md` for the module/build/testing details and gotchas behind - this). `packagechooserq` (custom QML) is built out of tree and baked - straight into `archiso/airootfs/usr/lib/calamares/modules/packagechooserq/`. + this). `packagechooserq` (custom QML) is built with each ISO by + `build-calamares-modules.sh` into `archiso/airootfs/usr/lib/calamares/modules/packagechooserq/`. `netinstall` (checkbox tree) stays as a manually-swappable fallback (`steamify-cachyos-dev/share/sn.sh` + `nisteamify.conf`) for when the module can't load, but isn't wired into `calamares-online.sh` automatically yet. - **Still open**: - - Bake the `packagechooserq` *build* into the ISO build pipeline - itself (a `build-calamares-modules.sh` step: install - `cachyos-calamares-next`, build out of tree, install into - `airootfs`) instead of committing a prebuilt `.so`, so it always - matches whatever Calamares version is current at build time. - - Version-mismatch fallback: after `calamares-online.sh`'s - `pacman -Sy cachyos-calamares-next`, check the installed version - against what the module was built for; on a mismatch, switch - `settings.conf` to the `netinstall` page instead (generate its - groups conf from `--defaults --list` there too) rather than risk an - "Initialization Failed" module. + - The Summary step shows raw ids ("Install option: gaming,theme,...") + for the Steamify page: the `prettyStatus()` override described in + `AGENTS.md` (labels from `items.json`) was never in the committed + `.so` (it has no `items.json` string) and its source is lost. Add it + as a patch that `build-calamares-modules.sh` applies to + `PackageChooserQmlViewStep.cpp`. - "Boot into gaming mode" as an opt-out sub-toggle under SteamOS conversion (agreed with the user) isn't implemented on either page yet — both still use the old Gaming/Desktop radio-row. @@ -54,6 +49,12 @@ ## Done +- **packagechooserq built with the ISO** (2026-09-28): + `build-calamares-modules.sh` builds it in the build container/VM from + CachyOS's Calamares source against the current `cachyos-calamares-next` + (no prebuilt `.so` in git), with `built-for`; `calamares-online.sh` leaves + the Steamify page out when the Calamares it runs differs (the step then + installs everything on) instead of risking "Initialization Failed". - **Steamify 2.6.0** released (`--defaults`, install-time mode). - **Live session** (VM, `--fremont`): Vapor look and layout (Steam Deck wallpaper) at the live login; the power-off module is built for both ISO diff --git a/archiso/airootfs/usr/lib/calamares/modules/packagechooserq/libcalamares_viewmodule_packagechooserq.so b/archiso/airootfs/usr/lib/calamares/modules/packagechooserq/libcalamares_viewmodule_packagechooserq.so deleted file mode 100755 index 6db516dbe4b6dda97645f19636410720ce43d842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442600 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 vwd}IR0o@wbbqK z08n5#_gG9Qm8j7>RVfl;I9UK8&bpbJPS@&$E$M$ilret_!iNX>-8zW*z~NGvqyCD} z^10p}ZM`V7+o|reYh}gCAKg_A6n743U%qpAG=xz4 zZeDqN;jw^V6-of__pa5c`f2BX|Na*P|BHeD#lZh!;QvhwOrCMr_;FLmO&d3}x%IHo zQ`;__JpH6`>B%#uw;oq9dffOa<1TD&tvFR*__x~Ao2NF9SBVN&aNN|2navlsO`h32p_nqQ zZEAXQ%hcv#PBG!K=9x1NoiX!J)i`t9gvm21TAR}qQR=iAGn*^OQVIJ#wfVwv<1eik z-`1L*F|A_!jOpp-+3B`%Q(I=v7~kC5TG0}LIK4SN*};G4xC!*J^xA6hRoIj z)&xDEMqk#ZXMhLmdBtg|$*t*%LuzB64=bz8^}S-u^eNM4%;K^W*ZTNLGiJ0l&#ax+ zoSrmeLdCQh6Phc=v`(IWVJ$z~rZ(3mM^sEsH&1Jga5&t5&^$fOpiFM9oz7rfGH&YR z35QiQPn`Uv=~FMQIK1`J*25=Go;ht6<9Il!`gh5=nXM{6gA%n9XUwb}c~Y{Lf~x$m zik7M4(j-o+7}wG=VO)A#yrj}v(=(gLO{+-F7&oDLLaiUq2$ors(~~L$&}68lVnXx8 zag1SvB??Ujc~i$-&^)!Zg63K(rjMJ}OtIGSGbbCpRPd|0d3x)l8R;1MAe~yqYC_xi zbob5+BNdazwbqWCUfVpaC4FhFsys|z#H!WTmrMrU!zzv$K4bdC$rn}}adbK8r%juB z=H%vCrwc0m9eKou=0|+cBV+H@V{XrxRbj} zApYsQWBJ#Ye<}XyuaSR(|7`v#gxd`MvA{Ql{Z9r#i9Iy!}&L!dL~;7h!pZJ^ewgU#rTRT{=4zOJ%j)0 ztCN$q7VG0BR(qBZc<@4TgwZ|hTXH38Fiw6!q{&4@(J{mo>d0cCAZOi2GQ)a)03KOr!sdOR(l4&qB*8mX4Yh;)eD-Vc}BvFKTXE9j&P4Vu1ylVdDPSy z7mS;F`u`#9E5PDdwsi*ygF}$ulHd-3;7)=&!94^Sf(-5!++BhNg1f`u4haNz83uQE z=aIelx%Zs!-uK?j*FD|UtE#Kks`~#`GTqNy{mi@c&vfVDNU5UsjLA0Uf2fI;f%31g zzsn$F^XKF__!+hTMMab*e<8I4B?}AXCtF90KMZ7Q^$f9}DgO|Xl_|^LnR}*hN)?5_ zTh%k*{x@Ad=kX7P82=&oXNGZlj`)XX{@l^r-qs21@P{w|PUBhh-y%K_huQo^VU&vh z#l3&iCFLJ3`Xg-qSLrC9sr*mzSSeLapSk~;w$1-i$Nyg+|519tGYdO7fx))+&usob z3-=EaJgej1sF{-PpSJ4o2ZNkJ_J3Rn%Kxy#bB_KtiIe?bI#4hM|H}><#`Yj%8^`Am zT82OR_$!{-vuPFn=$QVWr2p9IuK-5ozl}wy@=wISEeQBSaEyPs1B`#E_CMj{AD7{e zM*i^hA1C5}3Orl%uLS_XWo@n7#yp=h|0VZ_y#8$e`h@&- z00%(GQhAQ@FWEoP^Ct!Pjo1Gc`ZsJor~9J!-$MTq{a<&u@KQ31|4%rydxr79p&bc` z;MM&MWB(1u*jP7T=>ETujD;Rc1^f#DKm7%)w$FrN_MDE%Gid&y2=Fs(qoN8|OFbX` z0aJ&+?(m<0{=a7aPvDDA`Z~4;qZG2v zV)lvqui}=}=t-0b6GkdCn0I2o`$cUNM#?VF6iD|*YEKK_<5BxjF{?pC4!xvck+y&p>m_E6omKLuVt!n*IL0;ZV zbRr}M>9RM9kOHlRD2buB=e;g^rBL;RS%Hef+{MA_d%0o<^w-0O#*acvWnbs* z4Gim3q4QFZL!n?VME5+EyAKN>yNZEnrWBvl-X`nI+;me@djIsm557WgWC$!!si(sT z@ZM?C=%RBI55bwgMfxs2s`Bl_wXt;}-V2U{GP;c)^VTP78*i<@!P_(-sZ@cP0fTf) z4U-674 zl>SDzpum-FG5aeU_jYY6R3qHCGR)X>;^|i;3MIqzi{GziF z^1K-M69r@x_(#E9pgIEW)BL$~-roh&+iqoaESGZX1ars(eue((T+Mq8p=#+n~`^>RnSZ%E` z8PeWE`uw8E`J#P4BD3s}pIt*{HFG`5)3lbMCW?U^(V%`6&%ArMjox7=QUU+E4B-gF z^4z7%-7hDWNXWsSg=_@&2$Pi>BvAbzUst%l!-5Te7Tt>3t{C2kB_whGa%60eNi2J~ zg6n;-=20j<*s0LtW!oFlwg>Xuedkt+*zzFi2O9=sDT$zIJ#=aF5d8TqiagT%r7dB& z%ZkSr7T}(Y53wKw#0%aN(0ReQi=7-Wot1A5#hrgzAsb($)D)?cj5|b6G5?)1AM6bJ zKzYic#|1kj=3C)X|0*(jDnpEWTOSWe)$ zTXIXL->P$zJ-fE`!l{=lVePOgJoaM!R8)xU}+mV)y7sy{Gj0pKaScH*#8U9&D z4V~I|)j&KslYmt8o*xF=aWn%RrD$?QPwUQtCPEO_;!7-Dr--G1eOfd5hiz8$>qEVd6BW0bxfc{|F)*`{4T}$%VFs=YR-wcUz4JE zfkeGUoK-JM)|dvt+pjer&_gbhUuuct#YA(V3*-WLeBHXr$!IY_t9NoJR0N@XPhKL_ z%!VQUwv@H!)g$Xw`C%STx5%Pm{9nHZM%xGYxJZ3eG11`yz{9jcl@+BhP>KKatuSPy z->W_|=5r4j&Jg)e&uSR%1p0hp50a2j2AP-u0Q9j=u|jg)%6LJr`mj$-WW|)LG1*}f zXdgb1)?w<0CFpb(%h{*ZipK?|;W3nd4VUN?b3FNSOtH-fVMPA=CWQAI?OrFh$01ET zyq0b;J@_i~3VhV)D^kYUeJBG6+BvpjWGLI5$!&AF#_nM^!;bxC&GPvz$T9M}RB^s* zNVoxXk6*GfYaadh0(azXxIoWY&kjpJPK%UakF34lbpUVQj&DzcxTc^tuHN~z9Q%kV z0bKhw1O9>*$V6im>4e&Da+ImmjodCi#?Nz1^d;)HkO>bH&`dl#QZCZ_WXS`M?RNAGr*5~3H7h~XS?^BUH^#J~E zl=fKYr5-hwhimsJKdmQlp>V-c9f(uGJdc1~0t-N*_dBa+BcOn#wH*KewC6b-G#t2b zsP{bpKnaj}FZR(DZogGK!c@i`M&Q!kIAfr%4xL(%SF)`+XHI_|ybyCfiXbh4PLJ}H zTJ0^m1bit_wJ7~CjT5M!!^JTx9~WE!@(a*QGg>>wVBV;&%M!_B-#%(LdO4yNUHI`f#zy!zDt zUITdK>3OgE_4Lu>LLnz8>fCN=G(-f+N9m2DJkq+OkxP1xMH-J(l~woK17V-CJiQ-bYwKfQ5}ueup(t^OR*T-&e5b zgtOh6apo-3nsd`PXUUYIfCZ-c;2ZQ!Q60@458}bYT7SpI7S5*pY+#E(c8d_@K%0A` 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°aWJnJM~px__66UDt~6JdoW|pOge-o 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