net-irc/pounce: update OpenRC service

* Run as a non-privileged user

* Use supervise-daemon instead of s-s-d

* Log to syslog

Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>
This commit is contained in:
Anna (cybertailor) Vyalkova
2025-04-20 10:15:06 +05:00
parent 5aec1da9e0
commit 08b411e749
3 changed files with 98 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
# Configuration file.
POUNCE_CONFIG="/etc/pounce/example.conf"
# Configure the user[:group] pounce will run as.
#POUNCE_USER="pounce:pounce"

View File

@@ -0,0 +1,33 @@
#!/sbin/openrc-run
# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
# shellcheck shell=sh
extra_started_commands="reload"
description="IRC bouncer"
description_reload="Refresh TLS keys"
supervisor="supervise-daemon"
command="/usr/bin/pounce"
command_args="${POUNCE_CONFIG:-/etc/pounce/pounce.conf}"
command_user="${POUNCE_USER:-pounce:pounce}"
pidfile="/run/pounce/${RC_SVCNAME}.pid"
output_logger="logger -p daemon.info -t pounce --"
error_logger="logger -p daemon.err -t pounce --"
depend() {
use dns logger
need net
}
start_pre() {
checkpath -d -o "${command_user}" /run/pounce
}
reload() {
ebegin "Refreshing ${RC_SVCNAME} keys"
start-stop-daemon --signal SIGUSR1 --pidfile "${pidfile}"
eend $? "Failed to reload ${RC_SVCNAME}"
}

View File

@@ -0,0 +1,60 @@
# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit edo toolchain-funcs
DESCRIPTION="Multi-client, TLS-only IRC bouncer"
HOMEPAGE="https://git.causal.agency/pounce/about/"
SRC_URI="https://git.causal.agency/${PN}/snapshot/${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="palaver"
DEPEND="
dev-libs/libretls:=
virtual/libcrypt:=
palaver? (
dev-db/sqlite:3
net-misc/curl
)
"
RDEPEND="${DEPEND}
acct-user/pounce
"
BDEPEND="virtual/pkgconfig"
DOCS=( {QUIRKS,README}.7 )
src_configure() {
tc-export CC
local confargs=(
--enable-notify
$(use_enable palaver)
--prefix="${EPREFIX}/usr"
--mandir="${EPREFIX}/usr/share/man"
)
# note: not an autoconf configure script
edo ./configure "${confargs[@]}"
}
src_compile() {
emake all
}
src_install() {
emake DESTDIR="${D}" install
einstalldocs
newinitd "${FILESDIR}"/pounce.initd-r1 pounce
newconfd "${FILESDIR}"/pounce.confd-r1 pounce
insinto /etc/pounce
doins "${FILESDIR}"/example.conf
}