Commit 9fde591
fix(/): remove chmod blockers + broken less invoke from at-/ entries
MiOS = mios.git overlaid at /. The operator-facing entries are at
the root: ./install.sh, ./mios-pipeline.sh, just build, etc. Two
bugs were blocking those entries from running cleanly inside
MiOS-DEV after the quadlet-overlay seed populates /:
1. `just build` -> preflight recipe -> "chmod +x tools/preflight.sh"
-> "Operation not permitted" when the operator (mios) isn't the
file owner. Files at / are checked out by quadlet-overlay-seed
running as root in the systemd-nspawn, so they're root-owned.
Mios runs `just build`, hits chmod EPERM on a root-owned file,
recipe aborts.
The chmod was redundant anyway: tools/preflight.sh,
tools/flight-control.sh, and tools/mios-overlay.sh are ALL
stored in git's index as mode 100755 (executable). After
`git reset --hard FETCH_HEAD` they're already +x; chmod is a
no-op... that fails for non-owners. Removed all 5 chmod lines.
Verified with `git ls-files -s tools/preflight.sh
tools/flight-control.sh tools/mios-overlay.sh`:
100755 6c5b115... tools/preflight.sh
100755 9e8c28b... tools/flight-control.sh
100755 4735f72... tools/mios-overlay.sh
2. `./install.sh` -> agreements banner -> less -> "Missing filename
("less --help" for help)" abort.
The renderer in automation/lib/agreements-banner.sh was:
mios_agreement_summary | less -RFXK <"$tty_in" >"$tty_out"
The `<"$tty_in"` REPLACES the pipe's stdin with /dev/tty (a
TTY, not piped data). less sees no filename arg AND no piped
input, aborts. The intent was "read content from pipe, keyboard
from /dev/tty" -- less does that automatically when stdin is a
pipe. No `<` redirect needed.
After this commit:
* `just preflight` works as mios (no sudo, no chmod EPERM)
* `just build` proceeds past preflight
* `./install.sh` renders the agreement banner cleanly, then
hits its own EUID guard ("must run as root: sudo $0") which
is correct behavior for a phase-3 system installer
* `./mios-pipeline.sh` (the canonical operator entry per
install.sh's v0.2.4+ NOTICE) gets the same fix free
Both fixes are at /-level operator entries. The deeper question
(should mios.git tracked files be mios-owned at /?) is a separate
design discussion and not touched here -- this commit is just to
unblock the entries that were already designed to work as mios.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent 9878b41 commit 9fde591
2 files changed
Lines changed: 10 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | 37 | | |
39 | 38 | | |
40 | 39 | | |
41 | 40 | | |
42 | | - | |
43 | 41 | | |
44 | 42 | | |
45 | 43 | | |
46 | 44 | | |
47 | | - | |
48 | 45 | | |
49 | 46 | | |
50 | 47 | | |
51 | 48 | | |
52 | | - | |
53 | 49 | | |
54 | 50 | | |
55 | 51 | | |
56 | 52 | | |
57 | | - | |
58 | 53 | | |
59 | 54 | | |
60 | 55 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
175 | 175 | | |
176 | 176 | | |
177 | 177 | | |
178 | | - | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
179 | 188 | | |
180 | 189 | | |
181 | 190 | | |
| |||
0 commit comments