summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-irc')
-rw-r--r--net-irc/ngircd/Manifest1
-rw-r--r--net-irc/ngircd/files/ngircd-25-fix-gcc-10.patch77
-rw-r--r--net-irc/ngircd/files/ngircd-25-make-env.patch75
-rw-r--r--net-irc/ngircd/metadata.xml2
-rw-r--r--net-irc/ngircd/ngircd-25.ebuild111
5 files changed, 266 insertions, 0 deletions
diff --git a/net-irc/ngircd/Manifest b/net-irc/ngircd/Manifest
index 3f5358b844b7..a9321e747c20 100644
--- a/net-irc/ngircd/Manifest
+++ b/net-irc/ngircd/Manifest
@@ -1,2 +1,3 @@
DIST ngircd-23.tar.gz 517686 BLAKE2B 1e1d7386a95f22917e6f69ec43bc48a8031543c48d6141a16d81fd935dab47ae89d8bbc91d9d71a26b0a1d2fd2040feb478e773fcc2a3049061fc0b21c8bad18 SHA512 714fbb4af12335e62c615fa1e8de9c7366c4c6da6af9b334019ba900dce072067f7b08199de8c96aad5dd4b9b786b57d536ba9dc92c62b37d2ae11960dbd01b1
DIST ngircd-24.tar.gz 524968 BLAKE2B 8ec0518d54f43a4c42fbf9744d217eb2aae498fe4f0010bce6ad68164037c2e55dc2b9681babce8ca5f7e26bac60a91389c63dab397d349dd4bcbcce6c2e9839 SHA512 66d1b9576c03d0a70be17a235f2da50ee661646cd428d18a6c61975407671dd4a3a545069258536773b27d4fb63523527366bbbf4f35cb08111dc60842924395
+DIST ngircd-25.tar.gz 527886 BLAKE2B ab75c9a904fae8da4c89e07bd66bb000bc9b614e27269be3ac6f55254c77abeb2d6f7d0afc6d05630f7c548ea13d842d4c0376123035f9417eda55565a69dcec SHA512 0c96e97da312fe86c50007a72db03f85b9f79df053806f50badd07c7ca8e8bddd99adb478eab8be9630330707d7aa578b5d0bd3017b59bf4515319a64c29ea6c
diff --git a/net-irc/ngircd/files/ngircd-25-fix-gcc-10.patch b/net-irc/ngircd/files/ngircd-25-fix-gcc-10.patch
new file mode 100644
index 000000000000..33e0d444bd56
--- /dev/null
+++ b/net-irc/ngircd/files/ngircd-25-fix-gcc-10.patch
@@ -0,0 +1,77 @@
+From f27827d7937375b5348107ca7427abf74c9eff3d Mon Sep 17 00:00:00 2001
+From: michi <michi+ngircd@dataswamp.org>
+Date: Tue, 14 Apr 2020 16:53:02 +0200
+Subject: [PATCH] Unbreak GCC 10 (-fno-common) build
+
+---
+ src/ngircd/conn.c | 1 +
+ src/ngircd/conn.h | 14 +++++++++++---
+ src/ngircd/ngircd.c | 1 +
+ src/portab/portab.h | 4 ++++
+ 4 files changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c
+index f62e9675..e14e6c08 100644
+--- a/src/ngircd/conn.c
++++ b/src/ngircd/conn.c
+@@ -10,6 +10,7 @@
+ */
+
+ #define CONN_MODULE
++#define CONN_MODULE_GLOBAL_INIT
+
+ #include "portab.h"
+
+diff --git a/src/ngircd/conn.h b/src/ngircd/conn.h
+index c642541f..869477f0 100644
+--- a/src/ngircd/conn.h
++++ b/src/ngircd/conn.h
+@@ -105,9 +105,17 @@ typedef struct _Connection
+ #endif
+ } CONNECTION;
+
+-GLOBAL CONNECTION *My_Connections;
+-GLOBAL CONN_ID Pool_Size;
+-GLOBAL long WCounter;
++
++#ifdef CONN_MODULE_GLOBAL_INIT
++CONNECTION *My_Connections;
++CONN_ID Pool_Size;
++long WCounter;
++#else
++extern CONNECTION *My_Connections;
++extern CONN_ID Pool_Size;
++extern long WCounter;
++#endif
++
+
+ #define CONNECTION2ID(x) (long)(x - My_Connections)
+
+diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c
+index 7166640b..41255ca0 100644
+--- a/src/ngircd/ngircd.c
++++ b/src/ngircd/ngircd.c
+@@ -9,6 +9,7 @@
+ * Please read the file COPYING, README and AUTHORS for more information.
+ */
+
++#define GLOBAL_INIT
+ #include "portab.h"
+
+ /**
+diff --git a/src/portab/portab.h b/src/portab/portab.h
+index 70d5ed3e..43f2f907 100644
+--- a/src/portab/portab.h
++++ b/src/portab/portab.h
+@@ -102,7 +102,11 @@ typedef unsigned char bool;
+ #endif
+
+ #undef GLOBAL
++#ifdef GLOBAL_INIT
+ #define GLOBAL
++#else
++#define GLOBAL extern
++#endif
+
+ /* SPLint */
+
diff --git a/net-irc/ngircd/files/ngircd-25-make-env.patch b/net-irc/ngircd/files/ngircd-25-make-env.patch
new file mode 100644
index 000000000000..e6494c720079
--- /dev/null
+++ b/net-irc/ngircd/files/ngircd-25-make-env.patch
@@ -0,0 +1,75 @@
+--- a/Makefile.am 2016-09-18 18:01:30.000000000 -0000
++++ b/Makefile.am 2020-04-20 14:01:43.166312404 -0000
+@@ -25,13 +25,13 @@
+ rm -f config.log debian
+
+ testsuite:
+- cd src/testsuite && make check
++ cd src/testsuite && ${MAKE} check
+
+ lint:
+- cd src/ngircd && make lint
++ cd src/ngircd && ${MAKE} lint
+
+ srcdoc:
+- cd doc && make srcdoc
++ cd doc && ${MAKE} srcdoc
+
+ have-xcodebuild:
+ @xcodebuild -project contrib/MacOSX/ngIRCd.xcodeproj -list \
+@@ -66,7 +66,7 @@
+ --out ../../$(distdir).mpkg
+ rm -f $(distdir).mpkg.zip
+ zip -ro9 $(distdir).mpkg.zip $(distdir).mpkg
+- make osxpkg-clean
++ ${MAKE} osxpkg-clean
+
+ osxpkg-clean:
+ [ ! -r ngircd.dest ] || sudo -n rm -rf ngircd.dest
+@@ -74,12 +74,12 @@
+
+ osxpkg-dest: have-xcodebuild osxpkg-clean clean
+ ./configure --prefix=/opt/ngircd
+- make xcode
+- make -C contrib/MacOSX de.barton.ngircd.plist
++ ${MAKE} xcode
++ ${MAKE} -C contrib/MacOSX de.barton.ngircd.plist
+ mkdir -p ngircd.dest/opt/ngircd/sbin
+- DESTDIR="$$PWD/ngircd.dest" make -C doc install
+- DESTDIR="$$PWD/ngircd.dest" make -C contrib install
+- DESTDIR="$$PWD/ngircd.dest" make -C man install
++ DESTDIR="$$PWD/ngircd.dest" ${MAKE} -C doc install
++ DESTDIR="$$PWD/ngircd.dest" ${MAKE} -C contrib install
++ DESTDIR="$$PWD/ngircd.dest" ${MAKE} -C man install
+ cp contrib/MacOSX/build/Default/ngIRCd \
+ ngircd.dest/opt/ngircd/sbin/ngircd
+ rm ngircd.dest/opt/ngircd/etc/ngircd.conf
+--- a/doc/Makefile.am 2016-01-16 13:23:40.000000000 -0000
++++ b/doc/Makefile.am 2020-04-20 14:05:45.316912143 -0000
+@@ -55,7 +55,7 @@
+ install-data-hook: $(static_docs) $(toplevel_docs) $(generated_docs)
+ $(MKDIR_P) -m 755 $(DESTDIR)$(sysconfdir)
+ @if [ ! -f $(DESTDIR)$(sysconfdir)/ngircd.conf ]; then \
+- make install-config; \
++ ${MAKE} install-config; \
+ fi
+ $(MKDIR_P) -m 755 $(DESTDIR)$(docdir)
+ for f in $(static_docs) $(toplevel_docs); do \
+@@ -75,7 +75,7 @@
+ uninstall-hook:
+ rm -rf $(DESTDIR)$(docdir)
+ @if cmp --silent sample-ngircd.conf $(DESTDIR)$(sysconfdir)/ngircd.conf; then \
+- make uninstall-config; \
++ ${MAKE} uninstall-config; \
+ else \
+ echo; \
+ echo " ** NOTE: Not uninstalling changed configuration file:"; \
+@@ -87,7 +87,7 @@
+ rm -f $(DESTDIR)$(sysconfdir)/ngircd.conf
+
+ srcdoc:
+- make -C src srcdoc
++ ${MAKE} -C src srcdoc
+
+ .PHONY: install-config uninstall-config srcdoc
+
diff --git a/net-irc/ngircd/metadata.xml b/net-irc/ngircd/metadata.xml
index fab3207f6164..fe32ef1d9ca8 100644
--- a/net-irc/ngircd/metadata.xml
+++ b/net-irc/ngircd/metadata.xml
@@ -11,5 +11,7 @@
</maintainer>
<use>
<flag name="ident">Enables support for <pkg>net-libs/libident</pkg></flag>
+ <flag name="irc-plus">Enables support for the IRC+ protocol (needs <pkg>virtual/libiconv</pkg>)</flag>
+ <flag name="strict-rfc">Strict RFC compliance; may harm compatibility</flag>
</use>
</pkgmetadata>
diff --git a/net-irc/ngircd/ngircd-25.ebuild b/net-irc/ngircd/ngircd-25.ebuild
new file mode 100644
index 000000000000..a7310708bf6c
--- /dev/null
+++ b/net-irc/ngircd/ngircd-25.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2020 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 ~x86 ~x64-macos"
+IUSE="debug gnutls ident irc-plus +ipv6 libressl pam +ssl strict-rfc tcpd test zlib"
+
+RESTRICT="!test? ( 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
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-25-fix-gcc-10.patch"
+ "${FILESDIR}/${PN}-25-make-env.patch"
+)
+
+# Flaky test needs investigation (bug 719256)
+RESTRICT="test"
+
+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 PAMOnly by default, please change this option."
+ elog "You may not be able to login until you change this."
+ fi
+}