commit: bb749d2fc40c25acd5bc19a42a5fb5d45dcd8910
Author: Skyler Mäntysaari <sm+gentoo <AT> skym <DOT> fi>
AuthorDate: Tue Feb 11 13:08:08 2025 +0000
Commit: Skyler Mäntysaari <gentoo <AT> samip <DOT> fi>
CommitDate: Tue Feb 11 13:08:14 2025 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=bb749d2f
Revert "www-apps/gotosocial: treeclean"
This reverts commit 21086a769ada57003475d5bf4321c0f23fcc4136.
Signed-off-by: Skyler Mäntysaari <sm+gentoo <AT> skym.fi>
www-apps/gotosocial/Manifest | 4 ++
www-apps/gotosocial/files/gotosocial.confd | 2 +
www-apps/gotosocial/files/gotosocial.initd | 42 +++++++++++++
www-apps/gotosocial/files/gotosocial.service | 45 +++++++++++++
www-apps/gotosocial/files/gotosocial.tmpfiles | 1 +
www-apps/gotosocial/gotosocial-0.10.0.ebuild | 88 ++++++++++++++++++++++++++
www-apps/gotosocial/gotosocial-0.9.0.ebuild | 91 +++++++++++++++++++++++++++
www-apps/gotosocial/metadata.xml | 9 +++
8 files changed, 282 insertions(+)
diff --git a/www-apps/gotosocial/Manifest b/www-apps/gotosocial/Manifest
new file mode 100644
index 000000000..0153a5c1a
--- /dev/null
+++ b/www-apps/gotosocial/Manifest
@@ -0,0 +1,4 @@
+DIST gotosocial-0.10.0-source-code.tar.gz 55714610 BLAKE2B
5db1bb11d799cc85e7667c205a19df88b901598dfa64cb2b10c58ee6ea327cf5d2e74cba58312d5b7444200ca8a6866b6305008e41775f2906db8faddb078b92
SHA512
fc647e6fb35ef8a9969014d4e785f868e5c85fb2305f7ac204ba830d0774cf4fa7cbb25b7a47fed0b8f592e45299cb2bdbbf5f4a6ae45915a540e9c3ab92f3c4
+DIST gotosocial-0.9.0-source-code.tar.gz 55117728 BLAKE2B
e9a02e3d6b27d242db3a239e95653973a498b67e606824d8a2ff141498b8bbf6be0f434d96abad2129e7ca4dab379b815ac04749e036caf0963d6160508768bd
SHA512
7638a069a47d615264baa74d838052f913b6c71497396c2d2b877a870a5ad1639d218dd9877fb6b37c347d4e243524527260f48f983a68bb29c4b76ec3ce8c7c
+DIST gotosocial_0.10.0_web-assets.tar.gz 1362405 BLAKE2B
78168bcffbc5081cfb81ddcba314d3aa58e41fd115303997306495ad79c5d6fa3d2540b1d4da87e43cf7c4f62e737a859c5bdf2959d60371e25125dd21567f9e
SHA512
4a6b2248969e9e254764e4b03fa6d7d884d74da8b25665feebca117eeeeae3aa3dc8fca995ca7c939f6437aa35b7d09dbd824727c7d0a7a4745db29916ab74be
+DIST gotosocial_0.9.0_web-assets.tar.gz 1357671 BLAKE2B
aeab657eb72db5178287afd75b6c1d06238f8c769f3bfc21cf6249b8eed468b7009b2401c64aca22964ebd7a6554066a2c38d9d441a39789c731faa6e9c17c29
SHA512
0d83b093ab8f45ae8ed3eebcf1aed66b27a5d996e5c0dc30e16cc99a881b7e2b333ba4cf4fd78486c42b3bef9245d1ba89743a87ae0f969e8be6a756cf1dcfc6
diff --git a/www-apps/gotosocial/files/gotosocial.confd
b/www-apps/gotosocial/files/gotosocial.confd
new file mode 100644
index 000000000..9ea7d8fdd
--- /dev/null
+++ b/www-apps/gotosocial/files/gotosocial.confd
@@ -0,0 +1,2 @@
+# GoToSocial configuration file
+#GOTOSOCIAL_CONFIG="/etc/gotosocial/config.yaml"
diff --git a/www-apps/gotosocial/files/gotosocial.initd
b/www-apps/gotosocial/files/gotosocial.initd
new file mode 100644
index 000000000..91ed760c7
--- /dev/null
+++ b/www-apps/gotosocial/files/gotosocial.initd
@@ -0,0 +1,42 @@
+#!/sbin/openrc-run
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+# shellcheck shell=sh disable=SC2034
+
+: ${GOTOSOCIAL_CONFIG:=/etc/gotosocial/config.yaml}
+
+extra_commands="adduser"
+description_adduser="create a user"
+
+description="GoToSocial Server"
+command="/usr/bin/gotosocial"
+command_args="--config-path ${GOTOSOCIAL_CONFIG} server start"
+command_user="gotosocial:gotosocial"
+command_background=yes
+pidfile="/run/gotosocial.pid"
+
+depend() {
+ need net
+ after postgresql
+}
+
+adduser() {
+ # handle Ctrl+C
+ trap "stty echo" INT
+
+ printf "Enter username: "
+ read username
+
+ printf "Enter email: "
+ read email
+
+ stty -echo
+ printf "Enter password: "
+ read password
+ stty echo
+
+ start-stop-daemon --exec "${command}" --user "${command_user}" -- \
+ --config-path "${GOTOSOCIAL_CONFIG}" admin account create \
+ --username "${username}" --email "${email}" --password
"${password}"
+ return $?
+}
diff --git a/www-apps/gotosocial/files/gotosocial.service
b/www-apps/gotosocial/files/gotosocial.service
new file mode 100644
index 000000000..de29ca6d2
--- /dev/null
+++ b/www-apps/gotosocial/files/gotosocial.service
@@ -0,0 +1,45 @@
+[Unit]
+Description=GoToSocial Server
+
+[Service]
+User=gotosocial
+Group=gotosocial
+
+Type=exec
+Restart=on-failure
+
+ExecStart=/usr/bin/gotosocial --config-path /etc/gotosocial/config.yaml server
start
+
+StandardOutput=append:/var/log/gotosocial/gotosocial.log
+StandardError=inherit
+
+# Sandboxing options to harden security
+NoNewPrivileges=yes
+PrivateTmp=yes
+PrivateDevices=yes
+RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
+RestrictNamespaces=yes
+RestrictRealtime=yes
+DevicePolicy=closed
+ProtectSystem=full
+ProtectControlGroups=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+LockPersonality=yes
+SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
+
+# Denying access to capabilities that should not be relevant
+CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD
+CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE
+CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT
+CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK
+CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM
+CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG
+CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE
+CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW
+CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG
+# You might need this if you are running as non-root on a privileged port
(below 1024)
+#AmbientCapabilities=CAP_NET_BIND_SERVICE
+
+[Install]
+WantedBy=default.target
diff --git a/www-apps/gotosocial/files/gotosocial.tmpfiles
b/www-apps/gotosocial/files/gotosocial.tmpfiles
new file mode 100644
index 000000000..c04462839
--- /dev/null
+++ b/www-apps/gotosocial/files/gotosocial.tmpfiles
@@ -0,0 +1 @@
+d /var/lib/gotosocial 0755 gotosocial gotosocial -
diff --git a/www-apps/gotosocial/gotosocial-0.10.0.ebuild
b/www-apps/gotosocial/gotosocial-0.10.0.ebuild
new file mode 100644
index 000000000..6318d2cc0
--- /dev/null
+++ b/www-apps/gotosocial/gotosocial-0.10.0.ebuild
@@ -0,0 +1,88 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module systemd tmpfiles
+
+DESCRIPTION="Fast, fun, ActivityPub server, powered by Go"
+HOMEPAGE="
+ https://gotosocial.org/
+ https://github.com/superseriousbusiness/gotosocial
+"
+GH_RELEASE="https://github.com/superseriousbusiness/${PN}/releases/download/v${PV}"
+SRC_URI="
+ ${GH_RELEASE}/${P}-source-code.tar.gz
+ ${GH_RELEASE}/${PN}_${PV}_web-assets.tar.gz
+"
+S="${WORKDIR}"
+
+LICENSE="|| ( WTFPL-2 CC0-1.0 ) AGPL-3 Apache-2.0 BSD BSD-2 CC0-1.0 GPL-3 MIT
MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="acct-user/gotosocial"
+
+DOCS=( archive {CONTRIBUTING,README,ROADMAP}.md )
+
+src_unpack() {
+ # source code
+ unpack ${P}-source-code.tar.gz
+ rm -r web || die
+
+ # prebuilt web assets
+ unpack ${PN}_${PV}_web-assets.tar.gz
+}
+
+src_prepare() {
+ default
+
+ sed -i example/config.yaml \
+ -e
"s|./web/template/|${EPREFIX}/usr/share/gotosocial/web/template/|g" \
+ -e
"s|./web/assets/|${EPREFIX}/usr/share/gotosocial/web/assets/|g" \
+ -e
"s|/gotosocial/storage|${EPREFIX}/var/lib/gotosocial/storage|g" \
+ || die
+}
+
+src_configure() {
+ GOFLAGS+=" -tags=netgo,osusergo,static_build,kvformat"
+}
+
+src_compile() {
+ local myargs=(
+ -trimpath
+ -ldflags "-X main.Version=${PV}"
+ )
+
+ ego build "${myargs[@]}" ./cmd/gotosocial
+}
+
+src_test() {
+ local -x GTS_DB_TYPE="sqlite"
+ local -x GTS_DB_ADDRESS=":memory:"
+
+ local -x GOFLAGS
+ GOFLAGS="${GOFLAGS//-v/}"
+ GOFLAGS="${GOFLAGS//-x/}"
+
+ ego test -vet off ./...
+}
+
+src_install() {
+ dobin gotosocial
+
+ newinitd "${FILESDIR}"/gotosocial.initd ${PN}
+ newconfd "${FILESDIR}"/gotosocial.confd ${PN}
+ systemd_dounit "${FILESDIR}"/gotosocial.service
+ newtmpfiles "${FILESDIR}"/gotosocial.tmpfiles ${PN}.conf
+
+ insinto /usr/share/gotosocial
+ doins -r web
+
+ insinto /etc/gotosocial
+ doins example/config.yaml
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}.conf
+}
diff --git a/www-apps/gotosocial/gotosocial-0.9.0.ebuild
b/www-apps/gotosocial/gotosocial-0.9.0.ebuild
new file mode 100644
index 000000000..902fcc9ad
--- /dev/null
+++ b/www-apps/gotosocial/gotosocial-0.9.0.ebuild
@@ -0,0 +1,91 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module systemd tmpfiles
+
+DESCRIPTION="Fast, fun, ActivityPub server, powered by Go"
+HOMEPAGE="
+ https://gotosocial.org/
+ https://github.com/superseriousbusiness/gotosocial
+"
+GH_RELEASE="https://github.com/superseriousbusiness/${PN}/releases/download/v${PV}"
+SRC_URI="
+ ${GH_RELEASE}/${P}-source-code.tar.gz
+ ${GH_RELEASE}/${PN}_${PV}_web-assets.tar.gz
+"
+S="${WORKDIR}"
+
+LICENSE="|| ( WTFPL-2 CC0-1.0 ) AGPL-3 Apache-2.0 BSD BSD-2 CC0-1.0 GPL-3 MIT
MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# Flaky tests
+RESTRICT="test"
+
+RDEPEND="acct-user/gotosocial"
+
+DOCS=( archive {CONTRIBUTING,README,ROADMAP}.md )
+
+src_unpack() {
+ # source code
+ unpack ${P}-source-code.tar.gz
+ rm -r web || die
+
+ # prebuilt web assets
+ unpack ${PN}_${PV}_web-assets.tar.gz
+}
+
+src_prepare() {
+ default
+
+ sed -i example/config.yaml \
+ -e
"s|./web/template/|${EPREFIX}/usr/share/gotosocial/web/template/|g" \
+ -e
"s|./web/assets/|${EPREFIX}/usr/share/gotosocial/web/assets/|g" \
+ -e
"s|/gotosocial/storage|${EPREFIX}/var/lib/gotosocial/storage|g" \
+ || die
+}
+
+src_configure() {
+ GOFLAGS+=" -tags=netgo,osusergo,static_build,kvformat"
+}
+
+src_compile() {
+ local myargs=(
+ -trimpath
+ -ldflags "-X main.Version=${PV}"
+ )
+
+ ego build "${myargs[@]}" ./cmd/gotosocial
+}
+
+src_test() {
+ local -x GTS_DB_TYPE="sqlite"
+ local -x GTS_DB_ADDRESS=":memory:"
+
+ local -x GOFLAGS
+ GOFLAGS="${GOFLAGS//-v/}"
+ GOFLAGS="${GOFLAGS//-x/}"
+
+ ego test -vet off ./...
+}
+
+src_install() {
+ dobin gotosocial
+
+ newinitd "${FILESDIR}"/gotosocial.initd ${PN}
+ newconfd "${FILESDIR}"/gotosocial.confd ${PN}
+ systemd_dounit "${FILESDIR}"/gotosocial.service
+ newtmpfiles "${FILESDIR}"/gotosocial.tmpfiles ${PN}.conf
+
+ insinto /usr/share/gotosocial
+ doins -r web
+
+ insinto /etc/gotosocial
+ doins example/config.yaml
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}.conf
+}
diff --git a/www-apps/gotosocial/metadata.xml b/www-apps/gotosocial/metadata.xml
new file mode 100644
index 000000000..ced5ba1d3
--- /dev/null
+++ b/www-apps/gotosocial/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <doc>https://docs.gotosocial.org/</doc>
+ <remote-id
type="github">superseriousbusiness/gotosocial</remote-id>
+ </upstream>
+</pkgmetadata>