[Init] Initial commit - NetMesh terminal manager
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
This commit is contained in:
81
resources/et/README.md
Normal file
81
resources/et/README.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Bundled EternalTerminal `et` client
|
||||
|
||||
This directory holds the EternalTerminal **client** binary (`et`) bundled
|
||||
with the Netcatty installer. Netcatty launches this bundled `et` directly
|
||||
(see `electron/bridges/terminalBridge/etSession.cjs`); `et` performs its
|
||||
own SSH bootstrap and EternalTerminal protocol handshake against the remote
|
||||
`etserver` / `etterminal`.
|
||||
|
||||
Like MoshCatty `mosh-client`, `et` is a pure network-transport client and does not
|
||||
render a terminal locally, so there is **no terminfo bundle** here — only the
|
||||
single `et` (`et.exe` on Windows) binary.
|
||||
|
||||
## How binaries land here
|
||||
|
||||
1. `.github/workflows/build-et-binaries.yml` builds `et` on relevant
|
||||
pushes/PRs, or on a manual `workflow_dispatch`. It uses
|
||||
`scripts/build-et/build-linux.sh` and `scripts/build-et/build-macos.sh`
|
||||
for Linux/macOS, and `scripts/build-et/build-windows.ps1` for Windows:
|
||||
|
||||
| target | provenance |
|
||||
|-------------------|------------------------------------------------------------------|
|
||||
| `linux-x64` | upstream source, manylinux2014, vcpkg static deps + glibc |
|
||||
| `linux-arm64` | upstream source, manylinux2014, vcpkg static deps + glibc |
|
||||
| `darwin-universal`| upstream source, lipo arm64 + x86_64, macOS system dylibs only |
|
||||
| `win32-x64` | upstream source, MSVC + vcpkg `x64-windows-static` (no DLLs) |
|
||||
| `win32-arm64` | (not built — add after a tested arm64 client is available) |
|
||||
|
||||
ET builds with CMake + Ninja + vcpkg
|
||||
(`cmake -DDISABLE_TELEMETRY=ON -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo`).
|
||||
|
||||
2. When manually dispatched with `release_tag`, that workflow publishes the
|
||||
binaries to the dedicated `binaricat/Netcatty-et-bin` repository. The
|
||||
release gets a tag like `et-bin-6.2.10-1`, with `SHA256SUMS` attached.
|
||||
|
||||
3. Release packaging runs `scripts/resolve-et-bin-release.cjs` before
|
||||
`npm run fetch:et`. It uses an explicit workflow input first, then the
|
||||
`ET_BIN_RELEASE` repository variable, then the latest non-draft
|
||||
`et-bin-*` GitHub Release from the dedicated binary repository. The fetch
|
||||
step pulls the binaries into `resources/et/<platform-arch>/`. For local
|
||||
packaging, set `ET_BIN_RELEASE` yourself before running the same fetch
|
||||
command. Override `ET_BIN_OWNER` / `ET_BIN_REPO` only when testing a
|
||||
different binary repository. `electron-builder.config.cjs` then copies the
|
||||
matching binary into `Resources/et/et[.exe]`.
|
||||
|
||||
Local dev uses the same binary path: `npm run dev` runs
|
||||
`npm run fetch:et:dev` first, which downloads the host platform's bundled
|
||||
`et` into this gitignored directory. Netcatty does not fall back to a
|
||||
system-installed `et`; if the bundled binary is missing, ET startup fails
|
||||
loudly instead of using whatever happens to be installed on the developer
|
||||
machine.
|
||||
|
||||
The directory is otherwise empty (binaries are gitignored).
|
||||
|
||||
## Licenses
|
||||
|
||||
- EternalTerminal is licensed under **Apache-2.0**
|
||||
(https://github.com/MisterTea/EternalTerminal).
|
||||
- Netcatty is **GPL-3.0**; Apache-2.0 is one-way compatible with GPL-3.0, so
|
||||
redistribution as part of the installer is permitted.
|
||||
- vcpkg-managed deps (boost Boost-License, libsodium ISC, protobuf
|
||||
BSD-3-Clause, gflags BSD-3-Clause) are compatible with GPL-3.0.
|
||||
|
||||
## Reproducible build
|
||||
|
||||
To reproduce the Linux binary locally:
|
||||
|
||||
```sh
|
||||
docker run --rm -v $PWD:/workspace -w /workspace \
|
||||
-e ET_REF=et-v6.2.10 -e ARCH=x64 -e OUT_DIR=/workspace/out \
|
||||
quay.io/pypa/manylinux2014_x86_64 \
|
||||
bash scripts/build-et/build-linux.sh
|
||||
```
|
||||
|
||||
For macOS the build needs an Xcode toolchain; see
|
||||
`scripts/build-et/build-macos.sh`. For Windows see
|
||||
`scripts/build-et/build-windows.ps1`.
|
||||
|
||||
## Roadmap
|
||||
|
||||
- Add Windows arm64 only after a tested standalone arm64 client is available.
|
||||
- Make `ET_REF` track upstream release tags automatically.
|
||||
57
resources/mosh/README.md
Normal file
57
resources/mosh/README.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Bundled `mosh-client` (MoshCatty)
|
||||
|
||||
This directory holds the pure Rust `mosh-client` from
|
||||
[binaricat/MoshCatty](https://github.com/binaricat/MoshCatty).
|
||||
|
||||
Netcatty runs SSH + `mosh-server` bootstrap itself, then launches this binary
|
||||
(see `electron/bridges/moshHandshake.cjs` and `terminalBridge/moshSession.cjs`).
|
||||
|
||||
## Layout
|
||||
|
||||
| Target | Release asset | Local path |
|
||||
|--------|---------------|------------|
|
||||
| Linux x64 | `mosh-client-linux-x64.tar.gz` | `linux-x64/mosh-client` |
|
||||
| Linux arm64 | `mosh-client-linux-arm64.tar.gz` | `linux-arm64/mosh-client` |
|
||||
| macOS universal | `mosh-client-darwin-universal.tar.gz` | `darwin-universal/mosh-client` |
|
||||
| Windows x64 | `mosh-client-win32-x64.tar.gz` | `win32-x64/mosh-client.exe` |
|
||||
|
||||
Each tarball contains **only** the client binary (no Cygwin DLLs, no terminfo).
|
||||
Windows builds static-link the MSVC CRT (`moshcatty-0.1.1+`).
|
||||
|
||||
Release tags: `moshcatty-*` (require `moshcatty-0.1.8+`) from
|
||||
`binaricat/MoshCatty`, with `SHA256SUMS`.
|
||||
|
||||
### Linux glibc floors
|
||||
|
||||
Linux assets must start on the same distros Netcatty packages for. From
|
||||
`moshcatty-0.1.2`, MoshCatty builds Linux clients on:
|
||||
|
||||
| Target | Build image | Max required GLIBC |
|
||||
|--------|-------------|--------------------|
|
||||
| `linux-x64` | AlmaLinux 8 | 2.28 |
|
||||
| `linux-arm64` | Debian bullseye | 2.31 |
|
||||
|
||||
Do **not** pin packaging to `moshcatty-0.1.0` / `0.1.1` Linux binaries: those
|
||||
were built on Ubuntu runners and require GLIBC 2.34.
|
||||
|
||||
## Fetch
|
||||
|
||||
```sh
|
||||
# Optional pin (0.1.8+ disables unsafe local backspace prediction)
|
||||
export MOSH_BIN_RELEASE=moshcatty-0.1.8
|
||||
npm run fetch:mosh
|
||||
|
||||
# Dev: host platform; resolves latest moshcatty-* if unset
|
||||
npm run fetch:mosh:dev
|
||||
```
|
||||
|
||||
Env: `MOSH_BIN_OWNER` / `MOSH_BIN_REPO` (default `binaricat` / `MoshCatty`),
|
||||
`MOSH_BIN_BASE_URL` for mirrors.
|
||||
|
||||
`electron-builder` packages `Resources/mosh/mosh-client[.exe]` only.
|
||||
|
||||
## Licenses
|
||||
|
||||
- MoshCatty client: **GPL-3.0-or-later**
|
||||
- Upstream Mosh protocol reference: **GPL-3.0**
|
||||
- Netcatty is **GPL-3.0**
|
||||
Reference in New Issue
Block a user