distro-packages added with a couple of initial build script.
This commit is contained in:
@@ -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 -
|
||||
@@ -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
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user