--- ngircd-21.orig/debian/changelog +++ ngircd-21/debian/changelog @@ -0,0 +1,223 @@ +ngircd (21-1) unstable; urgency=low + + * New upstream version 21 + * The cipher settings for TLS connections have been restricted, + please report any problems. + + -- Christoph Biedl Sun, 03 Nov 2013 13:15:58 +0000 + +ngircd (20.3-1) unstable; urgency=low + + * New upstream version 20.3, fixes CVE-2013-5580 + + -- Christoph Biedl Fri, 23 Aug 2013 23:36:54 +0200 + +ngircd (20.2-1~exp1) experimental; urgency=low + + * Fix systemd service definition installation + * New upstream version 20.2. This fixes the denial of service + vulnerability CVE-2013-1747 introduced with 20.1-1~exp1 + + -- Christoph Biedl Sat, 16 Feb 2013 22:57:16 +0100 + +ngircd (20.1-1~exp1) experimental; urgency=low + + * New upstream version 20.1 + * Upload to experimental + + -- Christoph Biedl Mon, 07 Jan 2013 19:27:26 +0100 + +ngircd (20-1) UNRELEASED; urgency=low + + * New upstream version 20 + * Fix path of upstream ngircd.conf. Closes: #693169 + * Remove ngircd-conf-convert and the debconf wrapper for it. This was + needed to support squeeze (ngircd 15) to wheezy (ngircd 19) + upgrades only. + * Merge config config from upstream + * Install systemd service definition + + -- Christoph Biedl Tue, 18 Dec 2012 21:09:55 +0100 + +ngircd (19.2-2) unstable; urgency=low + + * Debconf translation: Japanese (victory). Closes: #692479 + + -- Christoph Biedl Tue, 06 Nov 2012 23:26:40 +0100 + +ngircd (19.2-1) unstable; urgency=low + + * New upstream version 19.2 + * Fix watch file to handle release candidates properly + + -- Christoph Biedl Tue, 19 Jun 2012 18:24:46 +0200 + +ngircd (19.2~rc1-1) unstable; urgency=low + + * New upstream version 19.2~rc1 + * Fix "status" target in init script: + - "status" always returned "not running" since lsb-base 4.1 + - "status" was not documented in the short help + Thanks to Alex Barton for the heads-up. + * Provide a watch file + + -- Christoph Biedl Wed, 13 Jun 2012 21:30:58 +0200 + +ngircd (19.1-1) unstable; urgency=low + + * New upstream version 19.1 + * Enable hardened build flags. Closes: #664984 + + -- Christoph Biedl Tue, 17 Apr 2012 19:47:32 +0200 + +ngircd (19-1) unstable; urgency=low + + * New upstream release 19 + * Upgrade Standards-Version: to 3.9.3, no changes + + -- Christoph Biedl Wed, 29 Feb 2012 18:00:27 +0000 + +ngircd (18-3) UNRELEASED; urgency=low + + * Debconf templates and debian/control reviewed by the debian-l10n- + english team as part of the Smith review project. Closes: #648241 + * [Debconf translation updates] + * Portuguese (Pedro Ribeiro). Closes: #651678 + * Danish (Joe Hansen). Closes: #651892 + * Czech (Michal Simunek). Closes: #652087 + * German (Chris Leick). Closes: #652217 + * Russian (Yuri Kozlov). Closes: #652426 + * Brazilian Portuguese (Adriano Rafael Gomes). Closes: #652561 + * French (Julien Patriarca). Closes: #652895 + * Dutch (Jeroen Schot). Closes: #653080 + * Swedish (Martin Bagge). Closes: #653568 + * Spanish (Jathan). Closes: #655678 + + -- Christian Perrier Thu, 10 Nov 2011 07:05:54 +0100 + +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-21.orig/debian/compat +++ ngircd-21/debian/compat @@ -0,0 +1 @@ +7 --- ngircd-21.orig/debian/control +++ ngircd-21/debian/control @@ -0,0 +1,30 @@ +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, + hardening-wrapper, + libgnutls-dev, + procps, + telnet, +Vcs-Svn: svn://svn.debian.org/pkg-irc/ +Vcs-Browser: http://svn.debian.org/wsvn/pkg-irc +Standards-Version: 3.9.3 + +Package: ngircd +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, + lsb-base (>= 3.0-6), +Replaces: ircd +Conflicts: dancer-ircd, ircd-hybrid, ircd-irc2, ircd-ircu, rageircd +Homepage: http://ngircd.barton.de +Description: lightweight Internet Relay Chat server + This package provides ngIRCd, a lightweight Internet Relay Chat + server for small or private networks. It is simple to configure, can + cope with dynamic IP addresses, and supports IPv6 as well as SSL. It + is written from scratch, not based on the original IRCd and quite + portable. --- ngircd-21.orig/debian/copyright +++ ngircd-21/debian/copyright @@ -0,0 +1,38 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: ngircd +Upstream-Contact: Alexander Barton +Source: http://download.berlios.de/ngircd/ + +Files: * +Copyright: 2001-2013 Alexander Barton and contributors. +Comment: See /usr/share/doc/ngircd/AUTHORS for the full list of + authors and contributors. +License: GPL-2+ + +Files: debian/* +Copyright: + 2005-2008 Mario Iseli , + 2010-2013 Christoph Biedl +License: GPL-2+ + +License: GPL-2+ + This program 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 program 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 full text of the GNU General Public + License version 2 can be found in the file + `/usr/share/common-licenses/GPL-2'. --- ngircd-21.orig/debian/ngircd.README.Debian +++ ngircd-21/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-21.orig/debian/ngircd.bug-script +++ ngircd-21/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-21.orig/debian/ngircd.conf +++ ngircd-21/debian/ngircd.conf @@ -0,0 +1,386 @@ +# +# 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/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 + # writable 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 + + # Number of seconds after which the whole daemon should shutdown when + # no connections are left active after handling at least one client + # (0: never, which is the default). + # This can be useful for testing or when ngIRCd is started using + # "socket activation" with systemd(8), for example. + ;IdleTimeout = 0 + + # 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 nickname (Default: 9, as in RFC 2812). + # Please note that all servers in an IRC network MUST use the same + # maximum nickname length! + ;MaxNickLength = 9 + + # Maximum number of channels returned in response to a /list + # command (0: unlimited): + ;MaxListSize = 100 + + # 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. + + # List of allowed channel types (channel prefixes) for newly created + # channels on the local server. By default, all supported channel + # types are allowed. Set this variable to the empty string to disallow + # creation of new channels by local clients at all. + ;AllowedChannelTypes = #&+ + + # 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. + # Use %x to add the hashed value of the original hostname. + ;CloakHost = cloaked.host + + # Use this hostname for hostname cloaking on clients that have the + # user mode "+x" set, instead of the name of the server. + # Use %x to add the hashed value of the original hostname. + ;CloakHostModeX = cloaked.user + + # The Salt for cloaked hostname hashing. When undefined a random + # hash is generated after each server start. + ;CloakHostSalt = abcdefghijklmnopqrstuvwxyz + + # Set every clients' user name to their nickname + ;CloakUserToNick = yes + + # Try to connect to other IRC servers using IPv4 and IPv6, if possible. + ;ConnectIPv6 = yes + ;ConnectIPv4 = yes + + # Default user mode(s) to set on new local clients. Please note that + # only modes can be set that the client could set on itself, you can't + # set "a" (away) or "o" (IRC Op), for example! Default: none. + ;DefaultUserModes = i + + # Do DNS lookups when a client connects to the server. + ;DNS = yes + + # Do IDENT lookups if ngIRCd has been compiled with support for it. + # Users identified using IDENT are registered without the "~" character + # prepended to their user name. + # Note: The Debian package was compiled without ident support. + ;Ident = yes + + # Directory containing configuration snippets (*.conf), that should + # be read in after parsing this configuration file. + ;IncludeDir = /etc/ngircd/conf.d + + # 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 + + # Should IRC Operators get AutoOp (+o) in persistent (+P) channels? + ;OperChanPAutoOp = 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. + # Users identified using PAM are registered without the "~" character + # prepended to their user name. + # Note: The Debian package was compiled without PAM support. + ;PAM = yes + + # When PAM is enabled, all clients are required to be authenticated + # using PAM; connecting to the server without successful PAM + # authentication isn't possible. + # If this option is set, clients not sending a password are still + # allowed to connect: they won't become "identified" and keep the "~" + # character prepended to their supplied user name. + # Please note: To make some use of this behavior, it most probably + # isn't useful to enable "Ident", "PAM" and "PAMIsOptional" at the + # same time, because you wouldn't be able to distinguish between + # Ident'ified and PAM-authenticated users: both don't have a "~" + # character prepended to their respective user names! + ;PAMIsOptional = 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. + + # SSL Server Key Certificate + ;CertFile = /etc/ssl/certs/server.crt + + # Select cipher suites allowed for SSL/TLS connections. This defaults + # to HIGH:!aNULL:@STRENGTH (OpenSSL) or SECURE128 (GnuTLS). + # See 'man 1ssl ciphers' (OpenSSL) or 'man 3 gnutls_priority_init' + # (GnuTLS) for details. + # For OpenSSL: + ;CipherList = HIGH:!aNULL:@STRENGTH + # For GnuTLS (this Debian package was linked against GnuTLS): + CipherList = SECURE128 + + # 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 is 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 nickname) + ;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) list of masks matching nicknames that + # should be treated as IRC services when introduced via this remote + # server, separated by commas (","). + # 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" or "NickServ,ChanServ,XyzServ". + ;ServiceMask = *Serv,Global + +[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-21.orig/debian/ngircd.init +++ ngircd-21/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 -p "$PIDFILE" "$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|status}" >&2 + exit 3 + ;; +esac + +exit 0 --- ngircd-21.orig/debian/ngircd.lintian-overrides +++ ngircd-21/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-21.orig/debian/ngircd.motd +++ ngircd-21/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-21.orig/debian/rules +++ ngircd-21/debian/rules @@ -0,0 +1,30 @@ +#!/usr/bin/make -f + +export DEB_BUILD_HARDENING=1 + +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 640 -D $(CURDIR)/contrib/ngircd.service \ + $(CURDIR)/debian/ngircd/lib/systemd/system/ngircd.service + # 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-21.orig/debian/source/format +++ ngircd-21/debian/source/format @@ -0,0 +1 @@ +1.0 --- ngircd-21.orig/debian/watch +++ ngircd-21/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://arthur.barton.de/pub/ngircd/ngircd-([0-9\.]+(?:~rc\d+)?)\.tar\.gz --- ngircd-21.orig/src/testsuite/Makefile.in +++ ngircd-21/src/testsuite/Makefile.in @@ -202,7 +202,6 @@ mode-test \ opless-channel-test \ who-test \ - whois-test \ server-link-test \ stop-server2 \ stress-server.sh \