From 4bdaa9048f1a86859132287ac32cb61ef71c6175 Mon Sep 17 00:00:00 2001 From: nokotan Date: Mon, 26 Oct 2026 22:50:57 +0300 Subject: [PATCH] first commit --- README.md | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e27cb0b --- /dev/null +++ b/README.md @@ -0,0 +1,79 @@ +# Ratune Arch Builder for Gitea Actions + +Builds the latest official [Ratune](https://github.com/acmagn/ratune) GitHub +Release as a native Arch Linux package (`ratune`), tests it, and publishes it +to the Nexspence Raw Hosted repository `noko-arch`. + +## Pipeline + +1. Runs every two days or via **Actions → Build and Publish Ratune → Run workflow**. +2. Queries GitHub's `releases/latest` API and compares the tag with `.current-version`. +3. Updates `pkgver` in `PKGBUILD` and builds with `makepkg` inside `archlinux:latest`. +4. Runs `cargo test --workspace`, package metadata checks, `namcap`, ELF dependency checks, + and `ratune --version`. +5. Creates an Arch repository database with `repo-add`. +6. Uploads the package and database objects to Nexspence using HTTP `PUT`. +7. Records the published tag in `.current-version`. + +## Gitea secrets + +Configure these repository Actions secrets: + +- `NEXSPENCE_URL` — Nexspence base URL, e.g. `https://repos.noko.tan` +- `NEXSPENCE_TOKEN` — Nexspence bearer/API token (`nxs_...` in the current setup) + +The workflow hardcodes `NEXSPENCE_REPOSITORY=noko-arch` as requested. The publish +script also supports the environment variable for manual runs. + +## Arch client configuration + +Add this to `/etc/pacman.conf`: + +```ini +[noko-arch] +Server = https://repos.noko.tan/repository/noko-arch/$arch +SigLevel = Never +``` + +Then install: + +```sh +sudo pacman -Sy +sudo pacman -S ratune +``` + +The repository is unsigned, matching the current `ayugram-builder` setup. `SigLevel = +Never` disables package signature verification for this repository; consider adding +package signing once the upload path is confirmed. + +## Runtime dependencies + +The package declares `alsa-lib`, `dbus`, `gcc-libs`, and `glibc`. The application +needs ALSA and D-Bus libraries at runtime. `pkgconf`, `rust`, and `base-devel` are +build dependencies. + +## Local build + +On an Arch Linux host or inside the supplied Docker image: + +```sh +sudo pacman -S --needed base-devel git curl jq namcap pacman-contrib \ + rust pkgconf alsa-lib dbus zstd +./scripts/check-release.sh +./scripts/build.sh 0.17.0 v0.17.0 +./scripts/test.sh +``` + +For local manual publishing, set `NEXSPENCE_URL`, `NEXSPENCE_TOKEN`, and +`NEXSPENCE_REPOSITORY=noko-arch`, then run `./scripts/publish.sh`. + +## Notes + +- `.current-version` is updated only after successful publication. +- The workflow uses `actions/checkout@v4`; ensure your Gitea Actions runner can + resolve that action (or replace it with your existing internal checkout action). +- The package is built from the official release tag's source archive, not from + an arbitrary branch head. +- `sha256sums=('SKIP')` is intentional for this first dynamic-release scaffold; + for stricter supply-chain verification, add release-specific checksum verification + before publishing.