# AyuGram Arch Builder for Gitea Actions This repository automatically checks `AyuGram/AyuGramDesktop` GitHub releases, builds the latest release as a native Arch Linux package, validates the package, creates an Arch repository database, and publishes the package/database to a Nexspence Raw Hosted repository. ## What it does 1. Runs from Gitea Actions on a two-day schedule or manually. 2. Queries the GitHub Releases API for the latest AyuGram release. 3. Uses the official `AyuGramDesktop--full.tar.gz` release archive. 4. Resolves the exact `tdlib` submodule commit from the upstream release tag. 5. Builds on `archlinux:latest` with `makepkg`. 6. Uses packaged Arch libraries where appropriate. 7. Runs `namcap`, package metadata checks, ELF dependency checks and a smoke test. 8. Creates `noko-arch.db.tar.zst` with `repo-add`. 9. Uploads the package and repository database files to Nexspence Raw. 10. Records the published version in `.current-version`. ## Required Gitea secrets - `NEXSPENCE_URL` - for example `https://repos.noko.tan` - `NEXSPENCE_TOKEN` - an `nxs_...` API token - `NEXSPENCE_REPOSITORY` - `noko-arch` Optional: - `TDESKTOP_API_ID` - `TDESKTOP_API_HASH` The default API credentials are the same public build credentials used by several current Linux packaging recipes. For a production/private distribution, set your own Telegram API credentials as Gitea secrets. ## Arch client ```ini [noko-arch] Server = https://repos.noko.tan/repository/noko-arch/$arch SigLevel = Never ``` Then: ```bash sudo pacman -Sy sudo pacman -S ayugram-desktop ``` The repository is intentionally unsigned in this first version. Add repository signing only after the upload flow is confirmed working. ## Runner The workflow uses a job-level Arch container, so the Gitea runner needs Docker execution and a label such as `ubuntu-latest`. Gitea recommends Docker-backed runner jobs for isolation. ## Important: `libtg_owt` `libtg_owt` is not necessarily present in the official Arch repositories. The workflow therefore expects your runner environment (or an internal Arch repo) to provide it. If `pacman -S libtg_owt` fails, build/install the AUR `libtg_owt` package on the runner or expose it through your own `noko-arch` repository before running this workflow. Do not replace `libtg_owt` with a random prebuilt binary: it is part of the native build toolchain.