mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-23 21:17:11 -05:00
gnu: Add ngircd.
* gnu/packages/messaging.scm (ngircd): New variable. * gnu/packages/patches/ngircd-no-dns-in-tests.patch: New file. * gnu/packages/patches/ngircd-handle-zombies.patch: New file. * gnu-system.am (dist_patch_DATA): Add them.
This commit is contained in:
parent
0ca0ce53a8
commit
ea119a288f
4 changed files with 461 additions and 1 deletions
|
@ -442,6 +442,8 @@ 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-handle-zombies.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 \
|
||||
|
|
|
@ -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 @@ (define-module (gnu packages messaging)
|
|||
#: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,54 @@ (define-public hexchat
|
|||
(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")
|
||||
(search-patch "ngircd-handle-zombies.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
;; Needed for the test suite.
|
||||
(native-inputs `(("procps" ,procps)
|
||||
("expect" ,expect)
|
||||
("inetutils" ,inetutils)))
|
||||
;; XXX Add libident, libwrap.
|
||||
(inputs `(("zlib" ,zlib)
|
||||
("gnutls" ,gnutls)
|
||||
,@(if (string-suffix? "-linux"
|
||||
(or (%current-target-system)
|
||||
(%current-system)))
|
||||
`(("linux-pam" ,linux-pam))
|
||||
'())))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("--with-gnutls" "--with-iconv" "--enable-ipv6"
|
||||
,@(if (string-suffix? "-linux"
|
||||
(or (%current-target-system)
|
||||
(%current-system)))
|
||||
'("--with-pam")
|
||||
'()))
|
||||
#:phases
|
||||
;; Necessary for the test suite.
|
||||
(alist-cons-after
|
||||
'configure 'post-configure
|
||||
(lambda _
|
||||
(substitute* "src/ngircd/Makefile"
|
||||
(("/bin/sh") (which "sh"))))
|
||||
%standard-phases)))
|
||||
(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
|
||||
|
|
36
gnu/packages/patches/ngircd-handle-zombies.patch
Normal file
36
gnu/packages/patches/ngircd-handle-zombies.patch
Normal file
|
@ -0,0 +1,36 @@
|
|||
The Guile process taking the role of PID 1 during Guix builds does not reap
|
||||
zombie processes, which makes them continue responding to "kill -0".
|
||||
|
||||
--- a/src/testsuite/stop-server.sh 2015-02-05 11:24:00.535908842 +0100
|
||||
+++ b/src/testsuite/stop-server.sh 2015-02-05 11:25:00.264351349 +0100
|
||||
@@ -1,6 +1,21 @@
|
||||
#!/bin/sh
|
||||
# ngIRCd Test Suite
|
||||
|
||||
+process_is_alive(){
|
||||
+ ! process_is_dead "$1" && ! process_is_undead "$1"
|
||||
+}
|
||||
+
|
||||
+process_is_dead(){
|
||||
+ ! kill -0 "$1"
|
||||
+}
|
||||
+
|
||||
+process_is_undead(){
|
||||
+ case $(ps -p "$1" -o state=) in
|
||||
+ (Z*) true ;;
|
||||
+ (*) false ;;
|
||||
+ esac
|
||||
+}
|
||||
+
|
||||
[ -z "$srcdir" ] && srcdir=`dirname $0`
|
||||
|
||||
# read in functions
|
||||
@@ -24,7 +40,7 @@
|
||||
|
||||
# waiting ...
|
||||
for i in 1 2 3 4 5; do
|
||||
- kill -0 $pid > /dev/null 2>&1; r=$?
|
||||
+ process_is_alive $pid > /dev/null 2>&1; r=$?
|
||||
if [ $r -ne 0 ]; then
|
||||
echo " ok".
|
||||
exit 0
|
368
gnu/packages/patches/ngircd-no-dns-in-tests.patch
Normal file
368
gnu/packages/patches/ngircd-no-dns-in-tests.patch
Normal file
|
@ -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
|
||||
|
Loading…
Reference in a new issue