Commit

Author:

Hash:

Timestamp:

+128 -0 +/-6 browse

Kevin Schoon [me@kevinschoon.com]

23a82639f9d3e91ff3bc13eedf26efc67ad53e13

Sat, 12 Jul 2025 14:38:15 +0000 (4 months ago)

add ayllu-git packaging for archlinux
1diff --git a/packaging/README.md b/packaging/README.md
2new file mode 100644
3index 0000000..51d6a98
4--- /dev/null
5+++ b/packaging/README.md
6 @@ -0,0 +1,6 @@
7+ # Various Packaging for Ayllu
8+
9+ ## Arch Linux
10+
11+ * [ayllu](https://aur.archlinux.org/ayllu)
12+ * [ayllu-git](https://aur.archlinux.org/ayllu-git)
13 diff --git a/packaging/archlinux/ayllu-git/.gitignore b/packaging/archlinux/ayllu-git/.gitignore
14new file mode 100644
15index 0000000..701b813
16--- /dev/null
17+++ b/packaging/archlinux/ayllu-git/.gitignore
18 @@ -0,0 +1,5 @@
19+ src
20+ pkg
21+ *.tar.gz
22+ *.zst
23+ ayllu
24 diff --git a/packaging/archlinux/ayllu-git/PKGBUILD b/packaging/archlinux/ayllu-git/PKGBUILD
25new file mode 100644
26index 0000000..588448e
27--- /dev/null
28+++ b/packaging/archlinux/ayllu-git/PKGBUILD
29 @@ -0,0 +1,61 @@
30+ pkgname=ayllu-git
31+ _pkgname=ayllu
32+ pkgver=0.0.0
33+ pkgrel=1
34+ pkgdesc="Hyper Performant & Hackable Code Forge"
35+ arch=("x86_64")
36+ license=("AGPL3")
37+ url="https://ayllu-forge.org/ayllu/ayllu"
38+ depends=(
39+ "git"
40+ "libgit2"
41+ "tree-sitter"
42+ )
43+ makedepends=(
44+ "rust"
45+ "gcc"
46+ "libgit2"
47+ "tree-sitter"
48+ )
49+ provides=("ayllu-git")
50+ optdepends=()
51+ source=(
52+ "$_pkgname::git+https://ayllu-forge.org/ayllu/${_pkgname}"
53+ )
54+ # See: https://gitlab.archlinux.org/archlinux/packaging/packages/pacman/-/issues/20
55+ options=(!lto)
56+ sha256sums=("SKIP")
57+
58+ prepare() {
59+ cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
60+ }
61+
62+ check() {
63+ cargo test --frozen --all-features
64+ }
65+
66+ build() {
67+ export CARGO_TARGET_DIR=target
68+ cargo build --frozen --release --all-features
69+ }
70+
71+ package() {
72+ install -Dm755 \
73+ "${srcdir}/target/release/ayllu" "${pkgdir}/usr/bin/ayllu"
74+ install -Dm755 \
75+ "${srcdir}/target/release/quipu" "${pkgdir}/usr/bin/quipu"
76+ install -Dm755 \
77+ "${srcdir}/target/release/ayllu-shell" "${pkgdir}/usr/bin/ayllu-shell"
78+ install -Dm755 \
79+ "${srcdir}/target/release/ayllu-keys" "${pkgdir}/usr/bin/ayllu-keys"
80+ install -Dm644 \
81+ "${srcdir}/ayllu/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}"
82+ install -Dm644 \
83+ "${srcdir}/ayllu/config.example.toml" "${pkgdir}/etc/ayllu/config.example.toml"
84+ install -Dm644 \
85+ "${srcdir}/ayllu/contrib/systemd/system/ayllu.service" \
86+ "${pkgdir}/usr/lib/systemd/system/ayllu.service"
87+ install -Dm644 \
88+ "${srcdir}/ayllu/contrib/systemd/user/ayllu.service" \
89+ "${pkgdir}/usr/lib/systemd/user/ayllu.service"
90+ }
91 diff --git a/packaging/archlinux/ayllu-git/ayllu.install b/packaging/archlinux/ayllu-git/ayllu.install
92new file mode 100644
93index 0000000..e69de29
94--- /dev/null
95+++ b/packaging/archlinux/ayllu-git/ayllu.install
96 diff --git a/packaging/archlinux/ayllu-git/ayllu.sysusers b/packaging/archlinux/ayllu-git/ayllu.sysusers
97new file mode 100644
98index 0000000..26cb1dd
99--- /dev/null
100+++ b/packaging/archlinux/ayllu-git/ayllu.sysusers
101 @@ -0,0 +1 @@
102+ u ayllu - "Ayllu System User" /usr/bin/nologin
103 diff --git a/packaging/archlinux/ayllu/PKGBUILD b/packaging/archlinux/ayllu/PKGBUILD
104new file mode 100644
105index 0000000..f49921b
106--- /dev/null
107+++ b/packaging/archlinux/ayllu/PKGBUILD
108 @@ -0,0 +1,55 @@
109+ pkgname=ayllu
110+ pkgver=0.3.1
111+ pkgrel=1
112+ pkgdesc="Ayllu Forge"
113+ arch=("x86_64")
114+ license=("AGPL3")
115+ url="https://ayllu-forge.org/projects/ayllu"
116+ depends=(
117+ "git"
118+ )
119+ makedepends=(
120+ "rust"
121+ "sqlx-cli"
122+ "sassc"
123+ "npm"
124+ "capnproto"
125+ )
126+ provides=("ayllu")
127+ optdepends=()
128+ source=(
129+ "$pkgname-$pkgver::https://ayllu-forge.org/projects/ayllu/refs/archive/$pkgver.tar.gz"
130+ )
131+
132+ sha256sums=("577fdeb4d2cce05ad5963733d56d75aaef84a473d6320088bb649161c111d163")
133+
134+ build() {
135+ cd "$pkgname-$pkgver"
136+ [[ -f db/state.db ]] && rm db/state.db
137+ scripts/init_db_if_missing.sh
138+ cargo build --release
139+
140+ npm install
141+ scripts/compile_stylesheets.sh
142+ }
143+
144+ package() {
145+ cd "$pkgname-$pkgver"
146+ install -Dm755 "target/release/ayllu" $pkgdir/usr/bin/ayllu
147+ install -Dm644 "LICENSE" $pkgdir/usr/share/licenses/ayllu
148+ install -Dm644 "config.example.toml" $pkgdir/etc/ayllu/config.example.toml
149+ install -Dm644 "contrib/systemd/system/ayllu.service" $pkgdir/usr/lib/systemd/system/ayllu.service
150+ install -Dm644 "contrib/systemd/user/ayllu.service" $pkgdir/usr/lib/systemd/user/ayllu.service
151+ install -Dm755 "contrib/hooks/post-commit" $pkgdir/usr/share/ayllu/hooks/post-commit
152+ install -Dm755 "contrib/hooks/post-receive" $pkgdir/usr/share/ayllu/hooks/post-receive
153+
154+ install -Dm644 "themes/default/main.min.css" $pkgdir/usr/share/ayllu/themes/default/main.min.css
155+ find themes/default/templates -name '*.html' -exec install -Dm644 {} $pkgdir/usr/share/ayllu/{} \;
156+ find themes/default/assets -type f -exec install -Dm644 {} $pkgdir/usr/share/ayllu/{} \;
157+
158+ install -Dm644 "themes/tokyonight/main.min.css" $pkgdir/usr/share/ayllu/themes/tokyonight/main.min.css
159+ find themes/tokyonight/templates -name '*.html' -exec install -Dm644 {} $pkgdir/usr/share/ayllu/{} \;
160+
161+ install -Dm644 "themes/adwaita/main.min.css" $pkgdir/usr/share/ayllu/themes/adwaita/main.min.css
162+ find themes/adwaita/templates -name '*.html' -exec install -Dm644 {} $pkgdir/usr/share/ayllu/{} \;
163+ }