feat: complete pine live ISO build (supersedes #7) - #87
Open
YuseiIto wants to merge 7 commits into
Open
Conversation
Bring the abandoned feature/live-image work (PR #7) up to date with main and fix the issues that were keeping it from completing. Conflict resolutions (main superseded several of the branch's changes): - arm-none-eabi-gcc, flatcam, neovim: keep main's versions, which already adopt the `unsupported_platform!` helper and lazy.nvim (the branch's `raise`/PackerSync edits are now obsolete). - opencode/goss.yaml: keep main's more lenient 30s timeout. - Makefile: take the branch version, which restores the dry-run-* targets that main's .PHONY still references, and adds the live-* targets. Fixes to make the build pass: - gum: install ca-certificates/curl/gnupg before `gpg --dearmor` (the minimal Ubuntu base image ships none of them, which broke the pine image build), and fail loudly via `unsupported_platform!` per cookbook policy. - installer: run package installs and the remote_file as root, and replace the silent `return unless` with `unsupported_platform!` to match the documented platform-handling policy. - pine role goss: validate the new gum and installer cookbooks. - Makefile: fix the dry-run target to use `mitamae local --dry-run` (`mitamae dry-run` is not a valid subcommand). Verified: rubocop (102 files) clean, `mitamae local --dry-run` for pine exits 0, shellcheck passes on the new live/installer scripts, and the Ubuntu 24.04.4 ISO checksum matches the upstream SHA256SUMS. https://claude.ai/code/session_01Ls6HsbKTARBr9f3WqvyBjp
mitamae's `remote_file` does not honour `user 'root'` for the privileged temp-file staging: it writes the staging file as root under /tmp and then fails to read it back as the unprivileged mitamae process, aborting both the pine Docker and LXC builds with `Permission denied - open /tmp/... (Errno::EACCES)`. Place the script with a root `execute` running `install -m 0755`, mirroring how docker/Dockerfile.pine installs entrypoint.sh, with a `cmp -s` guard for idempotency. https://claude.ai/code/session_01Ls6HsbKTARBr9f3WqvyBjp
gum exposes its version via a kong `--version` flag, not a `version` subcommand (`gum version` hits the unrelated semver `version-check` path and exits 80), failing the pine goss validation. Use `gum --version`, matching gum's CLI and this repo's other version checks. https://claude.ai/code/session_01Ls6HsbKTARBr9f3WqvyBjp
Resolve Makefile conflict: keep main's improved shellcheck recipe (git ls-files '*.sh' plus SHELLCHECK_EXTRA_FILES) while preserving the PR's restored dry-run-* targets (fixed to use `mitamae local --dry-run`) and the new live-build/live-clean/clean targets. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TrRATT5iddBGamRguEY82U
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes the abandoned
feature/live-imagework (#7): builds thepineprebuilt live USB image by remastering the official Ubuntu Desktop 24.04 ISO,
adds the
gumandinstallercookbooks, and wires up theBuild Live ISOworkflow.
Rebased on top of the latest
mainand fixed the issues that were keepingthe branch from completing. Supersedes #7 (which can be closed).
Conflict resolutions (main had superseded several of the branch's changes)
arm-none-eabi-gcc,flatcam,neovim: kept main's versions, which alreadyadopt the
unsupported_platform!helper and lazy.nvim — the branch'sraise/PackerSync edits are now obsolete.opencode/goss.yaml: kept main's more lenient 30s timeout.Makefile: took the branch version, restoring thedry-run-*targets thatmain's
.PHONYstill references, plus the newlive-*targets.Fixes to make the build pass
ca-certificates/curl/gnupgbeforegpg --dearmor(the minimal Ubuntu base image ships none of them, which broke the pine
image build), and fail loudly via
unsupported_platform!per cookbook policy.remote_fileasroot, andreplace the silent
return unlesswithunsupported_platform!to match thedocumented platform-handling policy.
gumandinstallercookbooks.mitamae local --dry-run(
mitamae dry-runis not a valid subcommand).Type of Change
.config/,.zshrc, etc.)Platforms Tested
Checklist
bundle exec rubocoppasses (102 files, no offenses)not_if/only_ifguardsonly_if/not_if) are in place where neededdocs/LIVE_IMAGE.md)Verification performed
rubocopovermitamae/: 102 files, no offensesmitamae local --dry-runfor thepinerole: exit 0 (confirms recipes parseand that
remote_file ... user 'root'is accepted)shellcheckonlive/remaster.sh,live/customize-chroot.sh,mitamae/cookbooks/installer/files/yuseiito-dev-install.sh: cleanlive/remaster.shmatches upstreamSHA256SUMShttps://claude.ai/code/session_01Ls6HsbKTARBr9f3WqvyBjp
Generated by Claude Code