From 599cd690b8b054291be3d2bba55b5007df395b9a Mon Sep 17 00:00:00 2001 From: m1ngsama Date: Sat, 23 May 2026 17:56:40 +0800 Subject: [PATCH] packaging: document aur submission path --- docs/CHANGELOG.md | 2 ++ packaging/README.md | 2 +- packaging/arch/.SRCINFO | 15 +++++++++++++ packaging/arch/README.md | 47 ++++++++++++++++++++++++++++++++++++++++ scripts/release_check.sh | 8 +++++++ 5 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 packaging/arch/.SRCINFO create mode 100644 packaging/arch/README.md diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 72de4b8..a87334d 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -41,6 +41,8 @@ binary before installation, and fails fast on missing release assets. - Added a Debian packaging metadata draft for the future Ubuntu PPA path, with lightweight validation in `make release-check`. +- Added an Arch `.SRCINFO` draft and AUR maintainer notes, with version/package + checks in `make release-check`. ## 2026-05-18 - Interactive input polish diff --git a/packaging/README.md b/packaging/README.md index f64981c..a474b2a 100644 --- a/packaging/README.md +++ b/packaging/README.md @@ -6,7 +6,7 @@ any public registry. ## Current targets -- `arch/PKGBUILD` - AUR-ready draft for `tnt-chat`. +- `arch/` - AUR-ready draft for `tnt-chat`. - `homebrew/tnt-chat.rb` - Homebrew tap formula draft. - `debian/` - Ubuntu PPA / Debian packaging notes and draft metadata. diff --git a/packaging/arch/.SRCINFO b/packaging/arch/.SRCINFO new file mode 100644 index 0000000..a38b9dc --- /dev/null +++ b/packaging/arch/.SRCINFO @@ -0,0 +1,15 @@ +pkgbase = tnt-chat + pkgdesc = SSH-native terminal chat server with a Vim-style interface + pkgver = 1.0.0 + pkgrel = 1 + url = https://github.com/m1ngsama/TNT + arch = x86_64 + arch = aarch64 + license = MIT + makedepends = gcc + makedepends = make + depends = libssh + source = tnt-chat-1.0.0.tar.gz::https://github.com/m1ngsama/TNT/archive/refs/tags/v1.0.0.tar.gz + sha256sums = SKIP + +pkgname = tnt-chat diff --git a/packaging/arch/README.md b/packaging/arch/README.md new file mode 100644 index 0000000..2f9caf6 --- /dev/null +++ b/packaging/arch/README.md @@ -0,0 +1,47 @@ +# Arch / AUR Packaging + +The draft package name is `tnt-chat` because `tnt` is already a likely name +collision in Arch/AUR contexts. + +## Local validation + +From this directory: + +```sh +makepkg -si +``` + +Optional package linting: + +```sh +namcap PKGBUILD +namcap tnt-chat-*.pkg.tar.zst +``` + +## Updating metadata + +After editing `PKGBUILD`, regenerate `.SRCINFO`: + +```sh +makepkg --printsrcinfo > .SRCINFO +``` + +Before AUR submission, replace `sha256sums=('SKIP')` with the real release +archive checksum, then run the project-level strict check: + +```sh +make release-check-strict +``` + +## Manual AUR submission + +```sh +git clone ssh://aur@aur.archlinux.org/tnt-chat.git aur-tnt-chat +cp PKGBUILD .SRCINFO aur-tnt-chat/ +cd aur-tnt-chat +git add PKGBUILD .SRCINFO +git commit -m "Update to 1.0.0" +git push +``` + +Do not wire this to automatic deployment or release automation. diff --git a/scripts/release_check.sh b/scripts/release_check.sh index c3b3697..e80d9b0 100755 --- a/scripts/release_check.sh +++ b/scripts/release_check.sh @@ -64,6 +64,12 @@ grep -q "\"TNT $version\"" tnt.1 || fail "tnt.1 does not mention TNT $version" grep -q "^pkgver=$version$" packaging/arch/PKGBUILD || fail "packaging/arch/PKGBUILD pkgver does not match $version" +grep -q "pkgver = $version" packaging/arch/.SRCINFO || + fail "packaging/arch/.SRCINFO pkgver does not match $version" +grep -q "^pkgname=tnt-chat$" packaging/arch/PKGBUILD || + fail "packaging/arch/PKGBUILD pkgname is not tnt-chat" +grep -q "^pkgname = tnt-chat$" packaging/arch/.SRCINFO || + fail "packaging/arch/.SRCINFO pkgname is not tnt-chat" grep -q "v${version}.tar.gz" packaging/homebrew/tnt-chat.rb || fail "packaging/homebrew/tnt-chat.rb URL does not match v$version" grep -q "^tnt-chat (${version}-1)" packaging/debian/debian/changelog || @@ -129,6 +135,8 @@ if [ "$STRICT" -eq 1 ]; then step "checking strict release gates" ! grep -q "sha256sums=('SKIP')" packaging/arch/PKGBUILD || fail "replace PKGBUILD sha256sums before strict release" + ! grep -q "sha256sums = SKIP" packaging/arch/.SRCINFO || + fail "replace .SRCINFO sha256sums before strict release" ! grep -q "REPLACE_WITH_RELEASE_TARBALL_SHA256" packaging/homebrew/tnt-chat.rb || fail "replace Homebrew sha256 before strict release" git rev-parse -q --verify "refs/tags/v$version" >/dev/null ||