net-irc/ngircd: Bump to 25, GLEP 81
authorSam James (sam_c) <sam@cmpct.info>
Wed, 15 Apr 2020 19:33:15 +0000 (19:33 +0000)
committerJoonas Niilola <juippis@gentoo.org>
Sun, 26 Apr 2020 13:36:49 +0000 (16:36 +0300)
Closes: https://bugs.gentoo.org/696572
Closes: https://bugs.gentoo.org/707634
Signed-off-by: Sam James (sam_c) <sam@cmpct.info>
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
net-irc/ngircd/Manifest
net-irc/ngircd/files/ngircd-25-fix-gcc-10.patch [new file with mode: 0644]
net-irc/ngircd/files/ngircd-25-make-env.patch [new file with mode: 0644]
net-irc/ngircd/metadata.xml
net-irc/ngircd/ngircd-25.ebuild [new file with mode: 0644]

index 3f5358b844b7a1690e257d2fe156a7341b270ca9..a9321e747c20d4d574c045f123ab22ed473626fd 100644 (file)
@@ -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 (file)
index 0000000..33e0d44
--- /dev/null
@@ -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 (file)
index 0000000..e6494c7
--- /dev/null
@@ -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
index fab3207f61648e10ba0eabf198ccdd91ac42f08a..fe32ef1d9ca84986e2606ffe06f685c47a516ccd 100644 (file)
@@ -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 (file)
index 0000000..a731070
--- /dev/null
@@ -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
+}