Push260922 — OpenCode for Termux: v2 mainline + v1 opencode1 family
2026-09-23 rolling tag (RC2). All assets are native bionic (zero glibc, no proot, no container).
RC2 fixes (this revision)
- Fixes #20 — every native build now gates the embedded bionic
libopentui.sobefore
packaging (root cause + fix written up in issue comment 5782151599; issue closed). - All 13 v2 versions rebuilt (2.0.0 … 2.0.12, rc2b): per-version sha256 all distinct,
packages freshness-gated against their binaries (ALL_13_FRESH). - Per-version PTY smoke: 13/13 PASS — a real tmux TUI session per version (input box +
keystroke verification). Evidence:.omo/evidence/opencode-v2-port/rc2-rebuild/pty-test.log. - v2 wrapper family root-cause fix: the first wrapper batch wrapped one shared glibc input,
so every package reportedv2.0.0.family-v2-wrappernow extracts the per-version glibc
standalone fromopencode-cli-linux-arm64-<ver>.tgz, hard-gates--versionto the target
version, and packages viascripts/package/package_wrapper_v2.sh(payload at
$PREFIX/bin/opencode/usr/bin/opencode— no staging-path leak). 13/13 rebuilt and
verified (ALL_13_VERIFIED: all wrap shas distinct; 2.0.1+ differ from the 2.0.0 base). - Dual 26-asset uploads verified by sha256 (size + digest vs local manifests):
- native:
UPLOAD_ALL_26_VERIFIED—.omo/evidence/opencode-v2-port/rc2-rebuild/local-26.sha256 - wrapper:
UPLOAD_ALL_26_WRAPPER_VERIFIED—.omo/evidence/opencode-v2-port/rc2-rebuild/wrapper-13-sha.txt
- native:
v2 mainline (package name opencode, mutually exclusive within v2)
OpenCode 2.0.x compiled from source with android-bun (B line, full TUI via bionic libopentui.so).
opencode_2.0.x_aarch64.deb/opencode-2.0.x-1-aarch64.pkg.tar.xzfor every 2.0.0…2.0.12opencode-native-2.0.x-upx.xz— UPX-packed variant (same content, ~64% smaller)opencode-wrapper_2.0.x_aarch64.deb/opencode-wrapper-2.0.x-1-aarch64.pkg.tar.xz—
v2 wrapper line (bun-termux-loader wrapped glibc standalone, TUI-capable), all 13 versions- Install:
dpkg -i opencode_2.0.x_aarch64.deborpacman -U opencode-2.0.x-1-aarch64.pkg.tar.xz - Run:
opencode --version - Data/config lives under
~/.config/opencode,~/.local/share/opencode, etc.
v1 family — renamed opencode1* (coexists with v2)
v1 (1.18.x) packages are renamed with the opencode1 prefix so v1 and v2 can be installed
side-by-side; each family's binary and data dirs are isolated:
- v1 binary:
bin/opencode1(config/data under*opencode1dirs, isolated by the install hook) - v1 packages:
opencode1_1.18.32_aarch64.deb,opencode1-wrapper_...,opencode1-compressed_...
(+ pacman equivalents)
Upgrade path: any old v1 opencode* package (≤ 1.18.31 in release Push260912) upgrades into the
opencode1* family (same sub-family: native → opencode1, wrapper → opencode1-wrapper,
compressed → opencode1-compressed). v2 opencode is never selected as the v1 upgrade target.
Migration hook: the opencode1 postinst auto-detects a legacy pre-v2-era v1 config under
~/.config/opencode (etc.) and isolates it into the opencode1 dirs (via
scripts/migrate-to-opencode1.sh isolate), exactly once, never clobbering existing opencode1 data.
Install
# dpkg (Termux default)
dpkg -i opencode_2.0.12_aarch64.deb # v2 mainline
dpkg -i opencode1_1.18.32_aarch64.deb # v1 (coexists)
# pacman
pacman -U opencode-2.0.12-1-aarch64.pkg.tar.xz
pacman -U opencode1-1.18.32-1-aarch64.pkg.tar.xzNotes
- v1.18.31 pinned as the final v1 make-maintenance release; if v1 ever needs a new build it
ships asopencode1*. v1 wrapper-standalone is orphaned (not re-published). - This tag replaces the earlier v2 RC1 draft content; release notes supersede Push260912's
v1-era notes for the v2 line. Push260912 remains the v1-era historical archive.