diff --git a/conf.sh b/conf.sh index c906635..42c32d6 100644 --- a/conf.sh +++ b/conf.sh @@ -4,3 +4,7 @@ knotserver_group=git knotserver_path=/var/lib/knotserver knotserver_repo_path=/var/lib/tangled knotserver_log_directory=/var/log/knotserver + +spindle_user=root +spindle_group=root +spindle_path=/var/lib/spindle diff --git a/spindle/.SRCINFO b/spindle/.SRCINFO new file mode 100644 index 0000000..cfb4529 --- /dev/null +++ b/spindle/.SRCINFO @@ -0,0 +1,21 @@ +pkgbase = spindle + pkgdesc = git collaboration platform built on ATproto + pkgver = 1.7.0.alpha + pkgrel = 1 + url = https://tangled.sh/@tangled.sh/core + arch = x86_64 + license = MIT + makedepends = git + makedepends = go + depends = docker + conflicts = spindle-git + options = strip + options = !debug + source = tangled::git+https://tangled.sh/@tangled.sh/core#tag=v1.7.0-alpha + source = spindle.service + source = spindle-tmpfiles.conf + sha256sums = 580e1f3547d4c16a3c62a61361332978432680b92fe59a47ba077734970ac94c + sha256sums = c133009fe69515dd35aa593e7f011136db40c22cde8804397177e1b75e3a6d5d + sha256sums = 2abd16b1b058876cc804057d9e5eb9ae39536d9a83c212326d48d3a7ba89bbd4 + +pkgname = spindle diff --git a/spindle/PKGBUILD b/spindle/PKGBUILD new file mode 100644 index 0000000..09cba52 --- /dev/null +++ b/spindle/PKGBUILD @@ -0,0 +1,40 @@ +_pkgname=spindle +_pkgver=1.7.0-alpha +pkgname=${_pkgname/\-/\.} +pkgdesc='git collaboration platform built on ATproto' +pkgver=${_pkgver/\-/\.} +pkgrel=1 +license=(MIT) +arch=(x86_64) +url=https://tangled.sh/@tangled.sh/core +depends=(docker) +conflicts=(spindle-git) +makedepends=(git go) +options=(strip !debug) +source=("tangled::git+$url#tag=v${_pkgver}" + ${_pkgname}.service + ${_pkgname}-tmpfiles.conf) +sha256sums=('580e1f3547d4c16a3c62a61361332978432680b92fe59a47ba077734970ac94c' + 'c133009fe69515dd35aa593e7f011136db40c22cde8804397177e1b75e3a6d5d' + '2abd16b1b058876cc804057d9e5eb9ae39536d9a83c212326d48d3a7ba89bbd4') + +build() { + mkdir -p ${srcdir}/build + + export CGO_ENABLED=1 + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CFLAGS="${CFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export CGO_LDFLAGS="${LDFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" + + cd ${srcdir}/tangled + go build -o "${srcdir}/build/spindle" ./cmd/spindle +} + +package() { + install -Dm644 "${srcdir}/${_pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${_pkgname}.service" + install -Dm644 "${srcdir}/${_pkgname}-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${_pkgname}.conf" + install -Dm755 "${srcdir}/build/spindle" "${pkgdir}/usr/bin/spindle" + install -Dm644 "${srcdir}/tangled/license" "${pkgdir}/usr/share/licenses/tangled/spindle.LICENSE" +} diff --git a/spindle/spindle-tmpfiles.conf b/spindle/spindle-tmpfiles.conf new file mode 100644 index 0000000..244c2fa --- /dev/null +++ b/spindle/spindle-tmpfiles.conf @@ -0,0 +1 @@ +d /var/lib/spindle 755 root root - diff --git a/spindle/spindle.service b/spindle/spindle.service new file mode 100644 index 0000000..4fab68f --- /dev/null +++ b/spindle/spindle.service @@ -0,0 +1,21 @@ +[Unit] +Description=tangled spindle server +After=network.target network-online.target docker.service +Wants=network-online.target +AssertPathExists=/var/lib/spindle + +[Service] +Environment="SPINDLE_SERVER_HOSTNAME=%H" +Environment="SPINDLE_SERVER_LISTEN_ADDR=127.0.0.1:6555" +WorkingDirectory=/var/lib/spindle +ExecStart=/usr/bin/spindle +Restart=always +User=root +Group=root +StandardOutput=journal +StandardError=journal +LimitNOFILE=65536 +LogsDirectory=spindle + +[Install] +WantedBy=multi-user.target diff --git a/src/spindle/PKGBUILD.sh b/src/spindle/PKGBUILD.sh new file mode 100755 index 0000000..a79da5b --- /dev/null +++ b/src/spindle/PKGBUILD.sh @@ -0,0 +1,43 @@ +#!/usr/bin/bash +cat << EOF > ${pkgbuild_path}/PKGBUILD +_pkgname=spindle +_pkgver=${tag} +pkgname=\${_pkgname/\-/\.} +pkgdesc='git collaboration platform built on ATproto' +pkgver=\${_pkgver/\-/\.} +pkgrel=1 +license=(MIT) +arch=(x86_64) +url=https://tangled.sh/@tangled.sh/core +depends=(docker) +conflicts=(spindle-git) +makedepends=(git go) +options=(strip !debug) +source=("tangled::git+\$url#tag=v\${_pkgver}" + \${_pkgname}.service + \${_pkgname}-tmpfiles.conf) +sha256sums=('set by updpkgsums' + 'set by updpkgsums' + 'set by updpkgsums') + +build() { + mkdir -p \${srcdir}/build + + export CGO_ENABLED=1 + export CGO_CPPFLAGS="\${CPPFLAGS}" + export CGO_CFLAGS="\${CFLAGS}" + export CGO_CXXFLAGS="\${CXXFLAGS}" + export CGO_LDFLAGS="\${LDFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" + + cd \${srcdir}/tangled + go build -o "\${srcdir}/build/spindle" ./cmd/spindle +} + +package() { + install -Dm644 "\${srcdir}/\${_pkgname}.service" "\${pkgdir}/usr/lib/systemd/system/\${_pkgname}.service" + install -Dm644 "\${srcdir}/\${_pkgname}-tmpfiles.conf" "\${pkgdir}/usr/lib/tmpfiles.d/\${_pkgname}.conf" + install -Dm755 "\${srcdir}/build/spindle" "\${pkgdir}/usr/bin/spindle" + install -Dm644 "\${srcdir}/tangled/license" "\${pkgdir}/usr/share/licenses/tangled/spindle.LICENSE" +} +EOF diff --git a/src/spindle/service.sh b/src/spindle/service.sh new file mode 100755 index 0000000..8310cd0 --- /dev/null +++ b/src/spindle/service.sh @@ -0,0 +1,24 @@ +#!/usr/bin/bash +cat << EOF > ${pkgbuild_path}/spindle.service +[Unit] +Description=tangled spindle server +After=network.target network-online.target docker.service +Wants=network-online.target +AssertPathExists=${spindle_path:-/var/lib/spindle} + +[Service] +Environment="SPINDLE_SERVER_HOSTNAME=%H" +Environment="SPINDLE_SERVER_LISTEN_ADDR=127.0.0.1:6555" +WorkingDirectory=${spindle_path:-/var/lib/spindle} +ExecStart=/usr/bin/spindle +Restart=always +User=${spindle_user:-root} +Group=${spindle_group:-root} +StandardOutput=journal +StandardError=journal +LimitNOFILE=65536 +LogsDirectory=spindle + +[Install] +WantedBy=multi-user.target +EOF diff --git a/src/spindle/tmpfiles.conf.sh b/src/spindle/tmpfiles.conf.sh new file mode 100755 index 0000000..83a8f77 --- /dev/null +++ b/src/spindle/tmpfiles.conf.sh @@ -0,0 +1,4 @@ +#!/usr/bin/bash +cat << EOF > ${pkgbuild_path}/spindle-tmpfiles.conf +d ${spindle_path:-/var/lib/tangled} 755 ${spindle_user:-root} ${spindle_group:-root} - +EOF diff --git a/update.sh b/update.sh index 4effb57..7594d55 100755 --- a/update.sh +++ b/update.sh @@ -20,6 +20,18 @@ for pkgbuild_path in knotserver knotserver-git; do cd .. done +for pkgbuild_path in spindle; do + for src in src/${pkgbuild_path}/*.sh; do + source ${src} + done + + cd $pkgbuild_path + updpkgsums + makepkg --printsrcinfo > .SRCINFO + + cd .. +done + for pkgbuild_path in appview; do cd $pkgbuild_path updpkgsums