From: Alexander Barton Date: Tue, 26 Oct 2010 22:50:37 +0000 (+0200) Subject: Updated documentation for upcoming release 17 X-Git-Url: https://arthur.barton.de/gitweb/?a=commitdiff_plain;ds=sidebyside;h=30469b16675f8f41f14c2f0d21d22fbc708b9cf3;hp=c89c1be87fec71be00b72c14c7a47e17e0220b22;p=ngircd-web.git Updated documentation for upcoming release 17 --- diff --git a/doc/Bopm.txt b/doc/Bopm.txt new file mode 100644 index 0000000..bd14450 --- /dev/null +++ b/doc/Bopm.txt @@ -0,0 +1,53 @@ + + ngIRCd - Next Generation IRC Server + + (c)2001-2010 Alexander Barton, + alex@barton.de, http://www.barton.de/ + + ngIRCd is free software and published under the + terms of the GNU General Public License. + + -- BOPM.txt -- + + +I. Introduction +~~~~~~~~~~~~~~~~ + +Citing : "BOPM is an open source open proxy +monitor, designed for use with hybrid-based ircds, although it can be used +with slight modification on any server which has the ability to show connects +to opers and that supports KLINEs." + +And starting with Release 17, ngIRCd supports all required log messages that +BOPM requires to be useful. + +II. Installation +~~~~~~~~~~~~~~~~~ + +Install BOPM as usual, please see the BOPM documentation for details. +Afterwards adjust the following configuration parameters that are important +for ngIRCd: + +a) BOPM "IRC" section: + + 1) Set "server" and "port" accordingly, + + 2) adjust the "oper" line to match an [Operator] block in ngircd.conf, + + 3) change "mode" to "+ci" or "+c". + + 4) Set "connregex" to the following string, everything in one line(!): + "\\*\\*\\* Notice -- Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9\\.]+)\\].*"; + and comment all the other "connregex" examples (prepend a "#" character). + + 5) Set "kline" to "KILL %n :Open proxy found on your host!"; for example, + and comment all the other "kline" examples. + +b) BOPM "scanner" section: + + Make sure you configure a valid "target_ip" and "target_port" for the + configured scanners to test. And please note that you CAN'T USE the port + of ngIRCd, because ngIRCd doesn't send any banner message by default! + + So you need a service what sends a banner, so for example POP3, SMTP, + IMAP, or SSH daemons should work ... diff --git a/doc/ChangeLog b/doc/ChangeLog index d40a2be..07e77a9 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -10,6 +10,72 @@ -- ChangeLog -- +ngIRCd Release 17 + + ngIRCd 17~rc2 (2010-10-25) + - ZeroConf: include header files missing since commit a988bbc86a. + - Generate ngIRCd version number from GIT tag. + - Make sourcecode compatible with ansi2knr again. This allows to compile + ngIRCd using a pre-ANSI K&R C compiler again. + - ./configure: check if C compiler can compile ISO Standard C. + - ./configure: check support for C prototypes again. + - Don't use PARAMS() macro for function implementations. + - Added m68k/apple/aux3.0.1 (gcc 2.7.2) to doc/Platforms.txt. + - Only try to set FD_CLOEXEC if this flag is defined. + - Only use "__attribute__ ((unused))" if GCC >=2.8 is used. + - doc/Makefile.am: don't set docdir, automake handles it already. + + ngIRCd 17~rc1 (2010-10-11) + - New configuration option "NoZeroConf" to disable service registration at + runtime even if ngIRCd is compiled with support for ZeroConf (e.g. using + Howl, Avahi or on Mac OS X). + - New configuration option "SyslogFacility" to define the syslog "facility" + (the "target"), to which ngIRCd should send its log messages. + Possible values are system dependant, but most probably "auth", "daemon", + "user" and "local1" through "local7" are possible values; see syslog(3). + Default is "local5" for historical reasons. + - Dump the "internal server state" (configured servers, established + connections and known clients) to the console or syslog when receiving + the SIGUSR2 signal and debug mode is enabled. + - Enable the daemon to disable and enable "debug mode" on runtime using + signal SIGUSR1, when debug code is compiled in, not only on startup + using the command line parameters. + - Signal handler: added new 'delayed' signal handlers, including fallback + to deprecated sysv API. And removed global NGIRCd_SignalRehash variable. + - IO: add io_cloexec() to set close-on-exec flag. + - ng_ipaddr.h: include required assert.h header. + - Conn_SyncServerStruct(): test all connections; and work case insensitive + - configure script: correctly indent IPv6 yes/no summary output. + - Don't reset My_Connections[Idx].lastping when reading data, so the + client lag debug-output is working again. + - Implement user mode "x": hostname cloaking (closes: #102). + - Make configure switch "--docdir" work (closes: #108). + - Reformat and update FAQ.txt a little bit. + - INSTALL: mention SSL, IPv6, and changed handling of MotdFile. + - Change MOTD file handling: ngIRCd now caches the contens of the MOTD + file, so the daemon now requires a HUP signal or REHASH command to + re-read the MOTD file when its content changed. + - Startup: open /dev/null before chroot'ing the daemon. + - Allow IRC ops to change channel modes even without OperServerMode set. + - Allow IRC operators to use MODE command on any channel (closes: #100). + - Added mailmap file for git-[short]log and git-blame. + - Authenticated users should be registered without the "~" mark. + - Set NoPAM=yes in configuration files used for the testsuite. + - New configuration option "NoPAM" to disable PAM. + - Implement asynchronous user authentication using PAM, please see the + file doc/PAM.txt for details. + - Resolver: Implement signal handler and catch TERM signals. + - Don't set a penalty time when doing DNS lookups. + - Add some documentation for using BOPM with ngIRCd, see doc/Bopm.txt. + - Implement user mode "c": receive connect/disconnect NOTICEs. Note that + this new mode requires the user to be an IRC operator. + - ngircd.init: require "$network" and "$remote_fs" when stopping ngircd. + - Show SSL status in WHOIS output, numeric 275. + - Include correct header files when testing for arpa/inet.h (Closes: #105). + - Don't access already freed memory in IRC_KILL(). + - Fix "beeing" typo ... + - SSL/TLS: fix bogus "socket closed" error message. + ngIRCd Release 16 (2010-05-02) - doc/SSL: remove line continuation marker diff --git a/doc/FAQ.txt b/doc/FAQ.txt index bf3628c..b7a1c94 100644 --- a/doc/FAQ.txt +++ b/doc/FAQ.txt @@ -1,7 +1,7 @@ ngIRCd - Next Generation IRC Server - (c)2001-2003 by Alexander Barton, + (c)2001-2010 by Alexander Barton, alex@barton.de, http://www.barton.de/ ngIRCd is free software and published under the @@ -12,9 +12,11 @@ I. General ~~~~~~~~~~ + Q: Is it possible to link the ngIRCd with non-ngIRCd servers? A: Yes. ngIRCd is compatible to the original ircd used by IRCNet. Actually - this is being tested with version 2.10.3p3. + this is being tested with version 2.10.3p3. Please note that newer + versions (2.11.x) aren't compatible any more! Q: Is there a homepage with further information and downloads? A: Yes. Please visit . @@ -26,6 +28,7 @@ A: ngIRCd offers several benefits: no problems with dynamic IPs, easy to II. Compilation ~~~~~~~~~~~~~~~ + Q: I did a "CVS checkout" but can't execute ./configure because the script is missing in the generated directory!? A: When using development versions via CVS, the configure script as well as @@ -55,27 +58,33 @@ III. Runtime ~~~~~~~~~~~~ Q: Where is the log file located? -A: ngIRCd does not write its own log file. Instead, ngIRCd uses - syslog(3). Check the files in /var/log/ and/or consult the - documentation for your system logger daemon. +A: ngIRCd does not write its own log file. Instead, ngIRCd uses syslog(3). + Check the files in /var/log/ and/or consult the documentation for your + system logger daemon. + Q: I cannot connect to remote peers when I use the chroot option, the following is logged: "Can't resolve example.com: unknown error!". A: On Linux/glibc with chroot enabled you need to put some libraries inside the chroot as well, notably libnss_dns; maybe others. Unfortunately, even - linking ngircd statically does not help this. The only known workaround + linking ngIRCd statically does not help this. The only known workaround is to either disable chroot support or to link against dietlibc instead of glibc. (tnx to Sebastian Siewior) + Q: I have added an [Oper] section, how do i log on as IRC operator? A: You can use the /OPER command in your IRC client to become an IRC operator. ngIRCd will also log all OPER requests (using syslog), if OPER fails you can look there to determine why it did not work (bad password, unauthorized host mask, etc.) + Q: I am an IRC operator, but MODE doesn't work! -A: You need to set 'OperCanUseMode = yes' in ngircd.conf to enable MODE for IRC - operators. +A: You need to set 'OperCanUseMode = yes' in ngircd.conf, then IRC operators + can use the MODE command for changing modes even when they are not joined + to the specific channel. + IV. Bugs!? ~~~~~~~~~~ + Q: Is there a list of known bugs and desired feature enhancements? A: Yes. Have a look at the bug tracking system (Bugzilla) for ngIRCd located at . There you can file bug @@ -85,6 +94,3 @@ Q: What should I do if I found a bug? A: Please file a bug report at ! The author of the particular component will be notified automagically :-) - --- -$Id: FAQ.txt,v 1.12 2008/01/02 22:47:58 alex Exp $ diff --git a/doc/HowToRelease.txt b/doc/HowToRelease.txt new file mode 100644 index 0000000..d4d82bc --- /dev/null +++ b/doc/HowToRelease.txt @@ -0,0 +1,77 @@ + + ngIRCd - Next Generation IRC Server + + (c)2001-2010 Alexander Barton, + alex@barton.de, http://www.barton.de/ + + ngIRCd is free software and published under the + terms of the GNU General Public License. + + -- HowToRelease.txt -- + + +I. Introduction +~~~~~~~~~~~~~~~ + +Creating a new ngIRCd release requires a few steps to follow: the source +tree must be in a releasable state (be up to date, include all required +patches, be tested on as many platforms as possible), a name for the new +release must be chosen, and all the files describing the release must be +updated accordingly. + +Since ngIRCd release 13 (2009-12-25) we use "simple" release numbers for +major releases (e.g. "13", "17", "42", ...) introducing new features and +sub-releases for bug fixes only (e.g. "14.1", "22.3", ...). + +When creating pre-releases or release candidates, please use the tilde ("~") +character to separate the "postfix" in the release number (e.g. "17~rc2" +or "123.4~rc6"). + +The release/version number of a build is automatically generated using the +GIT "describe" command, see git-describe(1). Therefore it is required that +a new release is tagged in the GIT tree and that the configure script is +up-to-date (e.g. using ./autogen.sh) before generating the archives! + + +II. How to prepare a new ngIRCd release? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +a) Make sure the source tree is in a releasable state ;-) + +b) Make sure you have working versions of GNU autoconf and GNU automake + installed on the system you use for generating the release: + as of October 2010 we are using GNU autoconf 2.61 and GNU automake 1.10.1 + which seem to work just fine. + +c) Update the files describing the new release: + - ChangeLog + - NEWS + +d) Update the version numbers in the following files: + - contrib/ngircd.spec + +e) Generate a new Debian change log entry in the following file, e.g. using + the Debian "dch" tool of the "devscripts" package: + - contrib/Debian/changelog + +f) Commit the above changes to GIT: "git add", "git commit" + +g) Create a new signed GIT tag for the new release: "git tag -s". + Please note that we don't use the tilde ("~") here, instead use a simple + hyphen ("-") as delimiter: e.g. "rel-16" "rel-17-rc1", "rel-18-pre2", ... + +h) Run "./autogen.sh" to update the ./configure script with the correct + release number (autogenerated using "git describe", see above). + +i) Run "./configure" to rebuild all generated Makefiles. + +j) Run "make distcheck" to generate the distribution archives. + +k) Sign the distribution archive(s) using GnuPG: "gpg -b " + +l) Upload and distribute the newly generated ngIRCd release archive(s) + and GnuPG signatures. + +m) Write an announcement to the mailing list, freshmeat, Twitter, ... + +n) Relax :-) diff --git a/doc/INSTALL b/doc/INSTALL index 60e7b5e..f7e51a1 100644 --- a/doc/INSTALL +++ b/doc/INSTALL @@ -1,7 +1,7 @@ ngIRCd - Next Generation IRC Server - (c)2001-2007 Alexander Barton, + (c)2001-2010 Alexander Barton, alex@barton.de, http://www.barton.de/ ngIRCd is free software and published under the @@ -9,11 +9,15 @@ -- INSTALL -- - I. Upgrade Information ~~~~~~~~~~~~~~~~~~~~~~ +Differences to version 16 + +- Changes to the "MotdFile" specified in ngircd.conf now require a ngircd + configuration reload to take effect (HUP signal, REHASH command). + Differences to version 0.9.x - The option of the configure script to enable support for Zeroconf/Bonjour/ @@ -184,6 +188,24 @@ standard locations. to the daemon, for example by using "/etc/hosts.{allow|deny}". The "libwrap" is required for this option. +* PAM: + --with-pam[=] + + Enable support for PAM, the Pluggable Authentication Modules library. + See doc/PAM.txt for details. + +* SSL: + --with-openssl[=] + --with-gnutls[=] + + Enable support for SSL/TLS using OpenSSL or gnutls libraries. + See doc/SSL.txt for details. + +* IPv6: + --enable-ipv6 + + Adds support for version 6 of the Internet Protocol. + IV. Useful make-targets ~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/NEWS b/doc/NEWS index 3d81baf..06ba872 100644 --- a/doc/NEWS +++ b/doc/NEWS @@ -10,6 +10,42 @@ -- NEWS -- +ngIRCd Release 17 + + ngIRCd 17~rc2 (2010-10-25) + - Generate ngIRCd version number from GIT tag. + - Make sourcecode compatible with ansi2knr again. This allows to compile + ngIRCd using a pre-ANSI K&R C compiler again. + + ngIRCd 17~rc1 (2010-10-11) + - New configuration option "NoZeroConf" to disable service registration at + runtime even if ngIRCd is compiled with support for ZeroConf (e.g. using + Howl, Avahi or on Mac OS X). + - New configuration option "SyslogFacility" to define the syslog "facility" + (the "target"), to which ngIRCd should send its log messages. + Possible values are system dependant, but most probably "auth", "daemon", + "user" and "local1" through "local7" are possible values; see syslog(3). + Default is "local5" for historical reasons. + - Dump the "internal server state" (configured servers, established + connections and known clients) to the console or syslog when receiving + the SIGUSR2 signal and debug mode is enabled. + - Enable the daemon to disable and enable "debug mode" on runtime using + signal SIGUSR1, when debug code is compiled in, not only on startup + using the command line parameters. + - Implement user mode "x": hostname cloaking (closes: #102). + - Change MOTD file handling: ngIRCd now caches the contens of the MOTD + file, so the daemon now requires a HUP signal or REHASH command to + re-read the MOTD file when its content changed. + - Allow IRC ops to change channel modes even without OperServerMode set. + - Allow IRC operators to use MODE command on any channel (closes: #100). + - New configuration option "NoPAM" to disable PAM. + - Implement asynchronous user authentication using PAM, please see the + file doc/PAM.txt for details. + - Add some documentation for using BOPM with ngIRCd, see doc/Bopm.txt. + - Implement user mode "c": receive connect/disconnect NOTICEs. Note that + this new mode requires the user to be an IRC operator. + - Show SSL status in WHOIS output, numeric 275. + ngIRCd Release 16 (2010-05-02) ngIRCd 16~rc2 (2010-04-25) diff --git a/doc/PAM.txt b/doc/PAM.txt new file mode 100644 index 0000000..64bbc7b --- /dev/null +++ b/doc/PAM.txt @@ -0,0 +1,36 @@ + + ngIRCd - Next Generation IRC Server + + (c)2001-2010 Alexander Barton, + alex@barton.de, http://www.barton.de/ + + ngIRCd is free software and published under the + terms of the GNU General Public License. + + -- PAM.txt -- + + +ngIRCd can optionally be compiled to use PAM, the Pluggable Authentication +Modules library, for user authentication. When compiled with PAM support, +ngIRCd will authenticate all users connecting to the daemon using the +configured PAM modules in an asynchronous child process. + +To enable PAM, you have to pass the command line parameter "--with-pam" to +the "configure" script. Please see the PAM documentation ("man 7 pam") for +details and information about configuring PAM and its individual modules. + +A very simple -- and quite useless ;-) -- example would be: + + /etc/pam.d/ngircd: + auth required pam_debug.so + +Here the "pam_debug" module will be called each time a client connects to +the ngIRCd and has sent its PASS, NICK, and USER commands. + +Please note ONE VERY IMPORTANT THING: + +All the PAM modules are executed with the privileges of the user ngIRCd +is running as. Therefore a lot of PAM modules aren't working as expected, +because they need root privileges ("pam_unix", for example)! +Only PAM modules not(!) requiring root privileges (such as "pam_pgsql", +"pam_mysql", "pam_opendirectory" ...) can be used in conjunction with ngIRCd. diff --git a/doc/Platforms.txt b/doc/Platforms.txt index 7a6e3a8..32cb8c1 100644 --- a/doc/Platforms.txt +++ b/doc/Platforms.txt @@ -32,22 +32,23 @@ hppa1.1/unknown/linux-gnu gcc 3.3.3 0.8.0 04-05-30 alex Y Y Y Y hppa2.0/unknown/linux-gnu gcc 3.3.5 13~rc1 08-12-02 alex Y Y Y Y hppa2.0w-hp-hpux11.11 gcc 4.2.3 14.1 09-07-22 goetz Y Y Y Y i386/apple/darwin9.7.0 gcc 4.0.1 14.1 09-08-04 alex Y Y Y Y (3) -i386/apple/darwin10.3.0 gcc 4.2.1 16 10-04-23 alex Y Y Y Y (3) +i386/apple/darwin10.4.0 gcc 4.2.1 17-dev 10-10-05 alex Y Y Y Y (3) i386/pc/solaris2.9 gcc 3.2.2 CVSHEAD 04-02-24 alex Y Y Y Y i386/pc/solaris2.11 gcc 3.4.3 14.1 09-08-03 alex Y Y Y Y (4) i386/unknown/freebsd5.2.1 gcc 3.3.3 0.8.0 04-05-30 alex Y Y Y Y i386/unknown/freebsd6.0 gcc 3.4.4 0.10.0-p1 06-08-04 alex Y Y Y Y (3) i386/unknown/freebsd6.1 gcc 3.4.4 CVSHEAD 06-05-07 fw Y Y Y Y (3) -i386/unknown/freebsd6.2 gcc 3.4.6 16 10-04-11 alex Y Y Y Y (3) +i386/unknown/freebsd6.2 gcc 3.4.6 17-dev 10-10-05 alex Y Y Y Y (3) i386/unknown/freebsd7.0 gcc 4.2.1 14.1 09-07-28 alex Y Y Y Y (3) i386/unknown/freebsd7.2 gcc 4.2.1 14.1 09-08-03 alex Y Y Y Y (3) -i386/unknown/freebsd7.3 gcc 4.2.1 16 10-04-11 alex Y Y Y Y (3) +i386/unknown/freebsd7.3 gcc 4.2.1 17-dev 10-10-05 alex Y Y Y Y (3) i386/unknown/gnu0.3 gcc 3.3.3 0.8.0 04-05-30 alex Y Y n Y i686/unknown/gnu0.3 gcc 4.3.1 14.1 09-07-28 alex Y Y Y Y i686/unkn./kfreebsd7.2-gnu gcc 4.3.4 15 09-12-02 alex Y Y Y Y (3) i386/unknown/netbsdelf1.6.1 gcc 2.95.3 CVSHEAD 04-02-24 alex Y Y Y Y i386/unknown/netbsdelf3.0.1 gcc 3.3.3 0.10.0-p1 06-08-30 alex Y Y Y Y (3) -i386/unknown/netbsdelf4.0 gcc 4.1.2 16 10-04-11 alex Y Y Y Y (3) +i386/unknown/netbsdelf4.0 gcc 4.1.2 17-dev 10-10-05 alex Y Y Y Y (3) +i386/unknown/netbsdelf5.0.2 gcc 4.1.3 17-dev 10-10-07 alex Y Y Y Y (3) i386/unknown/openbsd3.9 gcc 3.3.5 0.10.0-p1 06-08-30 alex Y Y Y Y (3) i386/unknown/openbsd4.1 gcc 3.3.5 16 10-04-11 alex Y Y Y Y (3) i586/pc/interix3.5 gcc 3.3 15 10-01-22 alex Y Y N Y @@ -56,6 +57,7 @@ i686/pc/linux-gnu gcc 2.95.4 0.8.0 04-05-30 alex Y Y Y Y (1) i686/pc/linux-gnu gcc 3.3.5 14.1 09-08-04 alex Y Y Y Y (1) i386/pc/linux-gnu gcc 4.1.2 13~rc1 08-12-05 alex Y Y Y Y (1) i686/pc/linux-gnu gcc 4.3.2 14.1 09-08-04 alex Y Y Y Y (1) +m68k/apple/aux3.0.1 gcc 2.7.2 17~rc1 10-10-12 alex Y Y Y Y m68k/apple/aux3.1.1 Orig. A/UX 0.7.x-CVS 03-04-22 alex Y Y Y Y (2) m68k/hp/hp-ux9.10 Orig. HPUX 0.7.x-CVS 03-04-30 goetz Y Y Y Y m88k/dg/dgux5.4R3.10 gcc 2.5.8 CVSHEAD 04-03-15 alex Y Y ? ? @@ -69,7 +71,9 @@ sparc/sun/solaris2.6 gcc 2.95.3 0.7.x-CVS 03-04-22 alex Y Y Y Y sparc/sun/solaris2.7 gcc 3.3 0.8.0 04-05-30 alex Y Y Y Y sparc/unkn./netbsdelf1.6.1 gcc 2.95.3 0.8.0 04-05-30 alex Y Y Y Y x86_64/unknown/freebsd8.0 gcc 4.2.1 16 10-04-23 alex Y Y Y Y (3) -x86_64/unknown/linux-gnu gcc 4.3.2 16 10-04-23 alex Y Y Y Y (1) +x86_64/unknown/freebsd8.1 gcc 4.2.1 17-dev 10-10-05 alex Y Y Y Y (3) +x86_64/unknown/linux-gnu gcc 4.3.2 17-dev 10-10-05 alex Y Y Y Y (1) +x86_64/unknown/openbsd4.7 gcc 3.3.5 17-dev 10-10-05 alex Y Y Y Y (3) Notes diff --git a/doc/sample-ngircd.conf b/doc/sample-ngircd.conf index daa0801..fe34dff 100644 --- a/doc/sample-ngircd.conf +++ b/doc/sample-ngircd.conf @@ -68,12 +68,18 @@ # so the server listens on all IP addresses of the system by default. ;Listen = 127.0.0.1,192.168.0.1 + # Syslog "facility" to which ngIRCd should send log messages. + # Possible values are system dependant, 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 + # Text file with the "message of the day" (MOTD). This message will # be shown to all users connecting to the server: ;MotdFile = /usr/local/etc/ngircd.motd # A simple Phrase (<256 chars) if you don't want to use a motd file. - # If it is set no MotdFile will be read at all. ;MotdPhrase = "Hello world!" # User ID under which the server should run; you can use the name @@ -135,6 +141,13 @@ # with support for it. ;NoIdent = no + # Don't use PAM, even if ngIRCd has been compiled with support for it. + ;NoPAM = no + + # Don't use ZeroConf service registration, even if ngIRCd has been + # compiled with support for it (e.g. Howl, Avahi, Mac OS X). + ;NoZeroConf = no + # try to connect to other irc servers using ipv4 and ipv6, if possible ;ConnectIPv6 = yes ;ConnectIPv4 = yes