fix(install): make install.sh POSIX-compatible under dash (#12, dit-operator#362) #13

Merged
jsutter merged 1 commit from fix-install-posix into main 2026-08-18 02:35:43 +00:00
Owner

Replaces set -euo pipefail with POSIX set -eu + guarded pipefail enable. Fixes the | sh -s -- failure on Debian 12 (dash 0.5.11: set: Illegal option -o pipefail, exit 2) that broke the e2e T0 install-smoke scenario.

Resolves:

  • dit-releases #12 (closed without the fix landing)
  • dit-operator #362 (e2e feedback report, same root cause)

Verification: syntax-clean under bash + dash 0.5.13.3; idiom safe under set -e (failed left-of-&& does not abort — confirmed under dash + bash). Could not reproduce the Debian-12/dash-0.5.11 failure locally (nixpkgs dash 0.5.13.3 supports pipefail; posh not packaged); fix verified by construction + clean-run checks. The e2e harness on Debian 12 is the authoritative re-test.

Merging updates the live install.sh served from main (raw branch URL) — no release cut needed for the script itself.

Replaces `set -euo pipefail` with POSIX `set -eu` + guarded pipefail enable. Fixes the `| sh -s --` failure on Debian 12 (dash 0.5.11: `set: Illegal option -o pipefail`, exit 2) that broke the e2e T0 install-smoke scenario. Resolves: - dit-releases #12 (closed without the fix landing) - dit-operator #362 (e2e feedback report, same root cause) Verification: syntax-clean under bash + dash 0.5.13.3; idiom safe under `set -e` (failed left-of-`&&` does not abort — confirmed under dash + bash). Could not reproduce the Debian-12/dash-0.5.11 failure locally (nixpkgs dash 0.5.13.3 supports pipefail; posh not packaged); fix verified by construction + clean-run checks. The e2e harness on Debian 12 is the authoritative re-test. Merging updates the live `install.sh` served from `main` (raw branch URL) — no release cut needed for the script itself.
install.sh used 'set -euo pipefail', which fails under dash (Debian 12's
/bin/sh) with 'sh: 2: set: Illegal option -o pipefail' (exit 2) when piped
via '| sh -s --'. Replace with POSIX 'set -eu' plus a guarded pipefail
enable that is a no-op on shells lacking pipefail (dash) and active on
shells supporting it (bash/ksh/zsh). Direct execution keeps the stronger
pipefail guarantee.

dit-releases #12 was closed without the fix ever landing; dit-operator #362
(e2e T0 install-smoke feedback report) is the same root cause resurfacing.

Verified: syntax-clean under bash and dash; idiom safe under set -e
(failed left-of-&& does not abort). Could not repro the Debian-12/dash-0.5.11
failure locally (nixpkgs dash 0.5.13.3 supports pipefail); e2e harness is
the authoritative re-test.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
deepnet/dit-releases!13
No description provided.