commit:     3ef274e3ab39a17aac1416bc73f037cf4a445589
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 15 22:43:25 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jun 15 22:43:25 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3ef274e3

net-irc/ngircd: add systemd unit

Reported on forums at https://forums.gentoo.org/viewtopic-p-8719094.html.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../ngircd/files/ngircd-26.1-systemd-unit.patch    |  24 ++++
 net-irc/ngircd/ngircd-26.1-r5.ebuild               | 123 +++++++++++++++++++++
 2 files changed, 147 insertions(+)

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
+}

Reply via email to