From mboxrd@z Thu Jan 1 00:00:00 1970 From: taylanbayirli@gmail.com (Taylan Ulrich =?utf-8?Q?Bay=C4=B1rl=C4=B1?= =?utf-8?Q?=2FKammer?=) Subject: Re: [PATCH] gnu: Add ngircd. Date: Mon, 02 Feb 2015 00:23:14 +0100 Message-ID: <87fvapjjx9.fsf@taylan.uni.cx> References: <87sieqr574.fsf@taylan.uni.cx> <87k302qz8h.fsf@taylan.uni.cx> <874mr6f791.fsf@netris.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55894) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YI3rN-0006H3-5l for guix-devel@gnu.org; Sun, 01 Feb 2015 18:23:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YI3rK-0003a6-NL for guix-devel@gnu.org; Sun, 01 Feb 2015 18:23:21 -0500 Received: from mail-we0-x231.google.com ([2a00:1450:400c:c03::231]:58857) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YI3rK-0003Zv-BW for guix-devel@gnu.org; Sun, 01 Feb 2015 18:23:18 -0500 Received: by mail-we0-f177.google.com with SMTP id l61so36032396wev.8 for ; Sun, 01 Feb 2015 15:23:17 -0800 (PST) In-Reply-To: <874mr6f791.fsf@netris.org> (Mark H. Weaver's message of "Sun, 01 Feb 2015 01:58:18 -0500") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Mark H Weaver Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain Here's the new patch. For those who weren't on IRC: the test suite of this package has an interesting problem. Our build process doesn't reap zombie processes, which makes them continue responding to 'kill -0' (which tests whether a process exists), so the test suite thinks it can't kill a certain process. The test suite has therefore been disabled for now. --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: inline; filename=0001-gnu-Add-ngircd.patch Content-Transfer-Encoding: quoted-printable Content-Description: patch >From 34b2efd8244caf0cd16c1aa510209a54def148b7 Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?Taylan=3D20Ulrich=3D20Bay=3DC4=3DB1rl=3DC4=3DB1/Kammer?=3D Date: Sat, 31 Jan 2015 22:03:25 +0100 Subject: [PATCH] gnu: Add ngircd. * gnu/packages/messaging.scm (ngircd): New variable. * gnu/packages/patches/ngircd-no-dns-in-tests.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 2 + gnu/packages/messaging.scm | 48 ++- gnu/packages/patches/ngircd-no-dns-in-tests.patch | 368 ++++++++++++++++++= ++++ 3 files changed, 417 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/ngircd-no-dns-in-tests.patch diff --git a/gnu-system.am b/gnu-system.am index 706ad57..afa9580 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -197,6 +197,7 @@ GNU_SYSTEM_MODULES =3D \ gnu/packages/ncurses.scm \ gnu/packages/netpbm.scm \ gnu/packages/nettle.scm \ + gnu/packages/ngircd.scm \ gnu/packages/ninja.scm \ gnu/packages/node.scm \ gnu/packages/noweb.scm \ @@ -433,6 +434,7 @@ dist_patch_DATA =3D \ gnu/packages/patches/mupdf-buildsystem-fix.patch \ gnu/packages/patches/mutt-CVE-2014-9116.patch \ gnu/packages/patches/net-tools-bitrot.patch \ + gnu/packages/patches/ngircd-no-dns-in-tests.patch \ gnu/packages/patches/ninja-tests.patch \ gnu/packages/patches/nss-pkgconfig.patch \ gnu/packages/patches/nvi-assume-preserve-path.patch \ diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index f6d0cf5..1693178 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2014 Mark H Weaver ;;; Copyright =C2=A9 2014 Julien Lepiller +;;; Copyright =C2=A9 2015 Taylan Ulrich Bay=C4=B1rl=C4=B1/Kammer ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,8 +37,11 @@ #:use-module (gnu packages gnutls) #:use-module (gnu packages python) #:use-module (gnu packages perl) + #:use-module (gnu packages tcl) #:use-module (gnu packages compression) - #:use-module (gnu packages check)) + #:use-module (gnu packages check) + #:use-module (gnu packages admin) + #:use-module (gnu packages linux)) =20 (define-public libotr (package @@ -159,4 +163,46 @@ dictionaries. HexChat can be extended with multiple a= ddons.") (home-page "http://hexchat.net/") (license gpl2+))) =20 +(define-public ngircd + (package + (name "ngircd") + (version "22") + (source (origin + (method url-fetch) + (uri (string-append "http://arthur.barton.de/pub/ngircd/ngir= cd-" + version ".tar.xz")) + (sha256 + (base32 + "17k3g9qd9d010czk5846qxvzkmw4fihv8l6m2a2287crbxm3xhd4")) + (patches (list (search-patch "ngircd-no-dns-in-tests.patch")= )))) + (build-system gnu-build-system) + ;; Needed for the test suite. + (native-inputs `(("procps" ,procps) + ("expect" ,expect) + ("inetutils" ,inetutils))) + ;; XXX Add more inputs to enable more features, e.g. IDENT, libiconv. + (inputs `(("zlib" ,zlib) + ("gnutls" ,gnutls))) + (arguments + `(#:configure-flags + `("--with-gnutls" "--enable-ipv6") + #:phases + ;; Necessary for the test suite, should it be enabled in the future. + (alist-cons-after + 'configure 'post-configure + (lambda _ + (substitute* "src/ngircd/Makefile" + (("/bin/sh") (which "sh")))) + %standard-phases) + ;; 'stop-server' tests fail because our build process leaves zombie + ;; processes which continue to respond to 'kill -0'. + #:tests? #f)) + (home-page "http://ngircd.barton.de/") + (synopsis "Lightweight Internet Relay Chat server for small networks") + (description + "ngIRCd is a lightweight Internet Relay Chat server for small or priv= ate +networks. It is easy to configure, can cope with dynamic IP addresses, and +supports IPv6, SSL-protected connections as well as PAM for authentication= .") + (license gpl2+))) + ;;; messaging.scm ends here diff --git a/gnu/packages/patches/ngircd-no-dns-in-tests.patch b/gnu/packag= es/patches/ngircd-no-dns-in-tests.patch new file mode 100644 index 0000000..748661d --- /dev/null +++ b/gnu/packages/patches/ngircd-no-dns-in-tests.patch @@ -0,0 +1,368 @@ +From 3f807e104572b38143a1015be57d875088ceaebb Mon Sep 17 00:00:00 2001 +From: Alexander Barton +Date: Thu, 17 Apr 2014 23:57:38 +0200 +Subject: [PATCH] Test suite: Don't use DNS lookups + +Different operating systems do behave quite differently when doing DNS +lookups, for example "127.0.0.1" sometimes resolves to "localhost" and +sometimes to "localhost.localdomain" (for example OpenBSD). And other +systems resolve "localhost" to the real host name (for example Cygwin). + +So not using DNS at all makes the test site much more portable. +--- + src/testsuite/channel-test.e | 2 +- + src/testsuite/check-idle.e | 2 +- + src/testsuite/connect-test.e | 2 +- + src/testsuite/invite-test.e | 2 +- + src/testsuite/join-test.e | 2 +- + src/testsuite/kick-test.e | 2 +- + src/testsuite/message-test.e | 31 ++++++++++++------------------- + src/testsuite/misc-test.e | 8 ++++---- + src/testsuite/mode-test.e | 2 +- + src/testsuite/ngircd-test1.conf | 1 + + src/testsuite/ngircd-test2.conf | 1 + + src/testsuite/opless-channel-test.e | 2 +- + src/testsuite/server-link-test.e | 2 +- + src/testsuite/stress-A.e | 2 +- + src/testsuite/who-test.e | 6 +++--- + src/testsuite/whois-test.e | 14 +++++++------- + 16 files changed, 38 insertions(+), 43 deletions(-) + +diff --git a/src/testsuite/channel-test.e b/src/testsuite/channel-test.e +index dd7eb66..39ad16a 100644 +--- a/src/testsuite/channel-test.e ++++ b/src/testsuite/channel-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # Channel test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/check-idle.e b/src/testsuite/check-idle.e +index 41b8eb4..ad112b2 100644 +--- a/src/testsuite/check-idle.e ++++ b/src/testsuite/check-idle.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # Idle test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/connect-test.e b/src/testsuite/connect-test.e +index 662f5f7..b51be0d 100644 +--- a/src/testsuite/connect-test.e ++++ b/src/testsuite/connect-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # Server connect test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/invite-test.e b/src/testsuite/invite-test.e +index 3716d19..5179d8a 100644 +--- a/src/testsuite/invite-test.e ++++ b/src/testsuite/invite-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # INVITE test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/join-test.e b/src/testsuite/join-test.e +index 28b4c54..c088f5c 100644 +--- a/src/testsuite/join-test.e ++++ b/src/testsuite/join-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # JOIN test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/kick-test.e b/src/testsuite/kick-test.e +index 3d3c1ee..89da611 100644 +--- a/src/testsuite/kick-test.e ++++ b/src/testsuite/kick-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # KICK test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/message-test.e b/src/testsuite/message-test.e +index 0e70640..5dc325d 100644 +--- a/src/testsuite/message-test.e ++++ b/src/testsuite/message-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # PRIVMSG and NOTICE test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +@@ -72,24 +72,17 @@ expect { + "MODE nick :-b" + } +=20 +-# The following two tests using "localhost" as host name +-# had to be disabled, because there are operating systems +-# out there, that use "localhost." as host name +-# for 127.0.0.1 instead of just "localhost". +-# (for example OpenBSD 4, OpenSolaris, ...) +-# +-#send "privmsg ~user\%localhost :test\r" +-#expect { +-# timeout { exit 1 } +-# "@* PRIVMSG nick :test" +-#} +-# +-#send "privmsg Nick!~User@LocalHost :test\r" +-#expect { +-# timeout { exit 1 } +-# "@* PRIVMSG nick :test" +-# "401" +-#} ++send "privmsg ~user\%127.0.0.1 :test\r" ++expect { ++ timeout { exit 1 } ++ "@* PRIVMSG nick :test" ++} ++ ++send "privmsg Nick!~User@127.0.0.1 :test\r" ++expect { ++ timeout { exit 1 } ++ "@* PRIVMSG nick :test" ++} +=20 + send "away :away\r" + expect { +diff --git a/src/testsuite/misc-test.e b/src/testsuite/misc-test.e +index a83bc5b..f69e7c3 100644 +--- a/src/testsuite/misc-test.e ++++ b/src/testsuite/misc-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # Misc test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +@@ -130,7 +130,7 @@ expect { + send "userhost nick\r" + expect { + timeout { exit 1 } +- -re ":ngircd.test.server 302 nick :?nick=3D+.*@(localhos.*|127.0.0.1)" ++ -re ":ngircd.test.server 302 nick :?nick=3D+.*@127.0.0.1" + } +=20 + send "userhost doesnotexist\r" +@@ -142,7 +142,7 @@ expect { + send "userhost nick doesnotexist nick doesnotexist\r" + expect { + timeout { exit 1 } +- -re ":ngircd.test.server 302 nick :nick=3D+.*@(localhos.*|127.0.0.1) nic= k=3D+.*@(localhos.*|127.0.0.1)" ++ -re ":ngircd.test.server 302 nick :nick=3D+.*@127.0.0.1 nick=3D+.*@127.0= .0.1" + } +=20 + send "away :testing\r" +@@ -154,7 +154,7 @@ expect { + send "userhost nick nick nick nick nick nick\r" + expect { + timeout { exit 1 } +- -re ":ngircd.test.server 302 nick :nick=3D-.*@(localhos.*|127.0.0.1) nic= k=3D-.*@(localhos.*|127.0.0.1) nick=3D-.*@(localhos.*|127.0.0.1) nick=3D-.*= @(localhos.*|127.0.0.1) nick=3D-.*@(localhos.*|127.0.0.1)\r" ++ -re ":ngircd.test.server 302 nick :nick=3D-.*@127.0.0.1 nick=3D-.*@127.0= .0.1 nick=3D-.*@127.0.0.1 nick=3D-.*@127.0.0.1 nick=3D-.*@127.0.0.1\r" + } +=20 + send "quit\r" +diff --git a/src/testsuite/mode-test.e b/src/testsuite/mode-test.e +index d6726a4..86e4f2d 100644 +--- a/src/testsuite/mode-test.e ++++ b/src/testsuite/mode-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # MODE test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/ngircd-test1.conf b/src/testsuite/ngircd-test1.= conf +index 0d0cccc..4dec533 100644 +--- a/src/testsuite/ngircd-test1.conf ++++ b/src/testsuite/ngircd-test1.conf +@@ -17,6 +17,7 @@ + OperCanUseMode =3D yes + Ident =3D no + IncludeDir =3D /var/empty ++ DNS =3D no + PAM =3D no +=20 + [Operator] +diff --git a/src/testsuite/ngircd-test2.conf b/src/testsuite/ngircd-test2.= conf +index c9d7f6c..0d24c4a 100644 +--- a/src/testsuite/ngircd-test2.conf ++++ b/src/testsuite/ngircd-test2.conf +@@ -17,6 +17,7 @@ + OperCanUseMode =3D yes + Ident =3D no + IncludeDir =3D /var/empty ++ DNS =3D no + PAM =3D no +=20 + [Operator] +diff --git a/src/testsuite/opless-channel-test.e b/src/testsuite/opless-ch= annel-test.e +index 7d94172..4611fe1 100644 +--- a/src/testsuite/opless-channel-test.e ++++ b/src/testsuite/opless-channel-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # Op-less channel test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/server-link-test.e b/src/testsuite/server-link-= test.e +index cf3fae8..910f8c8 100644 +--- a/src/testsuite/server-link-test.e ++++ b/src/testsuite/server-link-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # server-server link test +=20 +-spawn telnet localhost 6790 ++spawn telnet 127.0.0.1 6790 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/stress-A.e b/src/testsuite/stress-A.e +index 256d5d1..d51adaa 100644 +--- a/src/testsuite/stress-A.e ++++ b/src/testsuite/stress-A.e +@@ -3,7 +3,7 @@ +=20 + set timeout 30 +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +diff --git a/src/testsuite/who-test.e b/src/testsuite/who-test.e +index a41e6b6..39d50ed 100644 +--- a/src/testsuite/who-test.e ++++ b/src/testsuite/who-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # WHO test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +@@ -62,7 +62,7 @@ expect { + ":ngircd.test.server 352 nick #channel * * ngircd.test.server nick G@ :0= Real Name" + } +=20 +-send "who localhos*\r" ++send "who 127.0.0.*\r" + expect { + timeout { exit 1 } + ":ngircd.test.server 352 nick \* * * ngircd.test.server nick G :0 Real N= ame" +@@ -120,7 +120,7 @@ expect { + "305 nick" + } +=20 +-send "who ??cal*ho*\r" ++send "who ??7.*0*\r" + expect { + timeout { exit 1 } + ":ngircd.test.server 352 nick \* * * ngircd.test.server nick H* :0 Real = Name" +diff --git a/src/testsuite/whois-test.e b/src/testsuite/whois-test.e +index 16b1184..44eee66 100644 +--- a/src/testsuite/whois-test.e ++++ b/src/testsuite/whois-test.e +@@ -1,7 +1,7 @@ + # ngIRCd test suite + # WHOIS test +=20 +-spawn telnet localhost 6789 ++spawn telnet 127.0.0.1 6789 + expect { + timeout { exit 1 } + "Connected" +@@ -17,7 +17,7 @@ expect { + send "whois nick\r" + expect { + timeout { exit 1 } +- "311 nick nick ~user localhost* \* :Real Name\r" ++ "311 nick nick ~user 127.0.0.1 \* :Real Name\r" + } + expect { + timeout { exit 1 } +@@ -27,25 +27,25 @@ expect { + send "whois *\r" + expect { + timeout { exit 1 } +- "311 nick nick ~user localhost* \* :Real Name\r" ++ "311 nick nick ~user 127.0.0.1* \* :Real Name\r" + } +=20 + send "whois n*\r" + expect { + timeout { exit 1 } +- "311 nick nick ~user localhost* \* :Real Name\r" ++ "311 nick nick ~user 127.0.0.1* \* :Real Name\r" + } +=20 + send "whois ?ick\r" + expect { + timeout { exit 1 } +- "311 nick nick ~user localhost* \* :Real Name\r" ++ "311 nick nick ~user 127.0.0.1* \* :Real Name\r" + } +=20 + send "whois ????,n?*k\r" + expect { + timeout { exit 1 } +- "311 nick nick ~user localhost* \* :Real Name\r" ++ "311 nick nick ~user 127.0.0.1* \* :Real Name\r" + } +=20 + send "whois unknown\r" +@@ -61,7 +61,7 @@ expect { + send "whois ngircd.test.server2 nick\r" + expect { + timeout { exit 1 } +- ":ngircd.test.server2 311 nick nick ~user localhost* \* :Real Name\r" ++ ":ngircd.test.server2 311 nick nick ~user 127.0.0.1* \* :Real Name\r" + } +=20 + send "whois nosuchserver unknown\r" +--=20 +1.9.1 + --=20 2.2.1 --=-=-=--