--- ngircd-18.orig/config.guess
+++ ngircd-18/config.guess
@@ -1,10 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
# Free Software Foundation, Inc.
-timestamp='2008-01-23'
+timestamp='2009-06-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -170,7 +170,7 @@
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
+ | grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
@@ -324,6 +324,9 @@
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
@@ -331,7 +334,20 @@
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
@@ -640,7 +656,7 @@
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
+ grep -q __LP64__
then
HP_ARCH="hppa2.0w"
else
@@ -796,7 +812,7 @@
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
- EM64T | authenticamd)
+ EM64T | authenticamd | genuineintel)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
@@ -806,6 +822,9 @@
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -866,40 +885,17 @@
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
- mips:Linux:*:*)
+ mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
- #undef mips
- #undef mipsel
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
+ CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
- #else
- CPU=
- #endif
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips64
- #undef mips64el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
+ CPU=${UNAME_MACHINE}
#else
CPU=
#endif
@@ -931,10 +927,13 @@
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-gnu
+ exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -982,17 +981,6 @@
elf32-i386)
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit ;;
esac
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
@@ -1058,7 +1046,7 @@
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
@@ -1102,8 +1090,11 @@
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
@@ -1141,6 +1132,16 @@
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit ;;
@@ -1153,7 +1154,7 @@
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
@@ -1216,6 +1217,9 @@
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
@@ -1324,6 +1328,9 @@
i*86:rdos:*:*)
echo ${UNAME_MACHINE}-pc-rdos
exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
--- ngircd-18.orig/config.sub
+++ ngircd-18/config.sub
@@ -1,10 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
# Free Software Foundation, Inc.
-timestamp='2008-01-16'
+timestamp='2009-06-11'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -122,6 +122,7 @@
case $maybe_os in
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -152,6 +153,9 @@
os=
basic_machine=$1
;;
+ -bluegene*)
+ os=-cnk
+ ;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
@@ -249,13 +253,16 @@
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep \
+ | maxq | mb | microblaze | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
- | mips64vr | mips64vrel \
+ | mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
@@ -268,6 +275,7 @@
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | moxie \
| mt \
| msp430 \
| nios | nios2 \
@@ -277,7 +285,7 @@
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| score \
- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -286,7 +294,7 @@
| v850 | v850e \
| we32k \
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
- | z8k)
+ | z8k | z80)
basic_machine=$basic_machine-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12)
@@ -329,14 +337,17 @@
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
- | mips64vr-* | mips64vrel-* \
+ | mips64octeon-* | mips64octeonel-* \
| mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
@@ -358,20 +369,20 @@
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
- | z8k-*)
+ | z8k-* | z80-*)
;;
# Recognize the basic CPU types without company name, with glob match.
xtensa*)
@@ -439,6 +450,10 @@
basic_machine=m68k-apollo
os=-bsd
;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
aux)
basic_machine=m68k-apple
os=-aux
@@ -455,10 +470,18 @@
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
c90)
basic_machine=c90-cray
os=-unicos
;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
convex-c1)
basic_machine=c1-convex
os=-bsd
@@ -526,6 +549,10 @@
basic_machine=m88k-motorola
os=-sysv3
;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
djgpp)
basic_machine=i586-pc
os=-msdosdjgpp
@@ -1128,6 +1155,10 @@
basic_machine=z8k-unknown
os=-sim
;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
none)
basic_machine=none-none
os=-none
@@ -1166,7 +1197,7 @@
we32k)
basic_machine=we32k-att
;;
- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1236,10 +1267,11 @@
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -kopensolaris* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
+ | -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1248,7 +1280,7 @@
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
@@ -1388,6 +1420,9 @@
-zvmoe)
os=-zvmoe
;;
+ -dicos*)
+ os=-dicos
+ ;;
-none)
;;
*)
@@ -1585,7 +1620,7 @@
-sunos*)
vendor=sun
;;
- -aix*)
+ -cnk*|-aix*)
vendor=ibm
;;
-beos*)
--- ngircd-18.orig/src/testsuite/Makefile.in
+++ ngircd-18/src/testsuite/Makefile.in
@@ -195,7 +195,6 @@
mode-test \
opless-channel-test \
who-test \
- whois-test \
server-link-test \
stop-server2 \
stress-server.sh \
--- ngircd-18.orig/debian/compat
+++ ngircd-18/debian/compat
@@ -0,0 +1 @@
+7
--- ngircd-18.orig/debian/ngircd.postinst
+++ ngircd-18/debian/ngircd.postinst
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+case "$1" in
+configure)
+ ;;
+abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+*)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+;;
+esac
+
+#DEBHELPER#
+
+db_stop
+
+exit 0
--- ngircd-18.orig/debian/ngircd.lintian-overrides
+++ ngircd-18/debian/ngircd.lintian-overrides
@@ -0,0 +1,3 @@
+
+# INSTALL also contains upgrading information, so ship it
+ngircd: package-contains-upstream-install-documentation usr/share/doc/ngircd/INSTALL.gz
--- ngircd-18.orig/debian/ngircd.motd
+++ ngircd-18/debian/ngircd.motd
@@ -0,0 +1,11 @@
+**************************************************
+* H E L L O *
+* This is a private irc server. Please contact *
+* the admin of the server for any questions or *
+* issues. *
+**************************************************
+* The software was provided as a package of *
+* Debian GNU/Linux . *
+* However, Debian has no control over this *
+* server. *
+**************************************************
--- ngircd-18.orig/debian/ngircd.postrm
+++ ngircd-18/debian/ngircd.postrm
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+purge)
+ if [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ db_purge
+ fi
+ ;;
+remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ ;;
+*)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- ngircd-18.orig/debian/ngircd.README.Debian
+++ ngircd-18/debian/ngircd.README.Debian
@@ -0,0 +1,81 @@
+What's new in ngIRCd 18
+=======================
+
+Generic
+-------
+For generic information, including the new names of configuration
+variables, see /usr/share/doc/ngircd/INSTALL.gz
+
+Debian specific
+---------------
+The configuration of the user and group ID ngIRCd runs as has
+changed in ngircd 18-1. If you see messages like
+
+ Can't change group ID to 65534: Operation not permitted
+
+Change the lines
+
+ ;ServerUID = 65534
+ ;ServerGID = 65534
+
+into
+
+ ServerGID = irc
+ ServerUID = irc
+
+
+TLS support
+===========
+
+Some things to take into account when configuring TLS/SSL support:
+
+* The irc user must be able to read the key file.
+* ngIRCd will run without a DH parameters file but that's a bad idea.
+* A certificate exchange requires restart.
+
+
+Certificate location
+--------------------
+* If your certificate and key are for ngIRCd only: Simply place them in
+ /etc/ngircd, set KeyFile and CertFile accordingly. To secure the key
+ file (server.key):
+
+ chown irc:irc server.key
+ chmod 600 server.key
+
+* If however you offer several TLS-based services that using the same
+ certificate and key: Consider installing the ssl-cert package which
+ provides the ssl-cert group. Place the certificate file (server.crt)
+ in /etc/ssl/certs/ and the key file (server.key) in /etc/ssl/private/,
+ and make sure ngIRCd can read it:
+
+ chown root:ssl-cert /etc/ssl/private/server.key
+ chmod 640 /etc/ssl/private/server.key
+ adduser irc ssl-cert
+
+ Repeat the last step for all users that run a daemon providing TLS.
+
+
+DH parameters file
+------------------
+It is suggested to create a DH params file. If missing, ngIRCd will
+create one on the fly but this will prolong each startup.
+
+To create that file:
+
+* using gnutls (from gnutls-cli package):
+
+ certtool --generate-dh-params --bits 2048 >/etc/ngircd/dhparams.pem
+
+* using openssl:
+
+ openssl dhparam -2 -out /etc/ngircd/dhparams.pem 2048
+
+This has to be done only once. Don't forget to enable the DHFile
+setting in /etc/ngircd/ngircd.conf.
+
+
+Certificate exchange
+--------------------
+Due to limitations of GnuTLS, a re-start of ngIRCd is required if the
+certificates were changed. A reload is not sufficient.
--- ngircd-18.orig/debian/copyright
+++ ngircd-18/debian/copyright
@@ -0,0 +1,29 @@
+This package was debianized by Mario Iseli on
+Tue, 1 Nov 2005 20:08:53 +0100.
+
+It was downloaded from
+
+Copyright: (c)2001-2011 Alexander Barton and contributors.
+
+See /usr/share/doc/ngircd/AUTHORS for the full list of authors and contributors.
+
+License:
+
+ Copyright (C) 2001-2011 Alexander Barton
+
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this package; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL-2'.
--- ngircd-18.orig/debian/ngircd.templates
+++ ngircd-18/debian/ngircd.templates
@@ -0,0 +1,23 @@
+Template: ngircd/conversion-do
+Type: boolean
+_Description: Convert ngIRCd configuration?
+ In version 18, the ngIRCd configuration file format has changed.
+ You can choose to have your configuration re-written.
+ Don't worry, the old format is still supported.
+
+Template: ngircd/broken-oldconfig
+Type: text
+_Description: Cannot convert configuration
+ The present configuration file contains errors and cannot
+ be converted. Please check manually using
+ ngircd --configtest
+ and run 'dpkg-reconfigure ngircd' to try again.
+
+Template: ngircd/conversion-fail
+Type: text
+_Description: Error
+ Verification after conversion failed. This is a bug, please report it
+ in the Debian bug tracker. Please include your configuration but make
+ sure all passwords are removed.
+ The diff below might give you some help:
+ ${DIFF}
--- ngircd-18.orig/debian/ngircd.config
+++ ngircd-18/debian/ngircd.config
@@ -0,0 +1,96 @@
+#!/bin/sh
+
+set -e
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
+NGIRCD=/usr/sbin/ngircd
+CONFIG=/etc/ngircd/ngircd.conf
+CONVERT=/usr/share/ngircd/ngircd-conf-convert
+
+[ -x "$NGIRCD" ] || exit 0
+[ -f "$CONFIG" ] || exit 0
+[ -x "$CONVERT" ] || exit 0
+
+TEMPDIR=
+
+# conversion required?
+if grep -qiE '^[ \t]*\[(Limits|Options|SSL)\]' "$CONFIG" ; then
+ # Using new section names, we're done
+ exit 0
+fi
+
+while true ; do
+ # Shall we do conversion?
+ db_reset ngircd/conversion-do
+ db_input high ngircd/conversion-do || true
+ db_go
+ db_get ngircd/conversion-do
+ if [ "$RET" = "false" ]; then
+ break
+ fi
+
+ # Check old configuration
+ if /dev/null ; then
+ :
+ else
+ # broken
+ db_input high ngircd/broken-oldconfig || true
+ db_go
+ break
+ fi
+
+ # have a temporary directory
+ TEMPDIR=$(mktemp -d /tmp/ngircd.XXXXX)
+ [ "$TEMPDIR" ] && [ -d "$TEMPDIR" ] || exit 0
+ chmod 700 "$TEMPDIR"
+
+ # create new configuration
+ CONFIG_NEW="$TEMPDIR/ngircd.conf"
+ touch "$CONFIG_NEW"
+ "$CONVERT" "$CONFIG" "$CONFIG_NEW"
+ if cmp -s "$CONFIG" "$CONFIG_NEW" ; then
+ echo "Nothing to do."
+ break
+ fi
+
+ # create dumps from --configtest and compare
+ DUMP_OLD="$TEMPDIR/dump.old"
+ "$DUMP_OLD"
+ DUMP_NEW="$TEMPDIR/dump.new"
+ "$DUMP_NEW"
+
+ if cmp -s "$DUMP_OLD" "$DUMP_NEW" ; then
+ # success
+ CONFIG_BAK="$CONFIG.pre18"
+ chown --reference="$CONFIG" "$CONFIG_NEW"
+ chmod --reference="$CONFIG" "$CONFIG_NEW"
+ mv "$CONFIG" "$CONFIG_BAK"
+ mv "$CONFIG_NEW" "$CONFIG"
+
+ echo "Conversion and verification sucessfull. Your configuration file is at"
+ echo " $CONFIG"
+ echo "A backup of the old configuration has been saved to"
+ echo " $CONFIG_BAK"
+ break
+ fi
+
+ DIFF="$(sdiff -BbW "$DUMP_OLD" "$DUMP_NEW")"
+ db_capb escape
+ db_subst ngircd/conversion-fail DIFF "$(printf %s "$DIFF" | debconf-escape -e)"
+ db_input critical ngircd/conversion-fail || true
+ db_go
+ db_reset ngircd/conversion-fail
+ db_capb
+
+ break
+done
+
+# cleanup
+db_purge
+[ "$TEMPDIR" ] && rm -rf "$TEMPDIR"
+
+exit 0
--- ngircd-18.orig/debian/ngircd.conf
+++ ngircd-18/debian/ngircd.conf
@@ -0,0 +1,325 @@
+#
+# This is a sample configuration file for the ngIRCd IRC daemon, which must
+# be customized to the local preferences and needs.
+#
+# Comments are started with "#" or ";".
+#
+# A lot of configuration options in this file start with a ";". You have
+# to remove the ";" in front of each variable to actually set a value!
+# The disabled variables are shown with example values for completeness only
+# and the daemon is using compiled-in default settings.
+#
+# Use "ngircd --configtest" (see manual page ngircd(8)) to validate that the
+# server interprets the configuration file as expected!
+#
+# Please see ngircd.conf(5) for a complete list of configuration options
+# and their descriptions.
+#
+# The original can be found at:
+# /usr/share/doc/ngircd/examples/sample-ngircd.conf.gz
+
+[Global]
+ # The [Global] section of this file is used to define the main
+ # configuration of the server, like the server name and the ports
+ # on which the server should be listening.
+ # These settings depend on your personal preferences, so you should
+ # make sure that they correspond to your installation and setup!
+
+ # Server name in the IRC network, must contain at least one dot
+ # (".") and be unique in the IRC network. Required!
+ Name = irc.example.net
+
+ # Information about the server and the administrator, used by the
+ # ADMIN command. Not required by server but by RFC!
+ AdminInfo1 = Debian User
+ AdminInfo2 = Debian City
+ AdminEMail = irc@irc.example.com
+
+ # Info text of the server. This will be shown by WHOIS and
+ # LINKS requests for example.
+ Info = Yet another IRC Server running on Debian GNU/Linux
+
+ # Comma separated list of IP addresses on which the server should
+ # listen. Default values are:
+ # "0.0.0.0" or (if compiled with IPv6 support) "::,0.0.0.0"
+ # so the server listens on all IP addresses of the system by default.
+ ;Listen = 127.0.0.1,192.168.0.1
+
+ # Text file with the "message of the day" (MOTD). This message will
+ # be shown to all users connecting to the server:
+ MotdFile = /etc/ngircd/ngircd.motd
+
+ # A simple Phrase (<256 chars) if you don't want to use a motd file.
+ ;MotdPhrase = "Hello. This is the Debian default MOTD sentence"
+
+ # Global password for all users needed to connect to the server.
+ # (Default: not set)
+ ;Password = wealllikedebian
+
+ # This tells ngIRCd to write its current process ID to a file.
+ # Note that the pidfile is written AFTER chroot and switching the
+ # user ID, e.g. the directory the pidfile resides in must be
+ # writeable by the ngIRCd user and exist in the chroot directory.
+ # Keep this setting in sync with PIDFILE in /etc/init.d/ngircd
+ PidFile = /var/run/ngircd/ngircd.pid
+
+ # Ports on which the server should listen. There may be more than
+ # one port, separated with ",". (Default: 6667)
+ ;Ports = 6667, 6668, 6669
+
+ # Group ID under which the ngircd should run; you can use the name
+ # of the group or the numerical ID. ATTENTION: For this to work the
+ # server must have been started with root privileges!
+ # Keep this setting in sync with DAEMONUSER in /etc/init.d/ngircd
+ ServerGID = irc
+
+ # User ID under which the server should run; you can use the name
+ # of the user or the numerical ID. ATTENTION: For this to work the
+ # server must have been started with root privileges! In addition,
+ # the configuration and MOTD files must be readable by this user,
+ # otherwise RESTART and REHASH won't work!
+ # Keep this setting in sync with DAEMONUSER in /etc/init.d/ngircd
+ ServerUID = irc
+
+[Limits]
+ # Define some limits and timeouts for this ngIRCd instance. Default
+ # values should be safe, but it is wise to double-check :-)
+
+ # The server tries every seconds to establish a link
+ # to not yet (or no longer) connected servers.
+ ConnectRetry = 60
+
+ # Maximum number of simultaneous in- and outbound connections the
+ # server is allowed to accept (0: unlimited):
+ MaxConnections = 500
+
+ # Maximum number of simultaneous connections from a single IP address
+ # the server will accept (0: unlimited):
+ MaxConnectionsIP = 10
+
+ # Maximum number of channels a user can be member of (0: no limit):
+ MaxJoins = 10
+
+ # Maximum length of an user nick name (Default: 9, as in RFC 2812).
+ # Please note that all servers in an IRC network MUST use the same
+ # maximum nick name length!
+ ;MaxNickLength = 9
+
+ # After seconds of inactivity the server will send a
+ # PING to the peer to test whether it is alive or not.
+ PingTimeout = 120
+
+ # If a client fails to answer a PING with a PONG within
+ # seconds, it will be disconnected by the server.
+ PongTimeout = 20
+
+[Options]
+ # Optional features and configuration options to further tweak the
+ # behavior of ngIRCd. If you want to get started quickly, you most
+ # probably don't have to make changes here -- they are all optional.
+
+ # Are remote IRC operators allowed to control this server, e.g.
+ # use commands like CONNECT, SQUIT, DIE, ...?
+ ;AllowRemoteOper = no
+
+ # A directory to chroot in when everything is initialized. It
+ # doesn't need to be populated if ngIRCd is compiled as a static
+ # binary. By default ngIRCd won't use the chroot() feature.
+ # ATTENTION: For this to work the server must have been started
+ # with root privileges!
+ ;ChrootDir = /var/empty
+
+ # Set this hostname for every client instead of the real one.
+ # Please note: don't use the percentage sign ("%"), it is reserved for
+ # future extensions!
+ ;CloakHost = irc.example.net
+
+ # Set every clients' user name to their nick name
+ ;CloakUserToNick = yes
+
+ # Try to connect to other irc servers using ipv4 and ipv6, if possible
+ ;ConnectIPv6 = yes
+ ;ConnectIPv4 = yes
+
+ # Don do any DNS lookups when a client connects to the server.
+ ;DNS = yes
+
+ # Do IDENT lookups, if ngIRCd has been compiled with support for it.
+ ;Ident = yes
+
+ # Enhance user privacy slightly (useful for IRC server on TOR or I2P)
+ # by censoring some information like idle time, logon time, etc.
+ ;MorePrivacy = no
+
+ # Normally ngIRCd doesn't send any messages to a client until it is
+ # registered. Enable this option to let the daemon send "NOTICE AUTH"
+ # messages to clients while connecting.
+ ;NoticeAuth = no
+
+ # Should IRC Operators be allowed to use the MODE command even if
+ # they are not(!) channel-operators?
+ OperCanUseMode = yes
+
+ # Mask IRC Operator mode requests as if they were coming from the
+ # server? (This is a compatibility hack for ircd-irc2 servers)
+ ;OperServerMode = no
+
+ # Use PAM if ngIRCd has been compiled with support for it.
+ PAM = no
+
+ # Allow Pre-Defined Channels only (see Section [Channels])
+ ;PredefChannelsOnly = no
+
+ # Let ngIRCd send an "authentication PING" when a new client connects,
+ # and register this client only after receiving the corresponding
+ # "PONG" reply.
+ ;RequireAuthPing = no
+
+ # Silently drop all incoming CTCP requests.
+ ;ScrubCTCP = no
+
+ # Syslog "facility" to which ngIRCd should send log messages.
+ # Possible values are system dependent, but most probably auth, daemon,
+ # user and local1 through local7 are possible values; see syslog(3).
+ # Default is "local5" for historical reasons, you probably want to
+ # change this to "daemon", for example.
+ SyslogFacility = local1
+
+ # Password required for using the WEBIRC command used by some
+ # Web-to-IRC gateways. If not set/empty, the WEBIRC command can't
+ # be used. (Default: not set)
+ ;WebircPassword = xyz
+
+;[SSL]
+ # SSL-related configuration options. Please note that this section
+ # is only available when ngIRCd is compiled with support for SSL!
+ # So don't forget to remove the ";" above if this is the case ...
+
+ # SSL Server Key Certificate
+ ;CertFile = /etc/ssl/certs/server.crt
+
+ # Diffie-Hellman parameters
+ ;DHFile = /etc/ngircd/dhparams.pem
+
+ # SSL Server Key
+ ;KeyFile = /etc/ssl/private/server.key
+
+ # password to decrypt SSLKeyFile (OpenSSL only)
+ # Note that this Debian package was linked against GnuTLS so this
+ # option has no effect.
+ ;KeyFilePassword = secret
+
+ # Additional Listen Ports that expect SSL/TLS encrypted connections
+ ;Ports = 6697, 9999
+
+[Operator]
+ # [Operator] sections are used to define IRC Operators. There may be
+ # more than one [Operator] block, one for each local operator.
+
+ # ID of the operator (may be different of the nick name)
+ ;Name = TheOper
+
+ # Password of the IRC operator
+ ;Password = ThePwd
+
+ # Optional Mask from which /OPER will be accepted
+ ;Mask = *!ident@somewhere.example.com
+
+[Operator]
+ # More [Operator] sections, if you like ...
+
+[Server]
+ # Other servers are configured in [Server] sections. If you
+ # configure a port for the connection, then this ngircd tries to
+ # connect to to the other server on the given port; if not it waits
+ # for the other server to connect.
+ # There may be more than one server block, one for each server.
+ #
+ # Server Groups:
+ # The ngIRCd allows "server groups": You can assign an "ID" to every
+ # server with which you want this ngIRCd to link. If a server of a
+ # group won't answer, the ngIRCd tries to connect to the next server
+ # in the given group. But the ngircd never tries to connect to two
+ # servers with the same group ID.
+
+ # IRC name of the remote server, must match the "Name" variable in
+ # the [Global] section of the other server (when using ngIRCd).
+ ;Name = irc2.example.net
+
+ # Internet host name or IP address of the peer (only required when
+ # this server should establish the connection).
+ ;Host = connect-to-host.example.net
+
+ # IP address to use as _source_ address for the connection. if
+ # unspecified, ngircd will let the operating system pick an address.
+ ;Bind = 10.0.0.1
+
+ # Port of the server to which the ngIRCd should connect. If you
+ # assign no port the ngIRCd waits for incoming connections.
+ ;Port = 6667
+
+ # Own password for the connection. This password has to be configured
+ # as "PeerPassword" on the other server.
+ ;MyPassword = MySecret
+
+ # Foreign password for this connection. This password has to be
+ # configured as "MyPassword" on the other server.
+ ;PeerPassword = PeerSecret
+
+ # Group of this server (optional)
+ ;Group = 123
+
+ # Set the "Passive" option to "yes" if you don't want this ngIRCd to
+ # connect to the configured peer (same as leaving the "Port" variable
+ # empty). The advantage of this option is that you can actually
+ # configure a port an use the IRC command CONNECT more easily to
+ # manually connect this specific server later.
+ ;Passive = no
+
+ # Connect to the remote server using TLS/SSL (Default: false)
+ ;SSLConnect = yes
+
+ # Define a (case insensitive) mask matching nick names that should be
+ # treated as IRC services when introduced via this remote server.
+ # REGULAR SERVERS DON'T NEED this parameter, so leave it empty
+ # (which is the default).
+ # When you are connecting IRC services which mask as a IRC server
+ # and which use "virtual users" to communicate with, for example
+ # "NickServ" and "ChanServ", you should set this parameter to
+ # something like "*Serv".
+ ;ServiceMask = *Serv
+
+[Server]
+ # More [Server] sections, if you like ...
+
+[Channel]
+ # Pre-defined channels can be configured in [Channel] sections.
+ # Such channels are created by the server when starting up and even
+ # persist when there are no more members left.
+ # Persistent channels are marked with the mode 'P', which can be set
+ # and unset by IRC operators like other modes on the fly.
+ # There may be more than one [Channel] block, one for each channel.
+
+ # Name of the channel
+ ;Name = #ngircd
+
+ # Topic for this channel
+ ;Topic = Our ngircd testing channel
+
+ # Initial channel modes
+ ;Modes = tnk
+
+ # initial channel password (mode k)
+ ;Key = Secret
+
+ # Key file, syntax for each line: "::".
+ # Default: none.
+ ;KeyFile = /etc/ngircd/#chan.key
+
+ # maximum users per channel (mode l)
+ ;MaxUsers = 23
+
+[Channel]
+ # More [Channel] sections, if you like ...
+
+# -eof-
--- ngircd-18.orig/debian/ngircd-conf-convert
+++ ngircd-18/debian/ngircd-conf-convert
@@ -0,0 +1,225 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2011, Christoph Biedl,
+#%# license-gplv2+
+
+=head1 NAME
+
+ngircd-conf-convert - convert ngircd.conf from pre18 version
+
+=head1 VERSION
+
+Version 2011.10.30
+
+=cut
+
+our $VERSION = '2011.10.30';
+
+=head1 SYNOPSIS
+
+convert ngircd.conf from pre18 version
+
+Usage:
+
+ ngircd-conf-convert [options]
+
+=cut
+
+use 5.010;
+use strict;
+use warnings;
+
+use Getopt::Long;
+use Pod::Usage;
+
+my $ignorecomments;
+
+=head1 OPTIONS
+
+=over
+
+=cut
+
+{
+ my $help;
+ my $man;
+ my %GetOptions = (
+ 'help|?' => \$help,
+ 'man' => \$man
+ );
+
+=item B<--ignorecomments>
+
+By default, this program will rewrite configuration variables even if
+they are commented out, e.g.
+
+ ;NoDNS = no
+
+to
+
+ ;DNS = yes
+
+Use this option to disable that feature.
+
+=cut
+
+ $GetOptions{'ignorecomments'} = \$ignorecomments;
+
+=item F F
+
+The old configuration file, and where to write the converted one to.
+The first one must exist, the content of the latter will be
+overwritten. If C<-> is given, content is read from stdin or written
+to stdout, respectively.
+
+=back
+
+=head1 DESCRIPTION
+
+The C converts ngIRCd configuration files according
+to the new section and variable names introduced in version 18.
+
+The changes done are small: Just renamings and adding the appropriate
+section name. No blocks are moved around, you might want to do that
+manually.
+
+Suggested workflow:
+
+ ngircd-conf-convert ngircd.conf ngircd.conf.new
+ # compare dumps created by --configtest
+ dump.old
+ dump.new
+ cmp -s dump.old dump.new || echo "ALERT: configuration was changed!"
+
+Remember: Your C may contain sensitive data, so don't
+do that in a world-readable directory.
+
+=cut
+
+ GetOptions (%GetOptions) or pod2usage (2);
+ pod2usage (1) if ($help);
+ pod2usage (-exitstatus => 0, -ignorecomments => 2) if ($man);
+
+ (scalar (@ARGV) == 2) or
+ die ("Need two file parameters.\n");
+}
+
+my %convert_logic = (
+ # variable name => [ , , ]
+ 'allowremoteoper' => [ 'Options' ],
+ 'chrootdir' => [ 'Options' ],
+ 'connectipv4' => [ 'Options' ],
+ 'connectipv6' => [ 'Options' ],
+ 'connectretry' => [ 'Limits' ],
+ 'maxconnections' => [ 'Limits' ],
+ 'maxconnectionsip' => [ 'Limits' ],
+ 'maxjoins' => [ 'Limits' ],
+ 'maxnicklength' => [ 'Limits' ],
+ 'nodns' => [ 'Options', 'DNS', 1 ],
+ 'noident' => [ 'Options', 'Ident', 1 ],
+ 'nopam' => [ 'Options', 'PAM', 1 ],
+ 'opercanusemode' => [ 'Options' ],
+ 'operservermode' => [ 'Options' ],
+ 'pingtimeout' => [ 'Limits' ],
+ 'pongtimeout' => [ 'Limits' ],
+ 'predefchannelsonly' => [ 'Options' ],
+ 'sslcertfile' => [ 'SSL', 'CertFile' ],
+ 'ssldhfile' => [ 'SSL', 'DHFile' ],
+ 'sslkeyfile' => [ 'SSL', 'KeyFile' ],
+ 'sslkeyfilepassword' => [ 'SSL', 'KeyFilePassword' ],
+ 'sslports' => [ 'SSL', 'Ports' ],
+ 'syslogfacility' => [ 'Options' ],
+ 'webircpassword' => [ 'Options' ],
+);
+
+my $oldvars = join ('|', keys %convert_logic);
+
+my ($old_file, $new_file) = @ARGV;
+my ($old_fh, $new_fh);
+if ($old_file eq '-') {
+ $old_fh = *STDIN;
+} else {
+ (-f $old_file) or
+ die ("Not a file: '$old_file'.\n");
+ open ($old_fh, '<', $old_file) or
+ die ("Canno read '$old_file': $!.\n");
+}
+
+my $section = '';
+# last section read from input
+
+my $set_section = '';
+# section we're currently in
+
+# slurp content
+my @content = <$old_fh>;
+($old_file eq '-') or close ($old_fh);
+
+sub insert_line ($$) {
+ # insert content before the given line. If this is a comment, seek
+ # further backwards.
+ my ($before, $content) = @_;
+ while ($before > 0 && $content[--$before] =~ /^\s*#/) {
+ }
+ splice @content, $before+1, 0, $content;
+}
+
+for (my $i = 0; $i < scalar (@content); $i++) {
+ my $line = $content[$i];
+ if ($line =~ /^\s*\[([a-z]+)\]/i) {
+ $set_section = $section = lc $1;
+ } elsif ($line =~ /^\s*(,|#|$)/) {
+ # nothing to do
+ } elsif (
+ $section eq 'global' &&
+ $line =~ /^(\s*)(;\s*)?($oldvars)(\s*=\s*)(.*?)$/i
+ ) {
+ my ($left, $comment, $var, $middle, $value) =
+ ($1 // '', $2 // '', $3, $4, $5 // '');
+ my ($new_section, $new_var, $invert) = @{$convert_logic{lc $var}};
+ $new_var //= $var;
+ ($comment && $ignorecomments) and
+ next;
+ if ($set_section ne $new_section) {
+ # switch section
+ insert_line ($i, "[$new_section]\n"); $i++;
+ $set_section = $new_section;
+ }
+ $invert and
+ ($value = ($value =~ /^(yes|true|[1-9]\d*)\s*$/) ? 'no' : 'yes');
+ $content[$i] = "$left$comment$new_var$middle$value\n";
+ } elsif ($set_section ne $section) {
+ # other content, switch back to global if necessary
+ die if ($section ne 'global');
+ insert_line ($i, "[Global]\n"); $i++;
+ $set_section = $section;
+ }
+}
+
+
+if ($new_file eq '-') {
+ $new_fh = *STDOUT;
+} else {
+ open ($new_fh, '>', $new_file) or
+ die ("Canno write '$new_file': $!.\n");
+ print $new_fh @content;
+}
+($new_file eq '-') or close ($new_fh);
+
+exit 0;
+
+__END__
+
+=head1 AUTHOR
+
+Christoph Biedl, Cdebian.axhn@manchmal.in-ulm.deE>
+
+=head1 COPYRIGHT & LICENSE
+
+ #%# license-gplv2+
+
+=cut
+
+# -- ETYKACLGPAK
--- ngircd-18.orig/debian/rules
+++ ngircd-18/debian/rules
@@ -0,0 +1,28 @@
+#!/usr/bin/make -f
+
+override_dh_auto_configure:
+ dh_auto_configure -- \
+ --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
+ --prefix=/usr \
+ --mandir=\$${prefix}/share/man \
+ --infodir=\$${prefix}/share/info \
+ --sysconfdir=/etc/ngircd \
+ --with-gnutls \
+ --enable-ipv6
+
+override_dh_auto_install:
+ dh_auto_install
+ # install config and sample motd file
+ install -m 640 -D $(CURDIR)/debian/ngircd.conf \
+ $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.conf
+ install -m 640 -D $(CURDIR)/debian/ngircd.motd \
+ $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.motd
+ install -m 755 -D $(CURDIR)/debian/ngircd-conf-convert \
+ $(CURDIR)/debian/ngircd/usr/share/ngircd/ngircd-conf-convert
+ # make lintian happy
+ rm $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/COPYING
+ mv $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/ChangeLog \
+ $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/changelog
+
+%:
+ dh $@
--- ngircd-18.orig/debian/changelog
+++ ngircd-18/debian/changelog
@@ -0,0 +1,126 @@
+ngircd (18-2) unstable; urgency=low
+
+ * Fix PIDDIR assertion (Closes: #648815).
+
+ -- Christoph Biedl Thu, 17 Nov 2011 20:22:15 +0000
+
+ngircd (18-1) unstable; urgency=low
+
+ * New upstream release 18
+ * The ngircd.conf file firmat has changed. Provide a helper program
+ to rewrite the configuration file.
+ * Upgrade to Standards-Version 3.9.2, no changes.
+
+ -- Christoph Biedl Sun, 06 Nov 2011 21:52:33 +0100
+
+ngircd (17.1-1) UNRELEASED; urgency=low
+
+ * New upstream release 17.1
+ * Upgrade to Standards-Version 3.9.1, no changes.
+ * Upgrade Debianisation to debhelper7.
+ * Clean up init script (fixes Ubuntu bug #382027).
+
+ -- Christoph Biedl Sat, 04 Jun 2011 18:16:00 +0200
+
+ngircd (15-0.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * New upstream version (Closes: #534410).
+ * Enable reload in init script (Closes: #548797).
+ * Enable TLS support.
+ * Enable IPv6 support.
+ * Set STARTTIME in init script.
+
+ -- Christoph Biedl Sun, 07 Feb 2010 21:15:58 +0100
+
+ngircd (0.12.1-2) unstable; urgency=low
+
+ * Create /var/run/ngircd/ when starting the daemon Closes: #507259
+ -- Patch thanks to Adrien Cunin
+ * Add myself to Uploaders
+
+ -- Matt Arnold Tue, 23 Dec 2008 11:54:00 -0500
+
+ngircd (0.12.1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #465815, #466063).
+ * Maintainer set to Debian IRC Team.
+ * Added Vcs-* fields in debian/control.
+ * Added Homepage field in debian/control.
+ * Removed Homepage from description field in debian/control.
+ * Bumped policy version to 3.8.0.
+ * Enabled syslog (Closes: #452028).
+ * New init-script derived from actual dh-templates. (Closes: #478338).
+
+ -- Mario Iseli Sat, 13 Sep 2008 16:47:32 +0200
+
+ngircd (0.10.3-1) unstable; urgency=low
+
+ * New maintainer E-Mail address.
+ * New upstream release.
+ * Removed several useless whitespaces in debian/*.
+ * Added [ ! -f Makefile ] || $(MAKE) distclean to debian/rules.
+
+ -- Mario Iseli Sat, 04 Aug 2007 17:04:53 +0200
+
+ngircd (0.10.0-3) unstable; urgency=medium
+
+ * Corrected the PidFile direction in sample ngircd.conf (Closes: #397331).
+
+ -- Mario Iseli Tue, 12 Dec 2006 10:34:13 +0100
+
+ngircd (0.10.0-2) unstable; urgency=medium
+
+ * Compile without epoll(), works now on Linux 2.4.x (Closes: #395553).
+ * Corrected the path to the example config in referenced ngircd.conf.
+
+ -- Mario Iseli Sun, 05 Nov 2006 13:51:59 +0100
+
+ngircd (0.10.0-1) unstable; urgency=low
+
+ * New upstream release (Closes: #392616).
+ * Removed provide on ircd.
+
+ -- Mario Iseli Wed, 11 Oct 2006 23:49:03 +0200
+
+ngircd (0.9.2-4) unstable; urgency=low
+
+ * Updated to policy 3.7.2
+ * Removed patch 04-nicklength to be RFC-compliant (Closes: #353876)
+
+ -- Mario Iseli Sun, 07 May 2006 15:21:34 +0200
+
+ngircd (0.9.2-3) unstable; urgency=low
+
+ * New patch which allows longer nicknames, thanks to Benjamin A'Lee
+ for the patch. (Closes: #355342)
+ * Fixed the typo in the example config. (Closes: #353876)
+
+ -- Mario Iseli Sun, 05 Mar 2006 23:22:34 +0100
+
+ngircd (0.9.2-2) unstable; urgency=low
+
+ * Wrote 03-ping.dpatch (Closes: #343200)
+ * Added a "if" in debian/ngircd.postinst
+
+ -- Mario Iseli Wed, 14 Dec 2005 23:02:34 +0100
+
+ngircd (0.9.2-1) unstable; urgency=low
+
+ * New upstream version
+ * Changed the init and postinst script
+ * reload in init script is now supported
+ * fixed mistake in configfile
+ * added original config as example
+ * Removed patches/01-manuals and added patches/02-manuals
+
+ -- Mario Iseli Wed, 16 Nov 2005 17:50:17 +0100
+
+ngircd (0.8.2-1) unstable; urgency=low
+
+ * Initial release Closes: #295970
+ * New debian-optimized config
+ * Introduced dpatch and wrote a patch for the manuals (01-manuals)
+
+ -- Mario Iseli Tue, 1 Nov 2005 20:08:53 +0100
+
--- ngircd-18.orig/debian/control
+++ ngircd-18/debian/control
@@ -0,0 +1,29 @@
+Source: ngircd
+Section: net
+Priority: optional
+Maintainer: Debian IRC Team
+Uploaders: Mario Iseli , Matt Arnold ,
+ Christoph Biedl
+Build-Depends: debhelper (>= 7.0.50~),
+ autotools-dev,
+ expect,
+ libgnutls-dev,
+ po-debconf,
+ procps,
+ telnet,
+Vcs-Svn: svn://svn.debian.org/pkg-irc/
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-irc
+Standards-Version: 3.9.2
+
+Package: ngircd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends},
+ debconf,
+ lsb-base (>= 3.0-6),
+Replaces: ircd
+Conflicts: dancer-ircd, ircd-hybrid, ircd-irc2, ircd-ircu, rageircd
+Homepage: http://ngircd.barton.de
+Description: Next generation IRC Server
+ ngircd is a IRC Daemon for small or private networks. It does not contain all
+ the functions like the professional ones, e.g services. It is written from
+ scratch and is not based upon the original IRCd like many others.
--- ngircd-18.orig/debian/ngircd.init
+++ ngircd-18/debian/ngircd.init
@@ -0,0 +1,160 @@
+#! /bin/sh
+
+### BEGIN INIT INFO
+# Provides: ngircd
+# Required-Start: $network $local_fs $remote_fs
+# Required-Stop: $network $local_fs $remote_fs
+# Should-Start: $named $syslog
+# Should-Stop: $named $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Next generation IRC daemon
+# Description: Simple IRC daemon written from scratch
+### END INIT INFO
+
+# Author: Christoph Biedl
+
+# Do NOT "set -e"
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC='Next generation IRC daemon'
+NAME='ngircd'
+DAEMON="/usr/sbin/$NAME"
+DAEMON_ARGS=""
+PIDDIR='/var/run/ngircd'
+PIDFILE="$PIDDIR/$NAME.pid"
+SCRIPTNAME="/etc/init.d/$NAME"
+DAEMONUSER='irc' # also group
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r "/etc/default/$NAME" ] && . "/etc/default/$NAME"
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
+# and status_of_proc is working.
+. /lib/lsb/init-functions
+
+# Assert PIDDIR
+[ -d "$PIDDIR" ] || mkdir -p "$PIDDIR"
+chown "$DAEMONUSER:$DAEMONUSER" "$PIDDIR"
+
+# Assert DAEMONUSER's home
+DAEMONHOME=$(getent passwd "$DAEMONUSER" | cut -d: -f6)
+[ -d "$DAEMONHOME" ] || mkdir -p "$DAEMONHOME"
+chown "$DAEMONUSER:$DAEMONUSER" "$DAEMONHOME"
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+ start-stop-daemon --start --quiet \
+ --pidfile "$PIDFILE" --exec "$DAEMON" \
+ --test > /dev/null || return 1
+ start-stop-daemon --start --quiet \
+ --chuid "$DAEMONUSER:$DAEMONUSER" \
+ --pidfile "$PIDFILE" --exec "$DAEMON" -- \
+ $DAEMON_ARGS || return 2
+ # Add code here, if necessary, that waits for the process to be ready
+ # to handle requests from services started subsequently which depend
+ # on this one. As a last resort, sleep for some time.
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \
+ --pidfile "$PIDFILE" --name "$NAME"
+ RETVAL="$?"
+ [ "$RETVAL" = 2 ] && return 2
+ # Wait for children to finish too if this is a daemon that forks
+ # and if the daemon is only ever run from this initscript.
+ # If the above conditions are not satisfied then add some other code
+ # that waits for the process to drop all resources that could be
+ # needed by services started subsequently. A last resort is to
+ # sleep for some time.
+ start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 \
+ --exec "$DAEMON"
+ [ "$?" = 2 ] && return 2
+ # Many daemons don't delete their pidfiles when they exit.
+ rm -f "$PIDFILE"
+ return "$RETVAL"
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+ start-stop-daemon --stop --signal 1 --quiet \
+ --pidfile "$PIDFILE" --name "$NAME"
+ return 0
+}
+
+case "$1" in
+start)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+ do_start
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+stop)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+status)
+ status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+ ;;
+reload|force-reload)
+ log_daemon_msg "Reloading $DESC" "$NAME"
+ do_reload
+ log_end_msg $?
+ ;;
+restart)
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_end_msg 1 ;; # Old process is still running
+ *) log_end_msg 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ log_end_msg 1
+ ;;
+ esac
+ ;;
+*)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+exit 0
--- ngircd-18.orig/debian/ngircd.bug-script
+++ ngircd-18/debian/ngircd.bug-script
@@ -0,0 +1,13 @@
+#!/bin/bash -e
+
+cat <<__EOS__ >&3
+
+WARNING: Your ngIRCd configuration file may contain data the world
+should not see, like passwords or structure of your IRC network.
+
+If you chose to include /etc/ngircd/ngircd.conf, make sure no
+confidential information remains. To keep this report terse, also
+remove all comments unless they are really necessary, and delete
+this notice.
+
+__EOS__
--- ngircd-18.orig/debian/po/POTFILES.in
+++ ngircd-18/debian/po/POTFILES.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] ngircd.templates
--- ngircd-18.orig/debian/po/templates.pot
+++ ngircd-18/debian/po/templates.pot
@@ -0,0 +1,65 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: ngircd@packages.debian.org\n"
+"POT-Creation-Date: 2011-11-04 22:08+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../ngircd.templates:1001
+msgid "Convert ngIRCd configuration?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../ngircd.templates:1001
+msgid ""
+"In version 18, the ngIRCd configuration file format has changed. You can "
+"choose to have your configuration re-written. Don't worry, the old format is "
+"still supported."
+msgstr ""
+
+#. Type: text
+#. Description
+#: ../ngircd.templates:2001
+msgid "Cannot convert configuration"
+msgstr ""
+
+#. Type: text
+#. Description
+#: ../ngircd.templates:2001
+msgid ""
+"The present configuration file contains errors and cannot be converted. "
+"Please check manually using\n"
+" ngircd --configtest\n"
+"and run 'dpkg-reconfigure ngircd' to try again."
+msgstr ""
+
+#. Type: text
+#. Description
+#: ../ngircd.templates:3001
+msgid "Error"
+msgstr ""
+
+#. Type: text
+#. Description
+#: ../ngircd.templates:3001
+msgid ""
+"Verification after conversion failed. This is a bug, please report it in the "
+"Debian bug tracker. Please include your configuration but make sure all "
+"passwords are removed. The diff below might give you some help:\n"
+" ${DIFF}"
+msgstr ""
--- ngircd-18.orig/debian/source/format
+++ ngircd-18/debian/source/format
@@ -0,0 +1 @@
+1.0