summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-irc/ngircd')
-rw-r--r--net-irc/ngircd/Manifest3
-rw-r--r--net-irc/ngircd/files/ngircd-26.1-systemd-unit.patch24
-rw-r--r--net-irc/ngircd/files/ngircd.conf1
-rw-r--r--net-irc/ngircd/files/ngircd.conf.d8
-rw-r--r--net-irc/ngircd/files/ngircd.init-r1.d21
-rw-r--r--net-irc/ngircd/files/ngircd.init-r2.d52
-rw-r--r--net-irc/ngircd/metadata.xml2
-rw-r--r--net-irc/ngircd/ngircd-26.1-r5.ebuild123
-rw-r--r--net-irc/ngircd/ngircd-26.1.ebuild105
9 files changed, 211 insertions, 128 deletions
diff --git a/net-irc/ngircd/Manifest b/net-irc/ngircd/Manifest
index f22bc4771b7e..d7843a4c462e 100644
--- a/net-irc/ngircd/Manifest
+++ b/net-irc/ngircd/Manifest
@@ -1 +1,2 @@
-DIST ngircd-26.1.tar.gz 562938 BLAKE2B a1a4ca8b6e12a02cb4ba2e07d777cf77051b5330464c91634cfac0b385157ab7c648e3b71151247bc8ee6cc847e84755fdca3d9b4a25205bbb57b8296995dd17 SHA512 4a3ee379dd8d8655a71134c745f750359ceb0512e184db555f65f2bcab68087480365a35680a9ec75b1e6eb0fef23e1cbe0a0e13c3c58d211e5a520a8eeaa71c
+DIST ngircd-26.1.tar.xz 375812 BLAKE2B 4bd7dae47b579bdfaceee0e3ff1b30ac7c70326cd9d609a128192b1efbec17ac50010cb1bf27f4ca6d921700b7bd8cf3d0e8fb5bc569a84d6a101be10ec5832a SHA512 6333244e3fb2dc00ee9812c8c45990baa95ff473a7037a0a11ca495bed86fa438110ad5151d86b9274b6187d86b7b5712fdca2b74b8cb92f7f66fa10cf1961ee
+DIST ngircd-26.1.tar.xz.sig 310 BLAKE2B 6bf3330387ef01af32c0026e12e5fe5a9a34f5d5fc221a66931312fb70d17832259b94e370ddc49f8834d0d29b9c53b52f11ddec3bfc12655472e046cc569e99 SHA512 c1bbc481dd92e487706fa0b3b18dffd214018946fad8ced77feccc1105a65fcc33c82b0e93529a14ad103ef784da20e3bf86358a8f26cdddeac9f947833d6848
diff --git a/net-irc/ngircd/files/ngircd-26.1-systemd-unit.patch b/net-irc/ngircd/files/ngircd-26.1-systemd-unit.patch
new file mode 100644
index 000000000000..f15025cc4856
--- /dev/null
+++ b/net-irc/ngircd/files/ngircd-26.1-systemd-unit.patch
@@ -0,0 +1,24 @@
+diff --git a/contrib/ngircd.service b/contrib/ngircd.service
+index e4c30e2..ba1b513 100644
+--- a/contrib/ngircd.service
++++ b/contrib/ngircd.service
+@@ -12,8 +12,8 @@ Before=bopm.service
+
+ [Service]
+ Type=forking
+-User=irc
+-Group=irc
++User=ngircd
++Group=ngircd
+ # Settings & limits:
+ CapabilityBoundingSet=CAP_SYS_CHROOT CAP_NET_BIND_SERVICE
+ MemoryDenyWriteExecute=yes
+@@ -27,7 +27,7 @@ ProtectKernelTunables=yes
+ ProtectSystem=full
+ RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
+ RestrictRealtime=yes
+-RuntimeDirectory=ircd
++RuntimeDirectory=ngircd
+ RuntimeDirectoryMode=750
+ # Try to load "default files" from any Debian package variant to keep this
+ # unit generic.
diff --git a/net-irc/ngircd/files/ngircd.conf b/net-irc/ngircd/files/ngircd.conf
new file mode 100644
index 000000000000..e9993a3430ef
--- /dev/null
+++ b/net-irc/ngircd/files/ngircd.conf
@@ -0,0 +1 @@
+d /run/ngircd 0755 ngircd ngircd -
diff --git a/net-irc/ngircd/files/ngircd.conf.d b/net-irc/ngircd/files/ngircd.conf.d
new file mode 100644
index 000000000000..6088e5dae69a
--- /dev/null
+++ b/net-irc/ngircd/files/ngircd.conf.d
@@ -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"
diff --git a/net-irc/ngircd/files/ngircd.init-r1.d b/net-irc/ngircd/files/ngircd.init-r1.d
deleted file mode 100644
index 3346d698d441..000000000000
--- a/net-irc/ngircd/files/ngircd.init-r1.d
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-depend() {
- need net
- use logger
- provide ircd
-}
-
-start() {
- ebegin "Starting ngIRCd"
- start-stop-daemon --start --quiet --exec /usr/sbin/ngircd
- eend $?
-}
-
-stop() {
- ebegin "Stopping ngIRCd"
- start-stop-daemon --stop --quiet --exec /usr/sbin/ngircd
- eend $?
-}
diff --git a/net-irc/ngircd/files/ngircd.init-r2.d b/net-irc/ngircd/files/ngircd.init-r2.d
new file mode 100644
index 000000000000..1a54154ff417
--- /dev/null
+++ b/net-irc/ngircd/files/ngircd.init-r2.d
@@ -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"
+}
diff --git a/net-irc/ngircd/metadata.xml b/net-irc/ngircd/metadata.xml
index 92912912526f..b9ed1a091b88 100644
--- a/net-irc/ngircd/metadata.xml
+++ b/net-irc/ngircd/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>sam@gentoo.org</email>
diff --git a/net-irc/ngircd/ngircd-26.1-r5.ebuild b/net-irc/ngircd/ngircd-26.1-r5.ebuild
new file mode 100644
index 000000000000..edb828a920e5
--- /dev/null
+++ b/net-irc/ngircd/ngircd-26.1-r5.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/alexbarton.asc
+inherit tmpfiles systemd verify-sig
+
+DESCRIPTION="An IRC server written from scratch"
+HOMEPAGE="https://ngircd.barton.de/"
+SRC_URI="https://arthur.barton.de/pub/${PN}/${P}.tar.xz"
+SRC_URI+=" verify-sig? ( https://arthur.barton.de/pub/${PN}/${P}.tar.xz.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 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-26.1-systemd-unit.patch
+)
+
+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 myeconfargs=(
+ --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
+ myeconfargs+=(
+ $( use_with gnutls )
+ )
+ else
+ myeconfargs+=(
+ $( use_with !gnutls openssl )
+ )
+ fi
+ fi
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ fowners ngircd:ngircd /etc/ngircd/ngircd.conf
+
+ newinitd "${FILESDIR}"/ngircd.init-r2.d ngircd
+ newconfd "${FILESDIR}"/ngircd.conf.d ngircd
+
+ systemd_dounit contrib/ngircd.{service,socket}
+
+ dotmpfiles "${FILESDIR}"/ngircd.conf
+}
+
+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
+
+ tmpfiles_process ngircd.conf
+}
diff --git a/net-irc/ngircd/ngircd-26.1.ebuild b/net-irc/ngircd/ngircd-26.1.ebuild
deleted file mode 100644
index 4a9c13b03363..000000000000
--- a/net-irc/ngircd/ngircd-26.1.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Bug: https://github.com/ngircd/ngircd/issues/261
-WANT_AUTOMAKE=1.11.6
-inherit autotools
-
-DESCRIPTION="An IRC server written from scratch"
-HOMEPAGE="https://ngircd.barton.de/"
-SRC_URI="https://arthur.barton.de/pub/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86 ~x64-macos"
-IUSE="debug gnutls ident irc-plus +ipv6 libressl pam +ssl strict-rfc tcpd test zlib"
-
-#RESTRICT="!test? ( test )"
-# Flaky test needs investigation (bug 719256)
-RESTRICT="test"
-
-RDEPEND="
- acct-user/ngircd
- acct-group/ngircd
- irc-plus? ( virtual/libiconv )
- ident? ( net-libs/libident )
- pam? ( sys-libs/pam )
- ssl? (
- gnutls? ( net-libs/gnutls:= )
- !gnutls? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- )
- )
- tcpd? ( sys-apps/tcp-wrappers )
- zlib? ( sys-libs/zlib )
-"
-
-BDEPEND="sys-devel/automake:1.11"
-
-DEPEND="
- ${RDEPEND}
- test? (
- dev-tcltk/expect
- net-misc/netkit-telnetd
- )
-"
-
-src_prepare() {
- default
-
- if ! use prefix; then
- sed -i \
- -e "s:;ServerUID = 65534:ServerUID = ngircd:" \
- -e "s:;ServerGID = 65534:ServerGID = ngircd:" \
- doc/sample-ngircd.conf.tmpl || die
- fi
-
- # Once https://github.com/ngircd/ngircd/pull/270 is in a release (ngircd 26), we can remove
- # the eautomake/autotools machinery.
- eautomake
-}
-
-src_configure() {
- local myconf=(
- --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
- myconf+=(
- $( use_with gnutls )
- )
- else
- myconf+=(
- $( use_with !gnutls openssl )
- )
- fi
- fi
-
- econf "${myconf[@]}"
-}
-
-src_install() {
- default
- newinitd "${FILESDIR}"/ngircd.init-r1.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
-}