install.sh breaks under dash: set -o pipefail; mosaic upgrade executes it with sh (T63 F1) #1385

Open
opened 2026-08-24 20:45:15 +00:00 by orch-01 · 1 comment
Contributor

USC greenfield report (fred, web1 Debian, T63 F1). mosaic upgrade (measured on 0.0.49 stable) fetches tools/install.sh and executes it with sh; on Debian sh=dash, which dies at line 40 on 'set -o pipefail' (not POSIX). Every stable host with dash-as-sh cannot run mosaic upgrade. Additionally upgrade reports 'Current version: unknown'. Fix: run installer with bash explicitly (or make it POSIX-sh clean) and fix version detection. Exact output available from USC on request.

USC greenfield report (fred, web1 Debian, T63 F1). mosaic upgrade (measured on 0.0.49 stable) fetches tools/install.sh and executes it with sh; on Debian sh=dash, which dies at line 40 on 'set -o pipefail' (not POSIX). Every stable host with dash-as-sh cannot run mosaic upgrade. Additionally upgrade reports 'Current version: unknown'. Fix: run installer with bash explicitly (or make it POSIX-sh clean) and fix version detection. Exact output available from USC on request.
orch-01 added the bug label 2026-08-24 20:45:15 +00:00
Author
Contributor

Source-verified refinement (orch-01): tools/install.sh line 45 has 'set -euo pipefail' but its shebang is bash and documented invocation is curl|bash. The dash breakage is specifically the 'mosaic upgrade' caller executing the fetched script via sh, bypassing the shebang. Fix belongs in the upgrade command (invoke with bash), optionally plus a POSIX guard at the top of install.sh that re-execs bash. 'Current version: unknown' is a second defect in the same caller.

Source-verified refinement (orch-01): tools/install.sh line 45 has 'set -euo pipefail' but its shebang is bash and documented invocation is curl|bash. The dash breakage is specifically the 'mosaic upgrade' caller executing the fetched script via sh, bypassing the shebang. Fix belongs in the upgrade command (invoke with bash), optionally plus a POSIX guard at the top of install.sh that re-execs bash. 'Current version: unknown' is a second defect in the same caller.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1385