commit:     2704d5b853084e665c12d85e8129357b96780ca3
Author:     Z. Liu <zhixu.liu <AT> gmail <DOT> com>
AuthorDate: Fri Dec 27 10:40:52 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Dec 27 15:10:05 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2704d5b8

net-irc/ngircd: fix several bugs

1. USE="irc-plus" is default enabled now
2. /etc/ngircd/{,ngircd.conf} owned by root:ngircd, and update permissions
3. configure report getaddrinfo not works because of stricter compiler check:
     checking whether getaddrinfo() works... no
     configure:6303: x86_64-pc-linux-gnu-gcc -o conftest -g -O2 -pipe -W -Wall 
-Wpointer-arith -Wstrict-prototypes -fstack-protector 
-DSYSCONFDIR='"$(sysconfdir)"' -DDOCDIR='"$(docdir)"'   conftest.c  >&5
     conftest.c: In function 'main':
     conftest.c:99:9: error: implicit declaration of function 'memset' 
[-Wimplicit-function-declaration]

   configure.ac still use de-ANSI-fication (which is only available in
   old automake) in order to support old systems. So we can't patch
   configure.ac and run eautoreconf. see
   https://github.com/ngircd/ngircd/issues/261

   It's important to make sure ngircd-26.1-configure-getaddrinfo.patch
   works correctly for each new release.

[sam: Committing as stable here given the IPv6 issue is bad and currently
broken in stable.]

Closes: https://bugs.gentoo.org/719256
Closes: https://bugs.gentoo.org/900082
Closes: https://bugs.gentoo.org/908349
Closes: https://bugs.gentoo.org/946998
Signed-off-by: Z. Liu <zhixu.liu <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/39860
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/ngircd-26.1-configure-getaddrinfo.patch  |  23 ++++
 net-irc/ngircd/metadata.xml                        |   9 +-
 net-irc/ngircd/ngircd-26.1-r6.ebuild               | 130 +++++++++++++++++++++
 3 files changed, 161 insertions(+), 1 deletion(-)

diff --git a/net-irc/ngircd/files/ngircd-26.1-configure-getaddrinfo.patch 
b/net-irc/ngircd/files/ngircd-26.1-configure-getaddrinfo.patch
new file mode 100644
index 000000000000..3d6bff5bf54b
--- /dev/null
+++ b/net-irc/ngircd/files/ngircd-26.1-configure-getaddrinfo.patch
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/946998
+
+configure report getaddrinfo not works because of stricter compiler check:
+  configure:6303: x86_64-pc-linux-gnu-gcc -o conftest -g -O2 -pipe -W -Wall 
-Wpointer-arith -Wstrict-prototypes -fstack-protector 
-DSYSCONFDIR='"$(sysconfdir)"' -DDOCDIR='"$(docdir)"' conftest.c >&5
+  conftest.c: In function 'main':
+  conftest.c:99:9: error: implicit declaration of function 'memset' 
[-Wimplicit-function-declaration]
+
+configure.ac still use de-ANSI-fication (which is only available in old
+automake) in order to support old systems. So we can't patch configure.ac
+and run eautoreconf. see https://github.com/ngircd/ngircd/issues/261
+
+diff --git a/configure b/configure
+index e4023a3..9337a85 100755
+--- a/configure
++++ b/configure
+@@ -6283,6 +6283,7 @@ else
+ /* end confdefs.h.  */
+ 
+ #include <stdio.h>
++#include <string.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netdb.h>

diff --git a/net-irc/ngircd/metadata.xml b/net-irc/ngircd/metadata.xml
index 00ce6e97b379..f37d7a115b23 100644
--- a/net-irc/ngircd/metadata.xml
+++ b/net-irc/ngircd/metadata.xml
@@ -1,7 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
 <pkgmetadata>
-       <!-- maintainer-needed -->
+       <maintainer type="person" proxied="yes">
+               <email>[email protected]</email>
+               <name>Z. Liu</name>
+       </maintainer>
+       <maintainer type="project" proxied="proxy">
+               <email>[email protected]</email>
+               <name>Proxy Maintainers</name>
+       </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>

diff --git a/net-irc/ngircd/ngircd-26.1-r6.ebuild 
b/net-irc/ngircd/ngircd-26.1-r6.ebuild
new file mode 100644
index 000000000000..6d6e98e30b0c
--- /dev/null
+++ b/net-irc/ngircd/ngircd-26.1-r6.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2024 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-20241211 )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-26.1-systemd-unit.patch
+       "${FILESDIR}"/${PN}-26.1-configure-getaddrinfo.patch # XXX #946998 
PLEASE CHECK PER RELEASE
+)
+
+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 root:ngircd /etc/ngircd/{,ngircd.conf}
+       fperms 0750 /etc/ngircd/
+       fperms 0640 /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
+
+       if ! use irc-plus ; then
+               ewarn "server-login-test occasional failure had been reported. 
Upstream suggests"
+               ewarn "to enable ircplus by default. See Gentoo bug #719256. 
You have been warned."
+       fi
+       tmpfiles_process ngircd.conf
+}

Reply via email to