docs: TODO correction - packagechooser mode:optionalmultiple works for the Steamify page, confirmed from global storage; no netinstall detour needed

This commit is contained in:
theupriser committed 2026-09-28 13:30:22 +02:00
1 parent 161c037600
commit 6b69c1f619
1 file changed
+45 -40
+45 -40
View File
@@ -2,50 +2,55 @@
## Open ## Open
1. **Steamify installer page** (2026-09-28, confirmed dead end, next: netinstall). 1. **Steamify installer page** (2026-09-28, in progress; working path found).
Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots): 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 - **`packagechooserq` (custom QML) does not exist on this Calamares
build.** `cachyos-calamares-next` ships `packagechooserq.conf` as a build.** `cachyos-calamares-next` ships `packagechooserq.conf` as a
vestigial config file, but no `.so`: `/usr/lib/calamares/modules/` vestigial config file, but no `.so`: `/usr/lib/calamares/modules/`
only has `packagechooser` (no q). Calamares refuses to start only has `packagechooser` (no q). Calamares refuses to start ("Module
("Module ... not found in module search paths"). So `SteamifyPage.qml` ... not found in module search paths"). So `SteamifyPage.qml`
(app-styled switches) **cannot be loaded as a real module** on this (app-styled switches) is dead: no module can load it here. Before
ISO; don't retry it without first confirming the module is installed trying custom QML again, confirm the module is installed
(`pacman -Ql cachyos-calamares-next | grep viewmodule`, or (`ls /usr/lib/calamares/modules`, `pacman -Ql cachyos-calamares-next
`ls /usr/lib/calamares/modules` in the live session) before building. | grep viewmodule`) in a live session first.
- **`packagechooser` (the real, installed module), `method: legacy`, is - **`packagechooser`, `mode: optionalmultiple`, DOES support real
single-choice regardless of `mode`.** Tested `mode: optionalmultiple` multi-select**, confirmed from the Calamares debug log's actual
live: renders as "Choose a product from the list. The selected global-storage write (not from its static label text, which
product will be installed." — a single-select list, not checkboxes. misleadingly reads "Choose a product... the selected product will be
This matches the pre-session finding that started this whole redesign installed" in both single- and multi-select modes):
(the very first packagechooser-based skip/boot pages had the same `"packagechooser@steamifypage" selected "single,gaming,theme"` — a
single-select bug). So going back to plain `packagechooser` for genuine comma-separated list, matching exactly the CSV format
Steamify's options does **not** give real multi-select either. `steamify-install` already expects for `--options`. This is the
- **`netinstall` is the one module that genuinely renders checkboxes** `Config::updateGlobalStorage(const QStringList&)` overload (plural),
for multiple simultaneous selections (confirmed live on the Packages distinct from the single-choice `m_packageChoice` path. So the
step: CachyOS Packages, shell config, base-devel, KDE-Desktop all **native, installed `packagechooser` module is the working page**;
ticked together, a real QTreeView-with-checkboxes widget). Next no netinstall detour needed.
attempt: a `netinstall`-based page for Steamify's options (custom - Global storage key: `packagechooser_steamifypage` (module instance
`netinstall.yaml`/groups data instead of real packages; the choice id), value the comma-separated selected item ids.
goes to global storage as `netinstallSelect`, which - **Next:** generate `packagechooser_steamifypage.conf`'s `items:` list
`shellprocess_steamify.conf` would read instead of from `steamify.sh --defaults --list` (in `calamares-online.sh`, same
`packagechooser_steamifypage`). Verify the exact global-storage key spot as the abandoned Items.qml generation) instead of the QML
and whether netinstall's groups mechanism can host non-package items approach; check whether per-item `selected: true` (or similar) exists
before building anything. for defaulting everything on, or whether "everything on by default"
- **Lesson for next time (the user's point):** check a Calamares module needs a different mechanism (e.g. Steamify's own `--options` default
is actually installed/available (`ls /usr/lib/calamares/modules`, when the page reports nothing chosen). Boot into (gaming/desktop)
`pacman -Ql cachyos-calamares-next`) and test the page live by editing still needs its own answer: a separate small `packagechooser`
`/etc/calamares/settings.conf` + the module's `.conf` in a running `mode: required` page (two items), since optionalmultiple's list
live session (`pkexec-wrapper calamares -D6`, no full ISO rebuild doesn't suit an exclusive either/or choice.
needed) *before* spending a 13+ minute ISO build on it. - Dead code from this session, left in the tree for now:
- Steamify-side work from this session (kept, still valid once a real `SteamifyPage.qml`, `Items.qml`'s QML-singleton shape (its JSON
page module is found): `steamify.sh --defaults --list` (2.8.0, *content*, generated by `--defaults --list`, is still exactly what's
released) and `calamares-online.sh`'s newest-steamify.sh-before-install needed for the new plain-YAML `items:` list, just not as a QML file).
fetch. `SteamifyPage.qml`/`Items.qml`/`Theme.qml` copies are dead code - **Lesson for next time:** verify a Calamares module is actually
until/unless `packagechooserq` becomes available; left in the tree for installed before writing QML/config for it, and read a module's
now, not referenced by any working settings.conf sequence. *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 `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`, "Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`,
run by mkarchiso after the packages; the airootfs copy of os-release is run by mkarchiso after the packages; the airootfs copy of os-release is