From c02876577142c7f6a9506f3059bebcc55a617b43 Mon Sep 17 00:00:00 2001 From: Rob Zolkos Date: Thu, 2 Jul 2026 15:52:54 -0400 Subject: [PATCH 1/2] docs: note Termux/Android SIGSYS crash and build-from-source workaround MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prebuilt binaries and 'go install @latest' crash on startup on Termux with SIGSYS: bad system call. A transitive dependency (atotto/clipboard, via the TUI's bubbles textinput) calls exec.LookPath in its package init(), and Android's seccomp kills the resulting faccessat2 syscall before main runs. There is no go-install-safe local fix (a replace directive would make 'go install @latest' error for everyone; the latest bubbles still imports clipboard). Document the working path — building from source with Termux's patched Go toolchain — until the upstream clipboard init is made lazy. --- install.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/install.md b/install.md index e667e0aa..f64dabe4 100644 --- a/install.md +++ b/install.md @@ -157,3 +157,23 @@ basecamp auth logout && basecamp auth login ```bash basecamp auth login --scope full ``` + +**Termux / Android (`SIGSYS: bad system call` on startup):** + +On Termux, the prebuilt binaries and `go install …@latest` crash immediately — +even `basecamp --help` — with `SIGSYS: bad system call`. A transitive +dependency probes for clipboard tools in its package initializer, and Android's +seccomp policy kills the resulting `faccessat2` syscall before the program +starts. Building from source with Termux's own Go toolchain avoids the blocked +syscall: + +```bash +pkg install golang git +git clone https://github.com/basecamp/basecamp-cli +cd basecamp-cli +go build -o basecamp ./cmd/basecamp # or: make build → bin/basecamp +``` + +Then move the `basecamp` binary onto your PATH. Requires Go 1.26+; if your +Termux Go is an earlier patch release, lower the `toolchain`/`go` line in +`go.mod` to match the version you have installed. From fc2d89a7572d092fdc080792f7a9190a42170677 Mon Sep 17 00:00:00 2001 From: Rob Zolkos Date: Thu, 2 Jul 2026 15:58:28 -0400 Subject: [PATCH 2/2] =?UTF-8?q?docs:=20address=20review=20=E2=80=94=20show?= =?UTF-8?q?=20full=20go=20install=20command,=20drop=20nonexistent=20toolch?= =?UTF-8?q?ain=20line?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace the elided 'go install …@latest' with the full copy-pasteable command. - go.mod has no toolchain directive (only a go line), so reference just the go line. --- install.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/install.md b/install.md index f64dabe4..e6b07448 100644 --- a/install.md +++ b/install.md @@ -160,8 +160,9 @@ basecamp auth login --scope full **Termux / Android (`SIGSYS: bad system call` on startup):** -On Termux, the prebuilt binaries and `go install …@latest` crash immediately — -even `basecamp --help` — with `SIGSYS: bad system call`. A transitive +On Termux, the prebuilt binaries and +`go install github.com/basecamp/basecamp-cli/cmd/basecamp@latest` crash +immediately — even `basecamp --help` — with `SIGSYS: bad system call`. A transitive dependency probes for clipboard tools in its package initializer, and Android's seccomp policy kills the resulting `faccessat2` syscall before the program starts. Building from source with Termux's own Go toolchain avoids the blocked @@ -175,5 +176,5 @@ go build -o basecamp ./cmd/basecamp # or: make build → bin/basecamp ``` Then move the `basecamp` binary onto your PATH. Requires Go 1.26+; if your -Termux Go is an earlier patch release, lower the `toolchain`/`go` line in -`go.mod` to match the version you have installed. +Termux Go is an earlier patch release, lower the `go` line in `go.mod` to +match the version you have installed.