distro-packages added with a couple of initial build script.

This commit is contained in:
Storm Dragon
2026-05-19 21:46:29 -04:00
parent 965347cad4
commit 01ce7529eb
8 changed files with 184 additions and 0 deletions
@@ -0,0 +1,70 @@
# Maintainer: Stormux <storm_dragon@stormux.org>
# shellcheck shell=bash disable=SC2034,SC2154
pkgname=skald-git
pkgver=0.0.0.r0.g0000000
pkgrel=1
pkgdesc='Audio-only hall-based conferencing server'
arch=('x86_64' 'aarch64')
url='https://git.stormux.org/storm/skald'
license=('MIT')
depends=('ffmpeg')
makedepends=('git' 'go')
provides=('skald')
conflicts=('skald')
source=(
'git+https://git.stormux.org/storm/skald.git'
'skald.service'
'skald.sysusers'
'skald.tmpfiles'
)
sha256sums=(
'SKIP'
'7048408e888e08c6f0751979848b85c0c5a0f0e7828b8bcf5594f7ceaf883f90'
'd17bb4bfb320416da6e6ed43e9df8b8088f149b60808924d2dc0ac0b8e9b9a32'
'ba8bb0933715c7eb19cdaf8d6dea4e33ff65ad676f1484f9b6a33930ec455f6e'
)
pkgver() {
cd skald || return
git describe --long --tags 2>/dev/null | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' ||
printf '0.0.0.r%s.g%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
build() {
cd skald || return
export CGO_ENABLED=0
export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
go build -ldflags='-s -w' -o skald .
go build -ldflags='-s -w' -o skaldctl ./skaldctl
}
check() {
cd skald || return
go test ./...
}
package() {
cd skald || return
install -Dm755 skald "$pkgdir/usr/bin/skald"
install -Dm755 skaldctl "$pkgdir/usr/bin/skaldctl"
install -d "$pkgdir/usr/share/skald/static"
cp -a static/. "$pkgdir/usr/share/skald/static/"
install -Dm644 README.md "$pkgdir/usr/share/doc/skald/README.md"
install -Dm644 skald.md "$pkgdir/usr/share/doc/skald/skald.md"
install -Dm644 skald-api.md "$pkgdir/usr/share/doc/skald/skald-api.md"
install -Dm644 skald-client.md "$pkgdir/usr/share/doc/skald/skald-client.md"
install -Dm644 skald-install.md "$pkgdir/usr/share/doc/skald/skald-install.md"
install -Dm644 skald-protocol.md "$pkgdir/usr/share/doc/skald/skald-protocol.md"
install -d "$pkgdir/var/lib/skald/data"
install -d "$pkgdir/var/lib/skald/halls"
install -d "$pkgdir/var/lib/skald/recordings"
install -Dm644 "$srcdir/skald.service" "$pkgdir/usr/lib/systemd/system/skald.service"
install -Dm644 "$srcdir/skald.sysusers" "$pkgdir/usr/lib/sysusers.d/skald.conf"
install -Dm644 "$srcdir/skald.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/skald.conf"
}
@@ -0,0 +1,15 @@
[Unit]
Description=Skald audio conferencing server
After=network.target
[Service]
Type=simple
User=skald
Group=skald
WorkingDirectory=/var/lib/skald
ExecStart=/usr/bin/skald -static /usr/share/skald/static -data /var/lib/skald/data -halls /var/lib/skald/halls -recordings /var/lib/skald/recordings
LimitNOFILE=65536
Restart=on-failure
[Install]
WantedBy=multi-user.target
@@ -0,0 +1 @@
u skald - "Skald server" /var/lib/skald
@@ -0,0 +1,4 @@
d /var/lib/skald 0750 skald skald -
d /var/lib/skald/data 0750 skald skald -
d /var/lib/skald/halls 0750 skald skald -
d /var/lib/skald/recordings 0750 skald skald -
+1
View File
@@ -0,0 +1 @@
@@ -0,0 +1,24 @@
# Void Linux packaging
This directory contains a local `xbps-src` template for Skald.
Copy `skald-git/` into `srcpkgs/skald-git/` in a Void packages checkout,
then build it with:
```sh
./xbps-src pkg skald-git
```
The package installs both `skald` and `skaldctl`, creates a `skald` system
account, creates `/var/lib/skald/{data,halls,recordings}`, and provides a
runit service named `skald`.
To use a private repository, prefer SSH authentication by changing
`repository` in the template, for example:
```sh
repository="ssh://git@git.stormux.org/storm/skald.git"
```
Make sure the build environment has access to the needed SSH key or Git
credential helper. Do not put passwords in the template.
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
# shellcheck disable=SC3045
exec 2>&1
cd /var/lib/skald || exit 1
ulimit -n 65536
exec chpst -u skald:skald /usr/bin/skald \
-static /usr/share/skald/static \
-data /var/lib/skald/data \
-halls /var/lib/skald/halls \
-recordings /var/lib/skald/recordings
@@ -0,0 +1,59 @@
# Template file for 'skald-git'
# shellcheck shell=bash disable=SC2034,SC2154
pkgname=skald-git
version=0.0.0
revision=1
hostmakedepends="git go"
depends="ffmpeg"
short_desc="Audio-only hall-based conferencing server"
maintainer="Stormux <storm_dragon@stormux.org>"
license="MIT"
homepage="https://git.stormux.org/storm/skald"
repository="https://git.stormux.org/storm/skald.git"
provides="skald-${version}_${revision}"
conflicts="skald>=0"
wrksrc="skald"
system_accounts="skald"
skald_homedir="/var/lib/skald"
make_dirs="
/var/lib/skald 0750 skald skald
/var/lib/skald/data 0750 skald skald
/var/lib/skald/halls 0750 skald skald
/var/lib/skald/recordings 0750 skald skald"
do_fetch() {
if [ -d "${XBPS_BUILDDIR}/${wrksrc}/.git" ]; then
git -C "${XBPS_BUILDDIR}/${wrksrc}" fetch --depth=1 origin "${SKALD_GIT_BRANCH:-master}"
git -C "${XBPS_BUILDDIR}/${wrksrc}" checkout FETCH_HEAD
else
git clone --depth=1 --branch "${SKALD_GIT_BRANCH:-master}" "$repository" "${XBPS_BUILDDIR}/${wrksrc}"
fi
}
do_build() {
export CGO_ENABLED=0
export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
go build -ldflags='-s -w' -o skald .
go build -ldflags='-s -w' -o skaldctl ./skaldctl
}
do_check() {
go test ./...
}
do_install() {
vbin skald
vbin skaldctl
vmkdir usr/share/skald/static
vcopy "static/*" usr/share/skald/static
vdoc README.md
vdoc skald.md
vdoc skald-api.md
vdoc skald-client.md
vdoc skald-install.md
vdoc skald-protocol.md
vsv skald
}