diff options
Diffstat (limited to 'ngircd/contrib')
26 files changed, 1829 insertions, 0 deletions
diff --git a/ngircd/contrib/Debian/.gitignore b/ngircd/contrib/Debian/.gitignore new file mode 100644 index 0000000..2b352d4 --- /dev/null +++ b/ngircd/contrib/Debian/.gitignore @@ -0,0 +1,7 @@ +*.log +*.debhelper +*.substvars +debhelper-build-stamp +files +ngircd/ +ngircd.service diff --git a/ngircd/contrib/Debian/Makefile.am b/ngircd/contrib/Debian/Makefile.am new file mode 100644 index 0000000..bbc715f --- /dev/null +++ b/ngircd/contrib/Debian/Makefile.am @@ -0,0 +1,30 @@ +# +# ngIRCd -- The Next Generation IRC Daemon +# Copyright (c)2001-2024 Alexander Barton (alex@barton.de) and Contributors +# +# 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. +# Please read the file COPYING, README and AUTHORS for more information. +# + +EXTRA_DIST = \ + changelog \ + control \ + copyright \ + ngircd.default \ + ngircd.pam \ + rules \ + watch \ + source/format + +maintainer-clean-local: + rm -f Makefile Makefile.in + +clean-local: + rm -f *.log *.debhelper *.substvars + rm -f debhelper-build-stamp files ngircd.service + rm -rf .debhelper/ ngircd/ + +# -eof- diff --git a/ngircd/contrib/Debian/changelog b/ngircd/contrib/Debian/changelog new file mode 100644 index 0000000..3d008ed --- /dev/null +++ b/ngircd/contrib/Debian/changelog @@ -0,0 +1,598 @@ +ngircd (27-0ab1) unstable; urgency=medium + + * New "upstream" release: ngIRCd 27. + + -- Alexander Barton <alex@barton.de> Fri, 26 Apr 2024 16:52:14 +0200 + +ngircd (27~rc1-0ab1) unstable; urgency=medium + + * New "upstream" release candidate 1 for ngIRCd Release 27. + + -- Alexander Barton <alex@barton.de> Sat, 13 Apr 2024 12:26:35 +0200 + +ngircd (26.1-0ab1) unstable; urgency=medium + + * New "upstream" release: ngIRCd 26.1. + + -- Alexander Barton <alex@barton.de> Sat, 02 Jan 2021 14:31:51 +0100 + +ngircd (26-0ab1) unstable; urgency=medium + + * New "upstream" release: ngIRCd 26. + + -- Alexander Barton <alex@barton.de> Sat, 20 Jun 2020 15:26:46 +0200 + +ngircd (26~rc2-0ab1) unstable; urgency=low + + * New "upstream" release candidate 2 for ngIRCd Release 26. + + -- Alexander Barton <alex@barton.de> Thu, 11 Jun 2020 17:21:17 +0200 + +ngircd (26~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 26. + + -- Alexander Barton <alex@barton.de> Sun, 10 May 2020 17:13:17 +0200 + +ngircd (25-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 25. + + -- Alexander Barton <alex@barton.de> Wed, 23 Jan 2019 23:13:03 +0100 + +ngircd (25~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 25. + + -- Alexander Barton <alex@barton.de> Sat, 11 Aug 2018 21:35:08 +0200 + +ngircd (24-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 24. + + -- Alexander Barton <alex@barton.de> Fri, 20 Jan 2017 16:43:09 +0100 + +ngircd (24~rc1-0ab2) unstable; urgency=low + + * Use OpenSSL instead of GnuTLS for SSL-enabled packages. + + -- Alexander Barton <alex@barton.de> Fri, 20 Jan 2017 15:20:07 +0100 + +ngircd (24~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 24. + + -- Alexander Barton <alex@barton.de> Sat, 07 Jan 2017 18:58:02 +0100 + +ngircd (23-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 23. + + -- Alexander Barton <alex@barton.de> Mon, 16 Nov 2015 21:27:03 +0100 + +ngircd (23~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 23. + + -- Alexander Barton <alex@barton.de> Sun, 06 Sep 2015 16:55:23 +0200 + +ngircd (22.1-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 22.1. + + -- Alexander Barton <alex@barton.de> Mon, 06 Apr 2015 14:34:50 +0200 + +ngircd (22-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 22. + + -- Alexander Barton <alex@barton.de> Sat, 11 Oct 2014 20:29:03 +0200 + +ngircd (22~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 22. + + -- Alexander Barton <alex@barton.de> Mon, 29 Sep 2014 17:07:55 +0200 + +ngircd (21.1-0ab2) unstable; urgency=low + + * Use correct package name in pathname to "HelpFile" (Command.txt) + in "ngircd-full" and "ngircd-full-dbg" packages. + * Don't adjust path names that are correct by default. + + -- Alexander Barton <alex@barton.de> Mon, 14 Jul 2014 11:20:17 +0200 + +ngircd (21.1-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 21.1. + + -- Alexander Barton <alex@barton.de> Tue, 25 Mar 2014 14:44:59 +0100 + +ngircd (21-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 21. + + -- Alexander Barton <alex@barton.de> Wed, 30 Oct 2013 22:13:55 +0100 + +ngircd (21~rc2-0ab3) unstable; urgency=low + + * Fix sed(1) rules adjusting "ngircd-full" package, error introduced + by last commit :-/ + + -- Alexander Barton <alex@barton.de> Sun, 20 Oct 2013 18:31:16 +0200 + +ngircd (21~rc2-0ab2) unstable; urgency=low + + * Fix default "HelpFile" file name in ngircd.conf for "full" packages. + + -- Alexander Barton <alex@barton.de> Sun, 20 Oct 2013 17:18:28 +0200 + +ngircd (21~rc2-0ab1) unstable; urgency=low + + * New "upstream" release candidate 2 for ngIRCd Release 21. + + -- Alexander Barton <alex@barton.de> Sun, 20 Oct 2013 15:50:03 +0200 + +ngircd (21~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 21. + + -- Alexander Barton <alex@barton.de> Sat, 05 Oct 2013 23:24:09 +0200 + +ngircd (20.3-0ab1) unstable; urgency=high + + * New "upstream" release, fixing a security related bug: ngIRCd 20.3. + + -- Alexander Barton <alex@barton.de> Fri, 23 Aug 2013 21:53:21 +0200 + +ngircd (20.2-0ab1) unstable; urgency=high + + * New "upstream" release, fixing a security related bug: ngIRCd 20.2. + + -- Alexander Barton <alex@barton.de> Fri, 15 Feb 2013 12:17:00 +0100 + +ngircd (20.1-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 20.1. + + -- Alexander Barton <alex@barton.de> Wed, 02 Jan 2013 22:37:26 +0100 + +ngircd (20-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 20. + + -- Alexander Barton <alex@barton.de> Mon, 17 Dec 2012 13:04:15 +0100 + +ngircd (20~rc2-0ab1) unstable; urgency=low + + * New "upstream" release candidate 2 for ngIRCd Release 20. + + -- Alexander Barton <alex@barton.de> Sun, 02 Dec 2012 18:51:06 +0100 + +ngircd (20~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 20. + + -- Alexander Barton <alex@barton.de> Sun, 11 Nov 2012 16:03:32 +0100 + +ngircd (19.2-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 19.2. + + -- Alexander Barton <alex@barton.de> Tue, 19 Jun 2012 11:03:12 +0200 + +ngircd (19.2~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRC Release 19.2. + + -- Alexander Barton <alex@barton.de> Wed, 13 Jun 2012 10:59:34 +0200 + +ngircd (19.1-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 19.1. + + -- Alexander Barton <alex@barton.de> Mon, 19 Mar 2012 19:18:28 +0100 + +ngircd (19-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 19. + + -- Alexander Barton <alex@barton.de> Wed, 29 Feb 2012 17:34:08 +0100 + +ngircd (19~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 19. + + -- Alexander Barton <alex@barton.de> Sun, 12 Feb 2012 17:47:51 +0100 + +ngircd (18-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 18. + + -- Alexander Barton <alex@barton.de> Sun, 10 Jul 2011 20:03:20 +0200 + +ngircd (18~rc2-0ab1) unstable; urgency=low + + * New "upstream" release candidate 2 for ngIRCd Release 18. + + -- Alexander Barton <alex@barton.de> Wed, 29 Jun 2011 10:20:51 +0200 + +ngircd (18~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 18. + + -- Alexander Barton <alex@barton.de> Mon, 27 Jun 2011 22:58:36 +0200 + +ngircd (17.1-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 17.1. + + -- Alexander Barton <alex@barton.de> Sun, 19 Dec 2010 15:56:42 +0100 + +ngircd (17-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 17. + + -- Alexander Barton <alex@barton.de> Sun, 07 Nov 2010 17:23:07 +0100 + +ngircd (17~rc3-0ab1) unstable; urgency=low + + * New "upstream" release candidate 3 for ngIRCd Release 17. + + -- Alexander Barton <alex@barton.de> Wed, 27 Oct 2010 22:30:08 +0200 + +ngircd (17~rc2-0ab2) unstable; urgency=low + + * Install /etc/pam.d/ngircd including "auth required pam_permit.so" when + installing -full or -full-dbg variant to keep backwards compatibility. + + -- Alexander Barton <alex@barton.de> Tue, 26 Oct 2010 23:34:56 +0200 + +ngircd (17~rc2-0ab1) unstable; urgency=low + + * New "upstream" release candidate 2 for ngIRCd Release 17. + + -- Alexander Barton <alex@barton.de> Mon, 25 Oct 2010 18:51:15 +0200 + +ngircd (17~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 17. + + -- Alexander Barton <alex@barton.de> Mon, 11 Oct 2010 16:57:47 +0200 + +ngircd (16-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 16. + + -- Alexander Barton <alex@barton.de> Sun, 02 May 2010 13:32:41 +0200 + +ngircd (16~rc2-0ab1) unstable; urgency=low + + * New "upstream" release candidate 2 for ngIRCd Release 16. + + -- Alexander Barton <alex@barton.de> Sun, 25 Apr 2010 13:12:42 +0200 + +ngircd (16~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 16. + + -- Alexander Barton <alex@barton.de> Thu, 25 Mar 2010 15:56:03 +0200 + +ngircd (15-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 15. + + -- Alexander Barton <alex@barton.de> Thu, 7 Nov 2009 12:07:08 +0200 + +ngircd (15~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 15. + + -- Alexander Barton <alex@barton.de> Thu, 15 Oct 2009 10:01:08 +0200 + +ngircd (14.1-0ab1) unstable; urgency=high + + * New "upstream" release ngIRCd 14.1, fixing a security-related bug. + + -- Alexander Barton <alex@barton.de> Tue, 5 May 2009 13:13:38 +0200 + +ngircd (14-0ab3) unstable; urgency=low + + * Fixed "Conflicts:" line in debian/control: missing comma. + + -- Alexander Barton <alex@barton.de> Mon, 4 May 2009 11:21:55 +0200 + +ngircd (14-0ab2) unstable; urgency=low + + * Add new "ngircd-full-dbg" package including degug code and both + the --debug and --sniffer options, and containing debug symbols. + + -- Alexander Barton <alex@barton.de> Wed, 29 Apr 2009 01:13:03 +0200 + +ngircd (14-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 14. + + -- Alexander Barton <alex@barton.de> Mon, 20 Apr 2009 11:09:12 +0200 + +ngircd (14~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 14. + + -- Alexander Barton <alex@barton.de> Sun, 29 Mar 2009 17:09:17 +0200 + +ngircd (13-0ab1) unstable; urgency=low + + * New "upstream" release: ngIRCd 13. + + -- Alexander Barton <alex@barton.de> Thu, 25 Dec 2008 23:09:58 +0100 + +ngircd (13~rc1-0ab1) unstable; urgency=low + + * New "upstream" release candidate 1 for ngIRCd Release 13. + + -- Alexander Barton <alex@barton.de> Fri, 21 Nov 2008 22:04:41 +0100 + +ngircd (0.12.1-0ab1+dev) unstable; urgency=low + + * Update package for testing the new "upstream" features: + - Support for IRC services (see http://www.ircservices.za.net), + - Encrypted connections using GNU TLS (ngircd-full), + - Support for the IPv6 protocol (ngircd-full). + + -- Alexander Barton <alex@barton.de> Fri, 03 Oct 2008 16:22:55 +0200 + +ngircd (0.12.1-0ab1) unstable; urgency=low + + * New "upstream" release ngIRCd 0.12.1. + + -- Alexander Barton <alex@barton.de> Wed, 9 Jul 2008 11:27:00 +0200 + +ngircd (0.12.0-0ab1) unstable; urgency=low + + * New "upstream" release ngIRCd 0.12.0. + + -- Alexander Barton <alex@barton.de> Tue, 13 May 2008 12:30:31 +0200 + +ngircd (0.12.0-0ab0-pre2) unstable; urgency=low + + * Second prerelease of upcoming new "upstrem" release 0.12.0-pre1. + + -- Alexander Barton <alex@barton.de> Tue, 29 Apr 2008 23:06:14 +0200 + +ngircd (0.12.0-0ab0-pre1) unstable; urgency=low + + * Prereloease of upcoming new "upstrem" release 0.12.0-pre1. + + -- Alexander Barton <alex@barton.de> Sun, 20 Apr 2008 15:43:34 +0200 + +ngircd (0.11.0-0ab0-pre2) unstable; urgency=low + + * Second prerelease of upcoming new "upstream release". + + -- Alexander Barton <alex@barton.de> Mon, 7 Jan 2008 15:32:42 +0100 + +ngircd (0.11.0-0ab0-pre1) unstable; urgency=low + + * Prerelease of upcoming new "upstream release". + + -- Alexander Barton <alex@barton.de> Wed, 2 Jan 2008 21:33:15 +0100 + +ngircd (0.10.4-0ab1) unstable; urgency=high + + * New "upstream" release: 0.10.4 - fixing a security bug. + + -- Alexander Barton <alex@barton.de> Mon, 7 Jan 2008 22:04:44 +0100 + +ngircd (0.10.0-0ab1) unstable; urgency=low + + * New "upstream" release: 0.10.0 + + -- Alexander Barton <alex@barton.de> Sun, 1 Oct 2006 18:14:21 +0200 + +ngircd (0.10.0-0ab0-pre2-1) unstable; urgency=low + + * Bumped standards version to 3.7.2.1. + * Added "Provides: ircd" to Debian control file. + + -- Alexander Barton <alex@barton.de> Sun, 1 Oct 2006 16:25:33 +0200 + +ngircd (0.10.0-0ab0-pre2) unstable; urgency=low + + * Second "upstream" prerelease of upcoming 0.10.0 release. + + -- Alexander Barton <alex@barton.de> Sat, 9 Sep 2006 20:57:52 +0200 + +ngircd (0.10.0-0ab0-pre1) unstable; urgency=low + + * Prerelease of upcoming new "upstream release". + + -- Alexander Barton <alex@barton.de> Wed, 2 Aug 2006 12:01:07 +0200 + +ngircd (0.9.2-0ab1) unstable; urgency=low + + * New "upstream release" fixing a few bugs in 0.9.1. + + -- Alexander Barton <alex@barton.de> Sat, 15 Oct 2005 14:10:34 +0200 + +ngircd (0.9.1-0ab1) unstable; urgency=medium + + * New "upstream release" addressing two problems in ngIRCd 0.9.0. + + -- Alexander Barton <alex@barton.de> Wed, 3 Aug 2005 15:10:41 +0200 + +ngircd (0.9.0-0ab2) unstable; urgency=medium + + * Init script: fixed a problem with symbolic links in runlevel directories + that could prevent the init script from working correctly. + + -- Alexander Barton <alex@barton.de> Tue, 26 Jul 2005 21:31:18 +0200 + +ngircd (0.9.0-0ab1) unstable; urgency=low + + * New "upstream release". + + -- Alexander Barton <alex@Arthur.Ath.CX> Sat, 24 Jul 2005 23:30:00 +0200 + +ngircd (0.8.3-0ab1) unstable; urgency=high + + * New "upstream release", including security fixes. + + -- Alexander Barton <alex@Arthur.Ath.CX> Thu, 3 Feb 2005 10:41:55 +0100 + +ngircd (0.8.2-0ab1) unstable; urgency=high + + * New "upstream release", including security fixes. + + -- Alexander Barton <alex@Arthur.Ath.CX> Wed, 26 Jan 2005 23:14:12 +0100 + +ngircd (0.8.1-0ab1) unstable; urgency=low + + * New "upstream release". + + -- Alexander Barton <alex@Arthur.Ath.CX> Sat, 25 Dec 2004 01:18:32 +0100 + +ngircd (0.8.0-0ab2) unstable; urgency=low + + * Added missing commas to debian control file, fixes bug #56. + Thanks to Kevin Otte. + + -- Alexander Barton <alex@Arthur.Ath.CX> Thu, 15 Jul 2004 10:53:39 +0200 + +ngircd (0.8.0-0ab1) unstable; urgency=low + + * New upstream version. + + -- Alexander Barton <alex@Arthur.Ath.CX> Sat, 26 Jun 2004 11:25:59 +0200 + +ngircd (0.7.7+HEAD-0ab6) unstable; urgency=low + + * Incorporated actual CVS HEAD version which includes all features of + version 0.8.0-pre1 and patches for the resolver and logger. + + -- Alexander Barton <alex@Arthur.Ath.CX> Tue, 11 May 2004 02:18:50 +0200 + +ngircd (0.7.7+HEAD-0ab5) unstable; urgency=low + + * Updates from CVS HEAD branch, most notably: "INVITE- and BAN-lists + become synchronized between IRC+ servers when establishing new + connections, if the peer supports this as well." + + -- Alexander Barton <alex@Arthur.Ath.CX> Mon, 26 Apr 2004 01:53:15 +0200 + +ngircd (0.7.7+HEAD-0ab4) unstable; urgency=low + + * This version includes fixes for INVITE command and the handling of the + invite and ban lists from CVS-HEAD. + + -- Alexander Barton <alex@Arthur.Ath.CX> Fri, 9 Apr 2004 23:55:13 +0200 + +ngircd (0.7.7+HEAD-0ab3) unstable; urgency=low + + * Included MODE fix from CVS-HEAD branch. + + -- Alexander Barton <alex@Arthur.Ath.CX> Mon, 5 Apr 2004 13:09:24 +0200 + +ngircd (0.7.7+HEAD-0ab2) unstable; urgency=low + + * Incorporated more fixes and enhancements of CVS-HEAD version, + e. g. better connection logging and fixed TRACE command. + + -- Alexander Barton <alex@Arthur.Ath.CX> Sat, 28 Feb 2004 03:20:32 +0100 + +ngircd (0.7.7+HEAD-0ab1) unstable; urgency=low + + * New upstream version. This debian package includes all features of + ngIRCd 0.7.7 and changes of the CVS-HEAD development tree. + + -- Alexander Barton <alex@Arthur.Ath.CX> Thu, 5 Feb 2004 15:23:22 +0100 + +ngircd (0.7.6+HEAD-0ab2) unstable; urgency=low + + * Included new fixes and additions from the CVS-HEAD upstream branch, + e. g. the setting of type of service (TOS) on sockets. + + -- Alexander Barton <alex@Arthur.Ath.CX> Mon, 26 Jan 2004 04:05:41 +0100 + +ngircd (0.7.6+HEAD-0ab1) unstable; urgency=low + + * Included all changes from the CVS-HEAD upstream version. + * Restructured debian packaging system: now there are two packages, a + "standard" version that includes all the default options and a "full" + version that additionally includes support for TCP wrappers and IDENT + lookups. + + -- Alexander Barton <alex@Arthur.Ath.CX> Thu, 1 Jan 2004 23:12:11 +0100 + +ngircd (0.7.6-0ab1) unstable; urgency=medium + + * New upstream version. + * Changed version numvering scheme of debian package. + + -- Alexander Barton <alex@Arthur.Ath.CX> Fri, 5 Dec 2003 14:26:41 +0100 + +ngircd (0.7.5-0.2ab) unstable; urgency=low + + * Updated RPM and Debian package description and configuration. + + -- Alexander Barton <alex@Arthur.Ath.CX> Sat, 29 Nov 2003 21:24:32 +0100 + +ngircd (0.7.5-0.1ab) unstable; urgency=low + + * New upstream version. + + -- Alexander Barton <alex@Arthur.Ath.CX> Fri, 7 Nov 2003 21:59:58 +0100 + +ngircd (0.7.1-0.1ab) unstable; urgency=low + + * New upstream version :-) + + -- Alexander Barton <alex@Arthur.Ath.CX> Fri, 18 Jul 2003 22:53:02 +0200 + +ngircd (0.7.0-0.7ab) unstable; urgency=low + + * Fixed up post installation script (added interpreter, fixed chmod call). + + -- Alexander Barton <alex@Arthur.Ath.CX> Sun, 13 Jul 2003 00:52:38 +0200 + +ngircd (0.7.0-0.6ab) unstable; urgency=low + + * Added /etc/default/ngircd. + * Included own post installation script. + + -- Alexander Barton <alex@Arthur.Ath.CX> Sat, 12 Jul 2003 20:31:09 +0200 + +ngircd (0.7.0-0.5ab) unstable; urgency=low + + * Enhanced init script. + * Included NJOIN fix from actual CVS "HEAD" branch. + + -- Alexander Barton <alex@Arthur.Ath.CX> Wed, 9 Jul 2003 22:40:49 +0200 + +ngircd (0.7.0-0.4ab) unstable; urgency=low + + * Reverted use of dh_installexamples. + + -- Alexander Barton <alex@Arthur.Ath.CX> Thu, 22 May 2003 00:15:03 +0200 + +ngircd (0.7.0-0.3ab) unstable; urgency=low + + * Removed "debian/docs" and "debian/conffiles"; debhelper takes care of + this for us automagically. + * Excluded "etc/ngircd.conf" from dh_fixperms. + + -- Alexander Barton <alex@Arthur.Ath.CX> Wed, 21 May 2003 23:25:05 +0200 + +ngircd (0.7.0-0.2ab) unstable; urgency=low + + * Fixed wrong variable substitution in init script. + * Added some CVS "Id-Tags" (but not checked in, yet). + * Removed own "Provides:" from control file. + + -- Alexander Barton <alex@barton.de> Wed, 21 May 2003 12:32:34 +0200 + +ngircd (0.7.0-0.1ab) unstable; urgency=low + + * Initial Release. + + -- Alexander Barton <alex@barton.de> Wed, 21 May 2003 02:36:52 +0200 diff --git a/ngircd/contrib/Debian/control b/ngircd/contrib/Debian/control new file mode 100644 index 0000000..e05ae64 --- /dev/null +++ b/ngircd/contrib/Debian/control @@ -0,0 +1,46 @@ +Source: ngircd +Section: net +Priority: optional +Maintainer: Alexander Barton <alex@barton.de> +Rules-Requires-Root: binary-targets +Build-Depends: debhelper-compat (= 13), + expect, + libident-dev, + libpam0g-dev, + libssl-dev, + libz-dev, + openssl, + procps, + telnet | telnet-ssl, +Standards-Version: 4.6.2 +Homepage: https://ngircd.barton.de +Vcs-Browser: https://github.com/ngircd/ngircd +Vcs-Git: https://github.com/ngircd/ngircd.git + +Package: ngircd +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Conflicts: + ircd, +Provides: + ircd, +Description: lightweight Internet Relay Chat (IRC) server + ngIRCd is a free, portable and lightweight Internet Relay Chat (IRC) server + for small or private networks, developed under the terms of the GNU General + Public License (GPL). + . + The server is quite easy to configure and runs as a single-node server or can + be part of a network of ngIRCd servers in a LAN or across the internet. It + optionally supports the IPv6 protocol, SSL/TLS-protected client-server and + server-server links, the Pluggable Authentication Modules (PAM) system for + user authentication, IDENT requests, and character set conversion for legacy + clients. + . + The name ngIRCd stands for next-generation IRC daemon, which is a little bit + exaggerated: lightweight Internet Relay Chat server most probably would have + been a better name :-) + . + This package is built with support for all optional features and uses the + OpenSSL library for SSL/TLS support. diff --git a/ngircd/contrib/Debian/copyright b/ngircd/contrib/Debian/copyright new file mode 100644 index 0000000..4b39bfa --- /dev/null +++ b/ngircd/contrib/Debian/copyright @@ -0,0 +1,58 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Source: https://ngircd.barton.de +Upstream-Name: ngircd +Upstream-Contact: ngIRCd Mailing List <ngircd@lists.barton.de> + +Files: + * +Copyright: + 2001-2024 Alexander Barton <alex@barton.de> and Contributors. +License: GPL-2.0+ +Comment: + See /usr/share/doc/ngircd/AUTHORS.md for the full list of authors and + contributors. + +Files: + contrib/de.barton.ngircd.metainfo.xml +Copyright: + 2001-2024 Alexander Barton <alex@barton.de> and Contributors. +License: MIT +Comment: + See /usr/share/doc/ngircd/AUTHORS.md for the full list of authors and + contributors. + +License: GPL-2.0+ + 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 program. If not, see <https://www.gnu.org/licenses/> +Comment: + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. diff --git a/ngircd/contrib/Debian/ngircd.default b/ngircd/contrib/Debian/ngircd.default new file mode 100644 index 0000000..062d376 --- /dev/null +++ b/ngircd/contrib/Debian/ngircd.default @@ -0,0 +1,7 @@ +# +# Defaults for the ngIRCd daemon +# + +# Parameters to pass to the ngircd daemon on startup, see ngircd(8) for +# possible options (default: empty). +PARAMS="" diff --git a/ngircd/contrib/Debian/ngircd.pam b/ngircd/contrib/Debian/ngircd.pam new file mode 100644 index 0000000..9d2f6d5 --- /dev/null +++ b/ngircd/contrib/Debian/ngircd.pam @@ -0,0 +1,10 @@ +# /etc/pam.d/ngircd + +# You have to adjust this configuration to your local setup and needs. Keep in +# mind that all PAM modules are run with the privileges of the user account the +# ngIRCd daemon runs as ("irc" by default, not root!), so you can't use PAM +# modules requiring root privileges (like pam_unix, for example)! + +# Log and deny all connections to ngIRCd: +auth required pam_warn.so +auth required pam_deny.so diff --git a/ngircd/contrib/Debian/rules b/ngircd/contrib/Debian/rules new file mode 100755 index 0000000..561f765 --- /dev/null +++ b/ngircd/contrib/Debian/rules @@ -0,0 +1,72 @@ +#!/usr/bin/make -f + +# See FEATURE AREAS in dpkg-buildflags(1). +export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +%: + dh $@ + +# Disable dh_autoreconf since we are using de-ANSI-fication which was removed +# from automake a while ago. See <https://github.com/ngircd/ngircd/issues/261>. +override_dh_autoreconf: + +override_dh_auto_configure: + dh_auto_configure -- \ + --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ + --prefix=/usr \ + --mandir=\$${prefix}/share/man \ + --sysconfdir=/etc/ngircd \ + --with-iconv \ + --with-ident \ + --with-openssl \ + --with-pam \ + --with-syslog \ + --with-zlib + +execute_before_dh_auto_install: + ln -fs $(CURDIR)/contrib/ngircd.service $(CURDIR)/debian/ngircd.service + +execute_after_dh_auto_install: +# Generate the default ngircd.conf: + install -o root -g irc -m 0640 -D /dev/null \ + $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.conf + sed \ + -e "s|;ServerUID = 65534|ServerUID = irc|g" \ + -e "s|;ServerGID = 65534|ServerGID = irc|g" \ + -e "s|;PidFile = /var/run/ngircd/ngircd.pid|PidFile = /run/ircd/ngircd.pid|g" \ + -e "s|;PAM = yes|PAM = no|g" \ + -e "s|;\[SSL\]|[SSL]|g" \ + -e "s|;CAFile = /etc/ssl/CA/cacert.pem|CAFile = /etc/ssl/certs/ca-certificates.crt|g" \ + $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/sample-ngircd.conf \ + >>$(CURDIR)/debian/ngircd/etc/ngircd/ngircd.conf + +# Create drop-in configuration directory: + install -o root -g irc -m 0750 -d \ + $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.conf.d + +# Install an empty MOTD file. + install -o root -g irc -m 0640 -D /dev/null \ + $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.motd + +# Install the logcheck(8) configuration. + install -o root -g root -m 0644 -D \ + $(CURDIR)/contrib/ngircd.logcheck \ + $(CURDIR)/debian/ngircd/etc/logcheck/ignore.d.paranoid/ngircd + +# Install the fail2ban configuration. + install -o root -g root -m 0644 -D \ + $(CURDIR)/contrib/ngircd-fail2ban.conf \ + $(CURDIR)/debian/ngircd/etc/fail2ban/filter.d/ngircd.conf + +# 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 + +override_dh_fixperms: +# Preserve the permissions of files installed in /etc/ngircd! + dh_fixperms -X/etc/ngircd + +override_dh_compress: +# The Commands.txt file is read by the daemon, don't compress it! + dh_compress -XCommands.txt diff --git a/ngircd/contrib/Debian/source/format b/ngircd/contrib/Debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/ngircd/contrib/Debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/ngircd/contrib/Debian/watch b/ngircd/contrib/Debian/watch new file mode 100644 index 0000000..7943e69 --- /dev/null +++ b/ngircd/contrib/Debian/watch @@ -0,0 +1,10 @@ +# Watch control file for uscan. +# See uscan(1) for format. + +# Compulsory line, this is a version 4 file. +version=4 + +# PGP signature mangle, so foo.tar.gz has foo.tar.gz.sig. +opts="pgpsigurlmangle=s%$%.sig%" + +https://arthur.barton.de/pub/@PACKAGE@/@PACKAGE@-([0-9\.]+)@ARCHIVE_EXT@ diff --git a/ngircd/contrib/Dockerfile b/ngircd/contrib/Dockerfile new file mode 100644 index 0000000..de4cc37 --- /dev/null +++ b/ngircd/contrib/Dockerfile @@ -0,0 +1,68 @@ +# ngIRCd -- The Next Generation IRC Daemon +# Copyright (c)2001-2024 Alexander Barton (alex@barton.de) and Contributors + +# Build Container + +FROM docker.io/library/debian:stable-slim AS build +LABEL org.opencontainers.image.source=https://github.com/ngircd/ngircd +LABEL org.opencontainers.image.description="Free, portable and lightweight Internet Relay Chat server (build container)" +LABEL org.opencontainers.image.licenses=GPL-2.0-or-later +USER root +RUN apt-get -y update \ + && apt-get -y install --no-install-recommends \ + autoconf \ + automake \ + build-essential \ + expect \ + gawk \ + git \ + libgnutls28-dev \ + libident-dev \ + libpam0g-dev \ + openssl \ + pkg-config \ + telnet \ + zlib1g-dev \ + && mkdir -p /usr/local/src/ngircd /opt/ngircd \ + && chown bin:bin /usr/local/src/ngircd /opt/ngircd +WORKDIR /usr/local/src/ngircd +COPY . /usr/local/src/ngircd +RUN chown -R bin /usr/local/src/ngircd +USER bin +RUN ./autogen.sh --prefix=/opt/ngircd \ + --with-gnutls \ + --with-iconv \ + --with-ident \ + --with-pam \ + && make all \ + && make -C src/ngircd check \ + && make install \ + && printf \ + "# ngircd.conf\n\n[Global]\nServerGID=irc\nServerUID=irc\n\n[Options]\nIdent=no\nPAM=no\n\n[SSL]\nCAFile=/etc/ssl/certs/ca-certificates.crt\n" \ + >/opt/ngircd/etc/ngircd.conf \ + && chmod -R a+rX /opt/ngircd + +# Run container + +FROM docker.io/library/debian:stable-slim +LABEL org.opencontainers.image.source=https://github.com/ngircd/ngircd +LABEL org.opencontainers.image.description="Free, portable and lightweight Internet Relay Chat server" +LABEL org.opencontainers.image.licenses=GPL-2.0-or-later +USER root +RUN apt-get -y update \ + && apt-get -y install --no-install-recommends --no-install-suggests \ + ca-certificates \ + catatonit \ + libgnutls30 \ + libident \ + libpam0g \ + libwrap0 \ + zlib1g \ + && apt-get -y clean \ + && rm -rf /var/cache/debconf/*-old /var/lib/apt/lists/* +COPY --from=build /opt/ngircd /opt/ngircd +USER irc +ENTRYPOINT [ "/usr/bin/catatonit", "--", "/opt/ngircd/sbin/ngircd", "--nodaemon" ] +EXPOSE 6667 6697 +HEALTHCHECK --interval=30s --timeout=5s --retries=1 --start-period=5s \ + CMD [ "/usr/bin/grep", "-F", ":1A0B ", "/proc/net/tcp" ] diff --git a/ngircd/contrib/Makefile.am b/ngircd/contrib/Makefile.am new file mode 100644 index 0000000..cd2eb05 --- /dev/null +++ b/ngircd/contrib/Makefile.am @@ -0,0 +1,33 @@ +# +# ngIRCd -- The Next Generation IRC Daemon +# Copyright (c)2001-2024 Alexander Barton (alex@barton.de) and Contributors +# +# 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. +# Please read the file COPYING, README and AUTHORS for more information. +# + +SUBDIRS = Debian + +EXTRA_DIST = README.md \ + de.barton.ngircd.metainfo.xml \ + de.barton.ngircd.plist \ + Dockerfile \ + ngindent.sh \ + ngircd-bsd.sh \ + ngircd-fail2ban.conf \ + ngIRCd-Logo.gif \ + ngircd-redhat.init \ + ngircd.logcheck \ + ngircd.service \ + ngircd.socket \ + ngircd.spec \ + nglog.sh \ + platformtest.sh + +maintainer-clean-local: + rm -f Makefile Makefile.in + +# -eof- diff --git a/ngircd/contrib/README.md b/ngircd/contrib/README.md new file mode 100644 index 0000000..5ab5769 --- /dev/null +++ b/ngircd/contrib/README.md @@ -0,0 +1,40 @@ +# [ngIRCd](https://ngircd.barton.de) - Supplemental Files + +This `contrib/` directory contains the following sub-folders and files: + +- `Debian/` folder: This subfolder contains the _rules_ file and additional + assets for building Debian packages. + +- `de.barton.ngircd.metainfo.xml`: AppStream metadata file. + +- `de.barton.ngircd.plist[.tmpl]`: launchd(8) property list file. + +- `Dockerfile`: Container definition file, for Docker or Podman for example. + More information can be found in the `doc/Container.md` file. + +- `ngindent.sh`: Script to indent the code of ngIRCd in the "standard way". + +- `ngircd-bsd.sh`: Start/stop script for FreeBSD. + +- `ngircd-fail2ban.conf`: fail2ban(1) filter configuration for ngIRCd. + +- `ngircd-redhat.init`: Start/stop script for old(er) RedHat-based + distributions (like CentOS and Fedora), which did _not_ use systemd(8). + +- `ngIRCd-Logo.gif`: The ngIRCd logo as GIF file. + +- `ngircd.logcheck`: Sample rules for logcheck(8) to ignore "normal" log + messages of ngIRCd. + +- `ngircd.service`: systemd(8) service unit configuration file. + +- `ngircd.socket`: systemd(8) socket unit configuration file for "socket + activation". + +- `ngircd.spec`: RPM "spec" file. + +- `nglog.sh`: Script for colorizing the log messages of ngircd(8) according to + their log level. Example: `./src/ngircd/ngircd -n | ./contrib/nglog.sh`. + +- `platformtest.sh`: Build ngIRCd and output a "result line" suitable for + the `doc/Platforms.txt` file. diff --git a/ngircd/contrib/de.barton.ngircd.metainfo.xml b/ngircd/contrib/de.barton.ngircd.metainfo.xml new file mode 100644 index 0000000..d06e378 --- /dev/null +++ b/ngircd/contrib/de.barton.ngircd.metainfo.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8"?> +<component type="service"> + <id>de.barton.ngircd</id> + <name>ngIRCd</name> + <summary>Lightweight Internet Relay Chat server</summary> + <metadata_license>MIT</metadata_license> + <project_license>GPL-2.0-or-later</project_license> + <developer_name>Alexander Barton and Contributors</developer_name> + <update_contact>alex@barton.de</update_contact> + <description> + <p>ngIRCd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL).</p> + <p>The server is quite easy to configure and runs as a single-node server or can be part of a network of ngIRCd servers in a LAN or across the internet. It optionally supports the IPv6 protocol, SSL/TLS-protected client-server and server-server links, the Pluggable Authentication Modules (PAM) system for user authentication, IDENT requests, and character set conversion for legacy clients.</p> + <p>The name ngIRCd stands for next-generation IRC daemon, which is a little bit exaggerated: lightweight Internet Relay Chat server most probably would have been a better name :-)</p> + </description> + <icon type="remote" width="300" height="300">https://ngircd.barton.de/common/ngircd-300x300.png</icon> + <categories> + <category>Network</category> + </categories> + <url type="homepage">https://ngircd.barton.de</url> + <url type="bugtracker">https://ngircd.barton.de/bugtracker</url> + <url type="help">https://ngircd.barton.de/support</url> + <provides> + <binary>ngircd</binary> + </provides> + <launchable type="service">ngircd</launchable> + <releases> + <release version="27" date="2024-04-26" /> + <release version="27~rc1" date="2024-04-13" /> + <release version="26.1" date="2021-01-02" /> + <release version="26" date="2020-06-20" /> + <release version="26~rc2" date="2020-06-11" type="development" /> + <release version="26~rc1" date="2020-05-10" type="development" /> + <release version="25" date="2019-01-23" /> + <release version="25~rc1" date="2018-08-11" type="development" /> + <release version="24" date="2017-01-20" /> + <release version="24~rc1" date="2017-01-07" type="development" /> + <release version="23" date="2015-11-16" /> + <release version="23~rc1" date="2015-09-06" type="development" /> + <release version="22.1" date="2015-04-06" /> + <release version="22" date="2014-10-11" /> + <release version="22~rc1" date="2014-09-29" type="development" /> + <release version="21.1" date="2014-03-25" /> + <release version="21" date="2013-10-30" /> + <release version="21~rc2" date="2013-10-20" type="development" /> + <release version="21~rc1" date="2013-10-05" type="development" /> + <release version="20.3" date="2013-08-23" /> + <release version="20.2" date="2013-02-15" /> + <release version="20.1" date="2013-01-02" /> + <release version="20" date="2012-12-17" /> + <release version="20~rc2" date="2012-12-02" type="development" /> + <release version="20~rc1" date="2012-11-11" type="development" /> + <release version="19.2" date="2012-06-19" /> + <release version="19.2~rc1" date="2012-06-13" type="development" /> + <release version="19.1" date="2012-03-19" /> + <release version="19" date="2012-02-29" /> + <release version="19~rc1" date="2012-02-12" type="development" /> + <release version="18" date="2011-07-10" /> + <release version="18~rc2" date="2011-06-29" type="development" /> + <release version="18~rc1" date="2011-06-27" type="development" /> + <release version="17.1" date="2010-12-19" /> + <release version="17" date="2010-11-07" /> + <release version="17~rc3" date="2010-10-27" type="development" /> + <release version="17~rc2" date="2010-10-25" type="development" /> + <release version="17~rc1" date="2010-10-11" type="development" /> + <release version="16" date="2010-05-02" /> + <release version="16~rc2" date="2010-04-25" type="development" /> + <release version="16~rc1" date="2010-03-25" type="development" /> + <release version="15" date="2009-11-07" /> + <release version="15~rc1" date="2009-10-15" type="development" /> + <release version="14.1" date="2009-05-05" /> + <release version="14" date="2009-04-20" /> + <release version="14~rc1" date="2009-03-29" type="development" /> + <release version="13" date="2008-12-25" /> + <release version="0.12.1" date="2008-07-09" /> + <release version="0.12.0" date="2008-05-13" /> + <release version="0.12.0-pre2" date="2008-04-29" type="development" /> + <release version="0.12.0-pre1" date="2008-04-20" type="development" /> + <release version="0.11.1" date="2008-02-26" /> + <release version="0.11.0" date="2008-01-15" /> + <release version="0.11.0-pre2" date="2008-01-07" type="development" /> + <release version="0.11.0-pre1" date="2008-01-02" type="development" /> + <release version="0.10.4" date="2008-01-07" /> + <release version="0.10.3" date="2007-08-01" /> + <release version="0.10.2" date="2007-06-08" /> + <release version="0.10.2-pre2" date="2007-05-19" type="development" /> + <release version="0.10.2-pre1" date="2007-05-05" type="development" /> + <release version="0.10.1" date="2006-12-17" /> + <release version="0.10.0" date="2006-10-01" /> + <release version="0.10.0-pre2" date="2006-09-09" type="development" /> + <release version="0.10.0-pre1" date="2006-08-02" type="development" /> + <release version="0.9.2" date="2005-10-15" /> + <release version="0.9.1" date="2005-08-03" /> + <release version="0.9.0" date="2005-07-24" /> + <release version="0.9.0-pre1" date="2005-07-09" type="development" /> + <release version="0.8.3" date="2005-02-03" /> + <release version="0.8.2" date="2005-01-26" /> + <release version="0.8.1" date="2004-12-25" /> + <release version="0.8.0" date="2004-06-26" /> + <release version="0.8.0-pre1" date="2004-05-07" type="development" /> + <release version="0.7.7" date="2004-02-05" /> + <release version="0.7.6" date="2003-12-05" /> + <release version="0.7.5" date="2003-11-07" /> + <release version="0.7.1" date="2003-07-18" /> + <release version="0.7.0" date="2003-05-01" /> + <release version="0.7.0-pre2" date="2003-04-27" type="development" /> + <release version="0.7.0-pre1" date="2003-04-22" type="development" /> + <release version="0.6.0" date="2002-12-24" /> + <release version="0.6.0-pre2" date="2002-12-23" type="development" /> + <release version="0.6.0-pre1" date="2002-12-18" type="development" /> + <release version="0.5.4" date="2002-11-24" /> + <release version="0.5.3" date="2002-11-08" /> + <release version="0.5.2" date="2002-10-04" /> + <release version="0.5.1" date="2002-10-03" /> + <release version="0.5.0" date="2002-09-20" /> + <release version="0.5.0-pre2" date="2002-09-17" type="development" /> + <release version="0.5.0-pre1" date="2002-09-16" type="development" /> + <release version="0.4.3" date="2002-06-11" /> + <release version="0.4.2" date="2002-04-29" /> + <release version="0.4.1" date="2002-04-08" /> + <release version="0.4.0" date="2002-04-01" /> + <release version="0.3.0" date="2002-03-02" /> + <release version="0.2.1" date="2002-02-17" /> + <release version="0.2.0" date="2002-02-15" /> + <release version="0.1.0" date="2002-01-29" /> + <release version="0.0.3" date="2002-01-16" /> + <release version="0.0.2" date="2002-01-06" /> + <release version="0.0.1" date="2001-12-31" /> + </releases> +</component> diff --git a/ngircd/contrib/de.barton.ngircd.plist b/ngircd/contrib/de.barton.ngircd.plist new file mode 100644 index 0000000..38754b5 --- /dev/null +++ b/ngircd/contrib/de.barton.ngircd.plist @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Disabled</key> + <true/> + <key>KeepAlive</key> + <true/> + <key>Label</key> + <string>de.barton.ngIRCd</string> + <key>ProgramArguments</key> + <array> + <string>/opt/ngircd/sbin/ngircd</string> + <string>--nodaemon</string> + </array> + <key>RunAtLoad</key> + <true/> + <key>StandardErrorPath</key> + <string>/Library/Logs/ngIRCd.log</string> + <key>StandardOutPath</key> + <string>/Library/Logs/ngIRCd.log</string> +</dict> +</plist> diff --git a/ngircd/contrib/ngIRCd-Logo.gif b/ngircd/contrib/ngIRCd-Logo.gif Binary files differnew file mode 100644 index 0000000..9fc6d14 --- /dev/null +++ b/ngircd/contrib/ngIRCd-Logo.gif diff --git a/ngircd/contrib/ngindent.sh b/ngircd/contrib/ngindent.sh new file mode 100755 index 0000000..57cbf81 --- /dev/null +++ b/ngircd/contrib/ngindent.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# +# ngIRCd -- The Next Generation IRC Daemon +# Copyright (c)2001-2019 Alexander Barton (alex@barton.de) and Contributors +# +# 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. +# Please read the file COPYING, README and AUTHORS for more information. +# +# This script uses GNU indent(1) to format C source code files of ngIRCd. +# Usage: +# - ./contrib/ngindent.sh [<file> [<file> [...]]] +# - cat ./src/ngircd/<c_file> | ./contrib/ngindent.sh + +# Use a coding-style based on "Kernighan & Ritchie" (-kr): +INDENTARGS="-kr + -bad + -c3 + -cd41 + -i8 + -l80 + -ncs + -psl + -sob + -ss + -ts8 + -blf + -il0 +" + +# check if indent(1) is available +command -v indent >/dev/null 2>&1 && INDENT="indent" +command -v gindent >/dev/null 2>&1 && INDENT="gindent" +command -v gnuindent >/dev/null 2>&1 && INDENT="gnuindent" + +if [ -z "$INDENT" ]; then + echo "Error: GNU \"indent\" not found!" + exit 1 +fi + +# shellcheck disable=SC2086 +$INDENT -v $INDENTARGS "$@" + +# -eof- diff --git a/ngircd/contrib/ngircd-bsd.sh b/ngircd/contrib/ngircd-bsd.sh new file mode 100755 index 0000000..e085646 --- /dev/null +++ b/ngircd/contrib/ngircd-bsd.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +# PROVIDE: ngircd +# REQUIRE: NETWORKING SERVERS +# BEFORE: DAEMON +# KEYWORD: FreeBSD shutdown + +# Add the following line to /etc/rc.conf to enable `ngircd': +# +#ngircd_enable="YES" +# + +. "/etc/rc.subr" + +name="ngircd" +rcvar=`set_rcvar` + +command="/usr/local/sbin/ngircd" +command_args="" + +load_rc_config "$name" +: ${ngircd_enable="NO"} +: ${ngircd_flags=""} + +required_files="/usr/local/etc/$name.conf" +pidfile="${ngircd_pidfile:-/var/run/${name}/${name}.pid}" + +if [ ! x"${ngircd_chrootdir}" = x ];then + # Mount a devfs in the chroot directory if needed + if [ ! -c ${ngircd_chrootdir}/dev/random \ + -o ! -c ${ngircd_chrootdir}/dev/null ]; then + umount ${ngircd_chrootdir}/dev 2>/dev/null + mount_devfs devfs ${ngircd_chrootdir}/dev + fi + + devfs -m ${ngircd_chrootdir}/dev rule apply hide + devfs -m ${ngircd_chrootdir}/dev rule apply path null unhide + devfs -m ${ngircd_chrootdir}/dev rule apply path random unhide + + # Copy local timezone information if it is not up to date. + if [ -f /etc/localtime ]; then + cmp -s /etc/localtime "${named_chrootdir}/etc/localtime" || \ + cp -p /etc/localtime "${named_chrootdir}/etc/localtime" + fi + + pidfile="${ngircd_chrootdir}${pidfile}" +fi + +run_rc_command "$1" + +# -eof- diff --git a/ngircd/contrib/ngircd-fail2ban.conf b/ngircd/contrib/ngircd-fail2ban.conf new file mode 100644 index 0000000..c9903e0 --- /dev/null +++ b/ngircd/contrib/ngircd-fail2ban.conf @@ -0,0 +1,25 @@ +# Fail2ban filter for ngIRCd +# +# Put into /etc/fail2ban/filter.d/ngircd.conf and enable in your jail.local +# configuration like this: +# +# [ngircd] +# enabled = true +# backend = systemd +# + +[INCLUDES] + +before = common.conf + +[DEFAULT] + +_daemon = ngircd + +[Definition] + +failregex = ^%(__prefix_line)sRefused connection from <ADDR> on socket \d+: + +[Init] + +journalmatch = _SYSTEMD_UNIT=ngircd.service + _COMM=ngircd diff --git a/ngircd/contrib/ngircd-redhat.init b/ngircd/contrib/ngircd-redhat.init new file mode 100755 index 0000000..9f133bd --- /dev/null +++ b/ngircd/contrib/ngircd-redhat.init @@ -0,0 +1,119 @@ +#!/bin/sh +# +# ngIRCd start and stop script for RedHat based distributions. +# Written by Naoya Nakazawa <naoya.n@gmail.com> for CentOS 5.2, 2009. +# +# chkconfig: 2345 01 +# description: ngIRCd is an Open Source server for \ +# the Internet Relay Chat (IRC), which \ +# is developed and published under \ +# the terms of the GNU General Public +# Licence (URL: http://www.gnu.org/licenses/gpl.html). \ +# ngIRCd means "next generation IRC daemon", \ +# it's written from scratch and not deduced from the \ +# "grandfather of IRC daemons", the daemon of the IRCNet. +# +# processname: /usr/sbin/ngircd +# config: /etc/ngircd +# pidfile: /var/run/ngircd.pid + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/ngircd +NAME=ngIRCd +BASENAME=ngircd +CONF=/etc/$BASENAME.conf +DESC="IRC daemon" +PARAMS="-f $CONF" + +# Source function library. +. /etc/init.d/functions + +# Get config. +test -f /etc/sysconfig/network && . /etc/sysconfig/network +test -f /etc/sysconfig/makuosan && . /etc/sysconfig/makuosan + +# Check that networking is up. +[ "${NETWORKING}" = "yes" ] || exit 0 + +[ -x $DAEMON ] || exit 1 +[ -f $CONF ] || exit 2 + +RETVAL=0 + +start(){ + echo -n $"Starting $NAME: " + daemon $DAEMON $PARAMS + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$BASENAME + echo + return $RETVAL +} + +stop(){ + echo -n $"Stopping $NAME: " + killproc $DAEMON + RETVAL=$? + if [ $RETVAL -eq 0 ] ; then + rm -f /var/lock/subsys/$BASENAME + fi + echo + return $RETVAL +} + +reload(){ + echo -n $"Reloading configuration: " + killproc $DAEMON -HUP + RETVAL=$? + echo + return $RETVAL +} + +restart(){ + stop + start +} + +condrestart(){ + [ -e /var/lock/subsys/$BASENAME ] && restart + return 0 +} + +check_config(){ + $DAEMON $PARAMS --configtest >/dev/null 2>&1 + [ $? -eq 0 ] && return 0 + + echo -n $"Configuration of $NAME is not valid, won't (re)start!" + echo -n $"Run \"$DAEMON --configtest\" and fix it up ..." + exit 6 +} + +# See how we were called. +case "$1" in + start) + check_config + start + ;; + stop) + stop + ;; + status) + status $NAME + ;; + restart) + restart + ;; + reload) + reload + ;; + condrestart) + condrestart + ;; + test) + check_config + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|test}" + RETVAL=1 +esac + +exit $RETVAL diff --git a/ngircd/contrib/ngircd.logcheck b/ngircd/contrib/ngircd.logcheck new file mode 100644 index 0000000..598ed17 --- /dev/null +++ b/ngircd/contrib/ngircd.logcheck @@ -0,0 +1,54 @@ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: ".*" added ".*" to G-Line list: ".*" \([0-9]+ seconds\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: (GnuTLS|OpenSSL) .* initialized\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Accepted connection [0-9]+ from ".*:[0-9]+" on socket [0-9]+\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Address mismatch: +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Can't create pre-defined channel ".*": name already in use\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Can't resolve( address)? ".*": (Name or service not known|No address associated with hostname|Temporary failure in name resolution)( \[.*\]\.)?$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Client( ".*")? unregistered \(connection [0-9]+\): (Can't connect|Client closed connection|Got QUIT command|Read error|Server configuration already in use|SSL accept error, closing socket|Timeout|Write error)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Connection [0-9]+ \(socket [0-9]+\) with ".*:[0-9]+" established\. Now logging in \.\.\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Connection [0-9]+ with ".*:[0-9]+" closed \(in: .*, out: .*\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Connection [0-9]+: initialized TLSv?1\.[0123] using cipher .*\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Created pre-defined channel ".*", mode ".*" \((channel key set|no channel key), user limit [0-9]+\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Deleted ".*" \(".*"\) from G-Line list \(expired\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Enabled link compression \(zlib\) on connection [0-9]+\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Establishing connection for ".*" to ".*:[0-9]+" \(.*\), socket [0-9]+ \.\.\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: File descriptor limit is [0-9]+; "MaxConnections" is (not set|set to [0-9]+)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Got (valid server|unchecked peer) certificate: .*\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Got signal "(Hangup|Terminated)" \.\.\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Got valid OPER for ".*" from ".*", user is an IRC operator now\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: IDENT lookup for connection [0-9]+: (no result|".*")\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: IO subsystem: epoll \(hint size 100, initial maxfd 100, masterfd [0-9]+\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Not running with changed root directory\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Now listening on .*:[0-9]+ \(socket [0-9]+\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Peer did not present a certificate\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Peer on connection [0-9]+ announces itself as .* using protocol .* \(flags: ".*"\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Possible forgery: .* resolved to ".*", which (has no IP address|points to a different address)!$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Preparing to establish a new server link for ".*" \.\.\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Re-reading configuration NOW!$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Re-reading of configuration done\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Read error on connection [0-9]+ \(socket [0-9]+\): Connection reset by peer!$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Running as user .*, group .*, with PID [0-9]+\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: SSL connection on socket [0-9]+ failed!$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: SSL error, client disconnected \[in .*\(\)\]!$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: SSL error: (Connection reset by peer|Broken pipe) \[in .*\]!$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: SSL protocol error: (ConnSSL_Read|ConnSSL_Write|SSL_accept) \(.*\)$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Server ".*" \(on ".*"\) ready\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Server ".*" registered \(connection [0-9]+, 1 hop - direct link\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Server ".*" registered \(via .*, connected to .*, [0-9]+ hops\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Server ".*" unregistered \(connection [0-9]+\): Ping timeout: [0-9]+ seconds\. +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Server ".*" unregistered( \(connection [0-9]+\))?: .* \(Server going down\)\. +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Server ".*" unregistered: .* .*\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Server \".*\" \(on ".*"\) ready\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Server going down NOW!$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Shutting down all listening sockets \([0-9]+ total\) \.\.\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Shutting down connection [0-9]+ \(Can't connect|Client closed connection|Closing connection: .* \(Server going down\)|Got QUIT command|ID ".*" already registered|Ping timeout: [0-9]+ seconds|Read error|SSL accept error, closing socket|Server configuration already in use|Server going down|Timeout|Write error|".*" \((G-Line|SQUIT from .*)\)\) with ".*:[0-9]+" \.\.\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Synchronization with ".*" done \(connection [0-9]+\): [0-9]+ seconds? \[[0-9]+ users, [0-9]+ channels\]\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: User ".*!.*@.*" changed nick \(connection [0-9]+\): ".*" -> ".*"\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: User ".*!.*@.*" registered \(connection [0-9]+\)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: User ".*!.*@.*" unregistered \(connection [0-9]+\): (Client closed connection|Got QUIT command|Ping timeout: [0-9]+ seconds|Read error|Server going down)\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Using (default|specified) configuration file ".*" \.\.\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: Write error on connection [0-9]+ \(socket [0-9]+\): (Broken pipe|Connection reset by peer)!$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: ngIRCd [0-9].* starting \.\.\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: ngIRCd done, served [0-9]+ connections?\.$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: warning: /etc/hosts\.allow, line [0-9]+: (can't verify hostname|host name/address mismatch): getaddrinfo\(.*, AF_INET\) failed$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ngircd\[[0-9]+\]: warning: can't get client address: Connection reset by peer$ diff --git a/ngircd/contrib/ngircd.service b/ngircd/contrib/ngircd.service new file mode 100644 index 0000000..311bc0d --- /dev/null +++ b/ngircd/contrib/ngircd.service @@ -0,0 +1,48 @@ +# ngIRCd systemd service unit. +# See systemd(1), systemd.unit(5), systemd.service(5), systemd.exec(5). + +[Unit] +Description=Next Generation IRC Daemon +Documentation=man:ngircd(8) man:ngircd.conf(5) https://ngircd.barton.de +After=network.target +Wants=anope.service atheme.service irc-services.service +Wants=bopm.service hopm.service +Before=anope.service atheme.service irc-services.service +Before=bopm.service hopm.service + +[Service] +Type=notify +User=irc +Group=irc +# Settings & limits: +CapabilityBoundingSet=CAP_SYS_CHROOT CAP_NET_BIND_SERVICE +MemoryDenyWriteExecute=yes +NoNewPrivileges=yes +PrivateDevices=yes +PrivateTmp=yes +ProtectControlGroups=yes +ProtectHome=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +ProtectSystem=full +RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX +RestrictRealtime=yes +RuntimeDirectory=ircd +RuntimeDirectoryMode=750 +StandardError=journal +StandardOutput=journal +# Try to load "default files" from any Debian package variant to keep this +# unit generic. +EnvironmentFile=-/etc/default/ngircd +EnvironmentFile=-/etc/default/ngircd-full +EnvironmentFile=-/etc/default/ngircd-full-dbg +# Start ngIRCd. Note: systemd doesn't allow to use $DAEMON here! +ExecStart=/usr/sbin/ngircd --nodaemon --syslog $PARAMS +ExecReload=/bin/kill -HUP $MAINPID +# Error handling: +# ngIRCd tries to "ping" the service manager every 3 seconds. +WatchdogSec=10 +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/ngircd/contrib/ngircd.socket b/ngircd/contrib/ngircd.socket new file mode 100644 index 0000000..1aee546 --- /dev/null +++ b/ngircd/contrib/ngircd.socket @@ -0,0 +1,12 @@ +[Unit] +Description=Next Generation IRC Daemon (Socket) +Documentation=man:ngircd(8) man:ngircd.conf(5) + +[Socket] +BindIPv6Only=ipv6-only +ListenStream=0.0.0.0:6667 +#ListenStream=[::]:6667 +IPTOS=low-delay + +[Install] +WantedBy=sockets.target diff --git a/ngircd/contrib/ngircd.spec b/ngircd/contrib/ngircd.spec new file mode 100644 index 0000000..3d4eefc --- /dev/null +++ b/ngircd/contrib/ngircd.spec @@ -0,0 +1,57 @@ +%define name ngircd +%define version 27 +%define release 1 +%define prefix %{_prefix} + +Summary: A lightweight daemon for the Internet Relay Chat (IRC) +Name: %{name} +Version: %{version} +Release: %{release} +License: GPLv2+ +Group: System Environment/Daemons +URL: http://ngircd.barton.de/ +Source: %{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: zlib-devel, openssl-devel + +%description +ngIRCd is a free, portable and lightweight Internet Relay Chat server for small +or private networks, developed under the GNU General Public License (GPL). + +The server is quite easy to configure, can handle dynamic IP addresses, and +optionally supports IDENT, IPv6 connections, SSL-protected links, and PAM for +user authentication as well as character set conversion for legacy clients. The +server has been written from scratch and is not based on the forefather, the +daemon of IRCNet. + + +%prep +%setup -q +%build +%configure \ + --with-zlib \ + --with-openssl + +make %{?_smp_mflags} + +%install +[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf "$RPM_BUILD_ROOT" +%makeinstall +( + cd "$RPM_BUILD_ROOT" + ( cd usr/sbin; mv *-ngircd ngircd ) + ( cd usr/share/man/man5; mv *-ngircd.conf.5 ngircd.conf.5 ) + ( cd usr/share/man/man8; mv *-ngircd.8 ngircd.8 ) + rm -fr usr/share/doc/ngircd +) + +%clean +[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf "$RPM_BUILD_ROOT" + +%files +%defattr(755,root,root) +%doc AUTHORS.md COPYING ChangeLog INSTALL.md NEWS README.md doc/* +%config(noreplace) /etc +%{_prefix}/sbin +%{_mandir}/man5/ngircd.conf* +%{_mandir}/man8/ngircd.8* diff --git a/ngircd/contrib/nglog.sh b/ngircd/contrib/nglog.sh new file mode 100755 index 0000000..cb4eb3e --- /dev/null +++ b/ngircd/contrib/nglog.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# +# ngIRCd -- The Next Generation IRC Daemon +# Copyright (c)2001-2020 Alexander Barton (alex@barton.de) and Contributors +# +# 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. +# Please read the file COPYING, README and AUTHORS for more information. +# +# This script parses the log output of ngircd(8), and colorizes the messages +# according to their log level. Example usage: +# ./src/ngircd/ngircd -f $PWD/doc/sample-ngircd.conf -np | ./contrib/nglog.sh +# + +gawk ' + /^\[[[:digit:]]+:0 / {print "\033[1;95m" $0 "\033[0m"} + /^\[[[:digit:]]+:1 / {print "\033[1;35m" $0 "\033[0m"} + /^\[[[:digit:]]+:2 / {print "\033[1;91m" $0 "\033[0m"} + /^\[[[:digit:]]+:3 / {print "\033[1;31m" $0 "\033[0m"} + /^\[[[:digit:]]+:4 / {print "\033[1;33m" $0 "\033[0m"} + /^\[[[:digit:]]+:5 / {print "\033[1m" $0 "\033[0m"} + /^\[[[:digit:]]+:6 / {print $0} + /^\[[[:digit:]]+:7 / {print "\033[90m" $0 "\033[0m"} +' </dev/stdin & + +wait diff --git a/ngircd/contrib/platformtest.sh b/ngircd/contrib/platformtest.sh new file mode 100755 index 0000000..e5d577d --- /dev/null +++ b/ngircd/contrib/platformtest.sh @@ -0,0 +1,257 @@ +#!/bin/sh +# +# ngIRCd -- The Next Generation IRC Daemon +# Copyright (c)2001-2016 Alexander Barton (alex@barton.de) and Contributors +# +# 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. +# Please read the file COPYING, README and AUTHORS for more information. +# + +# This script analyzes the build process of ngIRCd and generates output +# suitable for inclusion in doc/Platforms.txt -- please send reports +# to the ngIRCd mailing list: <ngircd@lists.barton.de>. + +NAME=$(basename "$0") +VERBOSE= +CLEAN=1 + +PLATFORM= +COMPILER="unknown" +VERSION="unknown" +DATE=$(date "+%y-%m-%d") +COMMENT= + +R_CONFIGURE= +R_MAKE= +R_CHECK= +R_CHECK_Y="?" +R_RUN= + +SRC_D=$(dirname "$0") +MY_D="$PWD" + +[ -n "$MAKE" ] || MAKE="make" +export MAKE CC + +while [ $# -gt 0 ]; do + case "$1" in + "-v") + VERBOSE=1 + ;; + "-x") + CLEAN= + ;; + *) + echo "Usage: $NAME [-v] [-x]" + echo + echo " -v Verbose output" + echo " -x Don't regenerate build system, even when possible" + echo + exit 2 + esac + shift +done + +for cmd in telnet expect; do + command -v "$cmd" >/dev/null 2>&1 \ + || echo "$NAME: WARNING: $cmd(1) not found, \"make check\" won't run all tests!" +done + +echo "$NAME: Checking ngIRCd base source directory ..." +grep "ngIRCd" "$SRC_D/ChangeLog" >/dev/null 2>&1 +if [ $? -ne 0 ]; then + grep "ngIRCd" "$SRC_D/../ChangeLog" >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "$NAME: ngIRCd base source directory not found!?" + exit 1 + fi + SRC_D="$SRC_D/.." +fi +echo "$NAME: - source directory: $SRC_D" +echo "$NAME: - working directory: $MY_D" + +echo "$NAME: Checking for GIT tree ..." +if [ -d "$SRC_D/.git" ]; then + echo "$NAME: Checking for \"git\" command ..." + git version >/dev/null 2>&1 + if [ $? -eq 0 ] && [ -n "$CLEAN" ]; then + echo "$NAME: Running \"git clean\" ..." + cd "$SRC_D" || exit 1 + if [ -n "$VERBOSE" ]; then + git clean -dxf + else + git clean -dxf >/dev/null + fi + cd "$MY_D" || exit 1 + fi +fi + +echo "$NAME: Checking for \"$SRC_D/configure\" script ..." +if [ ! -r "$SRC_D/configure" ]; then + echo "$NAME: Running \"$SRC_D/autogen.sh\" ..." + cd "$SRC_D" || exit 1 + if [ -n "$VERBOSE" ]; then + ./autogen.sh + else + ./autogen.sh >/dev/null + fi + if [ $? -ne 0 ]; then + echo "$NAME: \"$SRC_D/autogen.sh\" script failed, aborting!" + exit 1 + fi + cd "$MY_D" || exit 1 +fi + +if [ -r "$SRC_D/configure" ]; then + echo "$NAME: Running \"$SRC_D/configure\" script ..." + if [ -n "$VERBOSE" ]; then + "$SRC_D/configure" -C + else + "$SRC_D/configure" -C >/dev/null + fi + if [ $? -eq 0 ] && [ -r ./Makefile ]; then + R_CONFIGURE=1 + rm -f "src/ngircd/ngircd" + echo "$NAME: Running \"$MAKE\" ..." + if [ -n "$VERBOSE" ]; then + "$MAKE" + else + "$MAKE" >/dev/null + fi + if [ $? -eq 0 ] && [ -x src/ngircd/ngircd ]; then + R_MAKE=1 + echo "$NAME: Running \"$MAKE check\" ..." + if [ -n "$VERBOSE" ]; then + "$MAKE" check + else + "$MAKE" check >/dev/null + fi + if [ $? -eq 0 ]; then + R_CHECK=1 + R_RUN=$R_CHECK + [ -r ./src/testsuite/tests-skipped.lst ] \ + && R_CHECK_Y="y" || R_CHECK_Y="Y" + else + ./src/ngircd/ngircd --help 2>/dev/null \ + | grep "^ngIRCd" >/dev/null + [ $? -eq 0 ] && R_RUN=1 + fi + fi + fi +fi + +# Get target platform information +if [ -r "src/config.h" ]; then + CPU=$(grep "HOST_CPU" "src/config.h" | cut -d'"' -f2) + OS=$(grep "HOST_OS" "src/config.h" | cut -d'"' -f2) + VENDOR=$(grep "HOST_VENDOR" "src/config.h" | cut -d'"' -f2) + PLATFORM="$CPU/$VENDOR/$OS" +fi +if [ -z "$PLATFORM" ]; then + PLATFORM="$(uname 2>/dev/null) $(uname -r 2>/dev/null), $(uname -m 2>/dev/null)" +fi + +# Get compiler information +if [ -r "Makefile" ]; then + CC=$(grep "^CC = " Makefile | cut -d' ' -f3) + $CC --version 2>&1 | grep -i "GCC" >/dev/null + if [ $? -eq 0 ]; then + # GCC, or compiler that mimics GCC + $CC --version 2>&1 | grep -i "Open64" >/dev/null + if [ $? -eq 0 ]; then + COMPILER="Open64" + else + COMPILER=$($CC --version | head -1 \ + | cut -d')' -f2 | cut -d' ' -f2) + COMPILER="gcc $COMPILER" + fi + else + # Non-GCC compiler + $CC --version 2>&1 | grep -i "clang" >/dev/null + if [ $? -eq 0 ]; then + COMPILER=$($CC --version 2>/dev/null | head -1 \ + | cut -d'(' -f1 | cut -d'-' -f1 \ + | sed -e 's/version //g; s/^\([A-Z]\)[A-Za-z]* clang/\1-clang/g; s/LLVM /clang /g') + fi + $CC -version 2>&1 | grep -i "tcc" >/dev/null + if [ $? -eq 0 ]; then + COMPILER=$($CC -version 2>/dev/null | head -1 \ + | cut -d'(' -f1 | sed -e 's/version //g') + fi + if [ "$COMPILER" = "unknown" ]; then + v="$($CC --version 2>/dev/null | head -1)" + [ -z "$v" ] && v="$($CC -version 2>/dev/null | head -1)" + [ -n "$v" ] && COMPILER="$v" + fi + fi +fi + +# Get ngIRCd version information +eval "$(grep "^VERSION = " Makefile | sed -e 's/ //g')" +case "$VERSION" in + *~*-*) + VERSION=$(echo "$VERSION" | cut -b1-10) + ;; +esac +[ -n "$VERSION" ] || VERSION="unknown" + +# Get IO interface information +if [ "$OS" = "linux-gnu" ]; then + COMMENT="1" +else + grep "^#define HAVE_SYS_DEVPOLL_H 1" src/config.h >/dev/null 2>&1 + [ $? -eq 0 ] && COMMENT="4" + grep "^#define HAVE_EPOLL_CREATE 1" src/config.h >/dev/null 2>&1 + [ $? -eq 0 ] && COMMENT="5" + grep "^#define HAVE_KQUEUE 1" src/config.h >/dev/null 2>&1 + [ $? -eq 0 ] && COMMENT="3" +fi + +[ -n "$R_CONFIGURE" ] && C="Y" || C="N" +[ -n "$R_MAKE" ] && M="Y" || M="N" +[ -n "$R_CHECK" ] && T="$R_CHECK_Y" || T="N" +if [ -n "$R_RUN" ]; then + # Mark "runs" with "Y" only when the test suite succeeded: + [ "$T" = "N" ] && R="?" || R="Y" +else + R="N" +fi +[ -n "$COMMENT" ] && COMMENT=" $COMMENT" + +echo +echo " the executable works (\"runs\") as expected --+" +echo " tests run successfully (\"make check\") --+ |" +echo " ngIRCd compiles (\"make\") --+ | |" +echo " ./configure works --+ | | |" +echo " | | | |" +echo "Platform Compiler ngIRCd Date Tester C M T R *" +echo "--------------------------- ------------ ---------- -------- -------- - - - - -" +command -v printf >/dev/null 2>&1 +if [ $? -eq 0 ]; then + printf "%-27s %-12s %-10s %s %-8s %s %s %s %s%s\n" \ + "$PLATFORM" "$COMPILER" "$VERSION" "$DATE" "$LOGNAME" \ + "$C" "$M" "$T" "$R" "$COMMENT" +else + echo "$PLATFORM $COMPILER $VERSION $DATE $LOGNAME" \ + "$C" "$M" "$T" "$R" "$COMMENT" +fi +echo + +double_check() { + echo "Please double check that the ngIRCd daemon starts up, runs and handles IRC" + echo "connections successfully!" +} + +if [ "$R_CHECK_Y" = "y" ]; then + echo "WARNING: Some tests have been skipped!" + double_check + echo +fi +if [ "$R" = "?" ]; then + echo "WARNING: The resulting binary passed simple tests, but the test suite failed!" + double_check + echo +fi |
