Use manual TDLib bundle for app releases
Some checks failed
Release App / release-app (push) Has been cancelled

This commit is contained in:
2026-04-24 14:25:10 +03:00
parent 48d1aae186
commit e5ae44cb3a
4 changed files with 91 additions and 7 deletions

View File

@@ -18,6 +18,8 @@ A minimal Telegram terminal client built with `ncurses` and TDLib.
- TDLib build dependencies (`gperf`, `openssl`, `zlib`, `git`)
The project vendors TDLib automatically by default. If you already have TDLib installed with CMake package metadata, configure with `-DTELEGRAM_TUI_USE_SYSTEM_TDLIB=ON`.
If you have a prebuilt TDLib bundle with `include/` and `lib/`, configure with
`-DTELEGRAM_TUI_TDLIB_ROOT=/path/to/tdlib`.
## Build
@@ -62,8 +64,22 @@ archive plus checksum to the Gitea Generic Package Registry under the `tdlib` pa
It also refreshes a `latest/tdlib-latest.json` manifest with the newest published version.
The repository also includes [`.gitea/workflows/release-app.yaml`](.gitea/workflows/release-app.yaml),
which builds a rolling `latest` release asset containing `usr/bin/shinoa` and the bundled
`usr/lib/libtdjson.so*`. The root `PKGBUILD` installs that prebuilt release as `shinoa-bin`.
which downloads a prebuilt TDLib bundle from this repository's `tdlib` release tag, builds a
rolling `latest` app release, and publishes an archive containing `usr/bin/shinoa` plus the
bundled `usr/lib/libtdjson.so*`. The root `PKGBUILD` installs that prebuilt release as
`shinoa-bin`.
To prepare the TDLib bundle on your own machine:
```bash
cmake -S td -B td-build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$PWD/td-install"
cmake --build td-build -j"$(nproc)"
cmake --install td-build
./scripts/package-tdlib.sh td-install tdlib-linux-x86_64.tar.gz
```
Upload `tdlib-linux-x86_64.tar.gz` to a release tagged `tdlib` in this repository. After that,
the `Release App` workflow can consume it and publish the app bundle.
## Keys