diff options
Diffstat (limited to 'net-irc/ngircd')
-rw-r--r-- | net-irc/ngircd/Manifest | 3 | ||||
-rw-r--r-- | net-irc/ngircd/files/ngircd-26.1-systemd-unit.patch | 24 | ||||
-rw-r--r-- | net-irc/ngircd/files/ngircd.conf | 1 | ||||
-rw-r--r-- | net-irc/ngircd/files/ngircd.conf.d | 8 | ||||
-rw-r--r-- | net-irc/ngircd/files/ngircd.init-r1.d | 21 | ||||
-rw-r--r-- | net-irc/ngircd/files/ngircd.init-r2.d | 52 | ||||
-rw-r--r-- | net-irc/ngircd/metadata.xml | 2 | ||||
-rw-r--r-- | net-irc/ngircd/ngircd-26.1-r5.ebuild | 123 | ||||
-rw-r--r-- | net-irc/ngircd/ngircd-26.1.ebuild | 105 |
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 -} |