From: taylanbayirli@gmail.com (Taylan Ulrich Bayırlı/Kammer)
To: Mark H Weaver <mhw@netris.org>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH] gnu: Add ngircd.
Date: Mon, 02 Feb 2015 00:23:14 +0100 [thread overview]
Message-ID: <87fvapjjx9.fsf@taylan.uni.cx> (raw)
In-Reply-To: <874mr6f791.fsf@netris.org> (Mark H. Weaver's message of "Sun, 01 Feb 2015 01:58:18 -0500")
[-- Attachment #1: Type: text/plain, Size: 364 bytes --]
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.
[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 15500 bytes --]
From 34b2efd8244caf0cd16c1aa510209a54def148b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
<taylanbayirli@gmail.com>
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 = \
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 = \
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 © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;;
;;; 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))
(define-public libotr
(package
@@ -159,4 +163,46 @@ dictionaries. HexChat can be extended with multiple addons.")
(home-page "http://hexchat.net/")
(license gpl2+)))
+(define-public ngircd
+ (package
+ (name "ngircd")
+ (version "22")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://arthur.barton.de/pub/ngircd/ngircd-"
+ 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 private
+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/packages/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 <alex@barton.de>
+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
+
+-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
+
+-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
+
+-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
+
+-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
+
+-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
+
+-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
+
+-spawn telnet localhost 6789
++spawn telnet 127.0.0.1 6789
+ expect {
+ timeout { exit 1 }
+ "Connected"
+@@ -72,24 +72,17 @@ expect {
+ "MODE nick :-b"
+ }
+
+-# The following two tests using "localhost" as host name
+-# had to be disabled, because there are operating systems
+-# out there, that use "localhost.<domain>" 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"
++}
+
+ 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
+
+-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=+.*@(localhos.*|127.0.0.1)"
++ -re ":ngircd.test.server 302 nick :?nick=+.*@127.0.0.1"
+ }
+
+ 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=+.*@(localhos.*|127.0.0.1) nick=+.*@(localhos.*|127.0.0.1)"
++ -re ":ngircd.test.server 302 nick :nick=+.*@127.0.0.1 nick=+.*@127.0.0.1"
+ }
+
+ 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=-.*@(localhos.*|127.0.0.1) nick=-.*@(localhos.*|127.0.0.1) nick=-.*@(localhos.*|127.0.0.1) nick=-.*@(localhos.*|127.0.0.1) nick=-.*@(localhos.*|127.0.0.1)\r"
++ -re ":ngircd.test.server 302 nick :nick=-.*@127.0.0.1 nick=-.*@127.0.0.1 nick=-.*@127.0.0.1 nick=-.*@127.0.0.1 nick=-.*@127.0.0.1\r"
+ }
+
+ 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
+
+-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 = yes
+ Ident = no
+ IncludeDir = /var/empty
++ DNS = no
+ PAM = no
+
+ [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 = yes
+ Ident = no
+ IncludeDir = /var/empty
++ DNS = no
+ PAM = no
+
+ [Operator]
+diff --git a/src/testsuite/opless-channel-test.e b/src/testsuite/opless-channel-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
+
+-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
+
+-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 @@
+
+ set timeout 30
+
+-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
+
+-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"
+ }
+
+-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 Name"
+@@ -120,7 +120,7 @@ expect {
+ "305 nick"
+ }
+
+-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
+
+-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"
+ }
+
+ 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"
+ }
+
+ 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"
+ }
+
+ 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"
+ }
+
+ 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"
+ }
+
+ send "whois nosuchserver unknown\r"
+--
+1.9.1
+
--
2.2.1
next prev parent reply other threads:[~2015-02-01 23:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-31 21:49 [PATCH] gnu: Add ngircd "Taylan Ulrich Bayırlı/Kammer"
2015-01-31 23:58 ` Taylan Ulrich Bayırlı/Kammer
2015-02-01 6:58 ` Mark H Weaver
2015-02-01 23:23 ` Taylan Ulrich Bayırlı/Kammer [this message]
2015-02-05 12:46 ` Ludovic Courtès
2015-02-05 14:32 ` Taylan Ulrich Bayırlı/Kammer
2015-02-05 15:46 ` Mark H Weaver
2015-02-05 11:53 ` Taylan Ulrich Bayırlı/Kammer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fvapjjx9.fsf@taylan.uni.cx \
--to=taylanbayirli@gmail.com \
--cc=guix-devel@gnu.org \
--cc=mhw@netris.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.