mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
net-irc/ngircd: add new OpenRC service
Ebuild changes (r3): * update EAPI 7 -> 8 * uncomment PIDFile, ServerUID and ServerGID * correct ngircd.conf's owner Service changes (r2): * use pidfile * use declarative config * add configtest command * add reload command Signed-off-by: Anna Vyalkova <cyber+gentoo@sysrq.in> Closes: https://github.com/gentoo/gentoo/pull/24277 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
8
net-irc/ngircd/files/ngircd.conf.d
Normal file
8
net-irc/ngircd/files/ngircd.conf.d
Normal file
@@ -0,0 +1,8 @@
|
||||
# Configuration file
|
||||
#NGIRCD_CONFIGFILE="/etc/ngircd/ngircd.conf"
|
||||
|
||||
# PID file
|
||||
#NGIRCD_PIDFILE="/var/run/ngircd/ngircd.pid"
|
||||
|
||||
# Options for ngircd
|
||||
#NGIRCD_OPTS="-d -s"
|
||||
52
net-irc/ngircd/files/ngircd.init-r2.d
Normal file
52
net-irc/ngircd/files/ngircd.init-r2.d
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
extra_commands="configtest"
|
||||
extra_started_commands="reload"
|
||||
|
||||
description="IRC server"
|
||||
description_configtest="Run ngircd's internal config check."
|
||||
description_reload="Reload the ngircd's configuration."
|
||||
|
||||
: ${NGIRCD_CONFIGFILE:=/etc/ngircd/${RC_SVCNAME}.conf}
|
||||
|
||||
command="/usr/sbin/ngircd"
|
||||
command_args="${NGIRCD_OPTS} -f \"${NGIRCD_CONFIGFILE}\""
|
||||
command_args_foreground="-n"
|
||||
command_user="ngircd:ngircd"
|
||||
pidfile="${NGIRCD_PIDFILE:-/var/run/ngircd/${RC_SVCNAME}.pid}"
|
||||
|
||||
depend() {
|
||||
need net
|
||||
use logger
|
||||
provide ircd
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
checkpath -f "${pidfile}" -o ${command_user} || return 1
|
||||
if [ "${RC_CMD}" != "restart" ]; then
|
||||
configtest || return 1
|
||||
fi
|
||||
}
|
||||
|
||||
stop_pre() {
|
||||
if [ "${RC_CMD}" = "restart" ]; then
|
||||
configtest || return 1
|
||||
fi
|
||||
}
|
||||
|
||||
reload() {
|
||||
configtest || return 1
|
||||
ebegin "Refreshing ${RC_SVCNAME}'s configuration"
|
||||
start-stop-daemon --signal SIGHUP --pidfile "${pidfile}"
|
||||
eend $? "Failed to reload ${RC_SVCNAME}"
|
||||
}
|
||||
|
||||
configtest() {
|
||||
ebegin "Checking ${RC_SVCNAME}'s configuration"
|
||||
# "press enter to continue"
|
||||
echo | ${command} -f "${NGIRCD_CONFIGFILE}" -t >/dev/null
|
||||
|
||||
eend $? "failed, please correct errors in the config file"
|
||||
}
|
||||
111
net-irc/ngircd/ngircd-26.1-r3.ebuild
Normal file
111
net-irc/ngircd/ngircd-26.1-r3.ebuild
Normal file
@@ -0,0 +1,111 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}/usr/share/openpgp-keys/alexbarton.asc"
|
||||
inherit verify-sig
|
||||
|
||||
DESCRIPTION="An IRC server written from scratch"
|
||||
HOMEPAGE="https://ngircd.barton.de/"
|
||||
SRC_URI="https://arthur.barton.de/pub/${PN}/${P}.tar.gz"
|
||||
SRC_URI+=" verify-sig? ( https://arthur.barton.de/pub/${PN}/${P}.tar.gz.sig )"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~x64-macos"
|
||||
IUSE="debug gnutls ident irc-plus +ipv6 pam +ssl strict-rfc tcpd test zlib"
|
||||
|
||||
# Flaky test needs investigation (bug 719256)
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="
|
||||
acct-user/ngircd
|
||||
irc-plus? ( virtual/libiconv )
|
||||
ident? ( net-libs/libident )
|
||||
pam? ( sys-libs/pam )
|
||||
ssl? (
|
||||
gnutls? ( net-libs/gnutls:= )
|
||||
!gnutls? (
|
||||
dev-libs/openssl:0=
|
||||
)
|
||||
)
|
||||
tcpd? ( sys-apps/tcp-wrappers )
|
||||
zlib? ( sys-libs/zlib )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-tcltk/expect
|
||||
net-misc/netkit-telnetd
|
||||
)
|
||||
verify-sig? ( sec-keys/openpgp-keys-alexbarton )
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if ! use prefix ; then
|
||||
sed -i \
|
||||
-e "/;ServerUID = /s/65534/ngircd/" \
|
||||
-e "/;ServerGID = /s/65534/ngircd/" \
|
||||
doc/sample-ngircd.conf.tmpl || die
|
||||
fi
|
||||
|
||||
# make pidfiles work out-of-the-box
|
||||
sed -i \
|
||||
-e "/;PidFile = /s/;//" \
|
||||
-e "/;ServerUID = /s/;//" \
|
||||
-e "/;ServerGID = /s/;//" \
|
||||
doc/sample-ngircd.conf.tmpl || die
|
||||
|
||||
# Note that if we need to use automake, we need a certain version (for now):
|
||||
# https://github.com/ngircd/ngircd/issues/261
|
||||
# WANT_AUTOMAKE=1.11
|
||||
# eautomake
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myeconf=(
|
||||
--sysconfdir="${EPREFIX}"/etc/${PN}
|
||||
$(use_enable debug sniffer)
|
||||
$(use_enable debug)
|
||||
$(use_enable irc-plus ircplus)
|
||||
$(use_enable ipv6)
|
||||
$(use_enable strict-rfc)
|
||||
$(use_with irc-plus iconv)
|
||||
$(use_with ident)
|
||||
$(use_with pam)
|
||||
$(use_with tcpd tcp-wrappers)
|
||||
$(use_with zlib)
|
||||
)
|
||||
|
||||
if use ssl ; then
|
||||
if use gnutls ; then
|
||||
myeconf+=(
|
||||
$( use_with gnutls )
|
||||
)
|
||||
else
|
||||
myeconf+=(
|
||||
$( use_with !gnutls openssl )
|
||||
)
|
||||
fi
|
||||
fi
|
||||
|
||||
econf "${myeconf[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
fowners ngircd:ngircd /etc/ngircd/ngircd.conf
|
||||
newinitd "${FILESDIR}"/ngircd.init-r2.d ngircd
|
||||
newconfd "${FILESDIR}"/ngircd.conf.d ngircd
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -z ${REPLACING_VERSIONS} ]] && use pam ; then
|
||||
elog "ngircd will use PAMIsOptionalPAM by default, please change this option."
|
||||
elog "You may not be able to login until you change this."
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user