summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-06-15 23:43:25 +0100
committerSam James <sam@gentoo.org>2022-06-15 23:43:25 +0100
commit3ef274e3ab39a17aac1416bc73f037cf4a445589 (patch)
treedeba291c7892d7dfa2b0390ab3ce3d3418584ebd /net-irc
parentmedia-video/pipewire: sync live (diff)
downloadgentoo-3ef274e3ab39a17aac1416bc73f037cf4a445589.tar.gz
gentoo-3ef274e3ab39a17aac1416bc73f037cf4a445589.tar.bz2
gentoo-3ef274e3ab39a17aac1416bc73f037cf4a445589.zip
net-irc/ngircd: add systemd unit
Reported on forums at https://forums.gentoo.org/viewtopic-p-8719094.html. Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-irc')
-rw-r--r--net-irc/ngircd/files/ngircd-26.1-systemd-unit.patch24
-rw-r--r--net-irc/ngircd/ngircd-26.1-r5.ebuild123
2 files changed, 147 insertions, 0 deletions
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/ngircd-26.1-r5.ebuild b/net-irc/ngircd/ngircd-26.1-r5.ebuild
new file mode 100644
index 000000000000..4c6293a77170
--- /dev/null
+++ b/net-irc/ngircd/ngircd-26.1-r5.ebuild
@@ -0,0 +1,123 @@
+# 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 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
+}