docs: note Termux/Android SIGSYS crash and build-from-source workaround#515
Merged
Conversation
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.
There was a problem hiding this comment.
Pull request overview
Adds Termux/Android-specific troubleshooting guidance to help users work around a startup SIGSYS: bad system call crash by building from source with Termux’s Go toolchain.
Changes:
- Documented the Termux/Android
SIGSYSstartup crash scenario (including likely cause). - Added a build-from-source workaround for Termux users in the Troubleshooting section.
Tip
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
There was a problem hiding this comment.
1 issue found across 1 file
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
… toolchain line - 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.
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.
Addresses #506.
What
Adds a Troubleshooting entry to
install.mdfor Termux/Android, where the prebuilt binaries andgo install …@latestcrash on startup withSIGSYS: bad system call— even forbasecamp --help.Why (root cause)
atotto/clipboard— an indirect dependency pulled in by the TUI viacharm.land/bubbles/v2/textinput— callsexec.LookPathin its packageinit(). That triggers thefaccessat2syscall, which Android's seccomp policy kills withSIGSYSbeforemainruns, so nothing the CLI does can catch it.Why docs-only (no code fix)
There is no
go install-safe local fix:bubbles/v2 v2.1.0(already our version) is the latest and still importsatotto/clipboard.replacedirective to lazy-load clipboard —go install pkg@latesterrors when the target module's go.mod containsreplace/excludedirectives, so this would break installs on every platform.internal/tuiis wired into the presenter/output/root render paths and many everyday commands; it can't be cleanly excluded.The durable fix belongs upstream (making
textinput's clipboard init lazy). This PR documents the one method that works today — building from source with Termux's patched Go toolchain, which sidesteps the blocked syscall (confirmed by the reporter in #506).Change
Docs only — one new Troubleshooting entry in
install.md.Summary by cubic
Added a Troubleshooting entry to
install.mdfor Termux/Android where prebuilt binaries andgo install github.com/basecamp/basecamp-cli/cmd/basecamp@latestcrash on startup withSIGSYS: bad system call. It explains the cause and shows a build-from-source workaround using Termux’s Go, with the fullgo installcommand and a note to adjust thegoline ingo.modif your Termux Go is older.Written for commit fc2d89a. Summary will update on new commits.