Commits


Merge pull request #269 from hillu/gnutls-reload-cert Add support for GnuTLS certificate reload. Thanks a lot, Hilko Bengen!


updating testsuite to support ssl-tests


Convert INSTALL and README files to Markdown This requires some changes to the build system, for example to comply with the expectations of the GNU autoconf/automake tools ...


Log received signals (using strsignal(3), when available)


Make sure HAVE_LIBSSL is defined, even when using pkg-config Without this, the configure script assumes and states that OpenSSL will be used, but the code won't include support for it because there we use the "HAVE_LIBSSL" define to test for it ("#ifdef HAVE_LIBSSL"). So define the latter when pkg-config(1) is used, too. This fixes #257, a regression introduced by commit ad86a41ee :-/


configure.ng: use pkg-config to find PpenSSL dependencies OpenSSL can depends on lz or latomic so use pkg-config to find those dependencies and fallback to existing mechanism. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Closes #256.


configure.ng: Split list into separate lines


Fix building ngIRCd with OpenSSL 1.1 At the moment, ngIRCd fails to build against OpenSSL 1.1 since the configure check probes for the SSL_library_init symbol which was removed, but probing for a different function availabe in both versions solves that problem: SSL_new(). And as SSL_library_init is no longer needed, the patch boils down to probing SSL_new to assert libssl is available, and disabling the SSL_library_init invokation from OpenSSL 1.1 on, see also another application[1] (NSCA-ng) that did pretty much the same. Patch was compile-tested on both Debian jessie (OpenSSL 1.0.2) and stretch (OpenSSL 1.1). [1] <https://www.nsca-ng.org/cgi-bin/repository/nsca-ng/commit/?id=8afc22031ff174f02caad4afc83fa5dff2c29f8a> (Patch by Christoph, commit message cherry-picked from the email thread on the mailing list by Alex. Thanks!)


Make setgroups(3) function optional For example, Interix is missing this function, which prevented ngIRCd to build on this platform. When setgroups(3) isn't available, a warning message is issued when ngIRCd starts up.


configure[.ng]: <sys/types.h> is a required header file ngIRCd already includes <sys/types.h> in a lot of places without checking for its existence (for example in "ngircd.c", "io.c", ...), therefore make it a required header file.


configure: Only link "contrib/Debian" if it exists This isn't the case on "VPATH builds", for example.


Use $(MKDIR_P) instead of $(mkinstalldirs) in Makefile's And test for "mkdir -p" using AC_PROG_MKDIR_P in "configure".


Fix configure script and "make check" for TCP Wrappers Add missing #include's and static variables. Problem spotted on OpenBSD.


Add libwrap at the end of the configure run If libwrap becomes added earlier, other tests may fail because of not all external variables required by libwrap are available when linking: for example allow_severity and deny_severity. This patch adds generic support for the LDFLAGS_END and LIBS_END variables (CFLAGS_END has been implemented already). Problem spotted on OpenBSD.


Partially revert bc098794: don't require autoconf 2.67 GNU autoconf 2.61 is still sufficient to generate the configure script, even after updating configure.{ng|in}, so don't require a newer version.


Update configure.ng for autoconf 2.67 We already require GNU autoconf 2.67 for generating our build system (at least this is what the INSTALL document states), so update the build system accordingly and implement all changes that autoupdate(1) suggests: - Update AC_PREREQ and AC_INIT - Use AC_LINK_IFELSE, AC_RUN_IFELSE, and AC_COMPILE_IFELSE - Remove AC_TYPE_SIGNAL (we don't use RETSIGTYPE)


Check for working getaddrinfo() function At least AIX 4.3.3 and 5.1 have a broken implementation of getaddrinfo() which doesn't handle "0" as numeric service correctly. This patch adds a configure check for this case and changes all calling functions to only use getaddrinfo() if it "works". See <http://www.stacken.kth.se/lists/heimdal-discuss/2004-05/msg00059.html>


configure: clean up function definitions


Only use unsetenv() when it is available AIX 4.3 dosn't support it, for example.


Check and call arc4random_stir() if present FreeBSD prior to 10.0 does not automatically stir on fork(). Same with current NetBSD. If arc4random_stir() is present assume is needed and call it instead of srand().


Add support for arc4random If arc4random is present it will be used over the srand/rand interface. This fixes some warnings in OpenBSD-current.


private strndup() implementation in case libc does not provide it


configure: Don't quote IO backend type(s) It's not needed and inconsistent compared to the other settings. Reported by "allerbest" (Götz Hoffart) on #ngircd, thanks!


Make configure[.ng] compatible with autoconf 1.10 again The incompatibility has been introduced by commit d0c9f4a6, "configure: search for iconv_open as well as libiconv_open".


Merge branch 'bug151-iconv' into master * bug151-iconv: configure: search for iconv_open as well as libiconv_open


configure: search for iconv_open as well as libiconv_open On some installations iconv_open() is actually libiconv_open(). iconv_open() is the glibc version while libiconv_open() is the libiconv version. This patch enables ngIRCd to detect both cases. Tested on OpenBSD 5.1. Closes bug #151.


configure: conversation -> conversion


configure: "netinet/in_systm.h" is optional The header file "netinet/in_systm.h" already is optional in ngIRCd, so don't require it in the configure script. Now ngIRCd can be built on Minix 3 again :-)


configure: use AS_HELP_STRING for --with-iconv


autogen.sh: Enforce serial test harness on automake >=1.13


Merge branch 'bug145-ProvideHelp' * bug145-ProvideHelp: Use "${docdir}/Commands.txt" as help text file Add a note that "help file" is updated on startup and REHASH only Add doc/Commands.txt which should document all commands Implement Help() function parsing and returning the help text Document "HelpFile" in sample-ngircd.conf and ngircd.conf.5 Implement new configuration option "HelpFile" IRC_HELP(): Code cleanup Refactor Read_Motd() into Read_TextFile()


Use "${docdir}/Commands.txt" as help text file


Remove Anope "ngircd" protocol module patches Starting with Anope 1.9.8, the ngIRCd protocol module is included in the Anope distribution, so there's no longer any need to support our own (but now heavily outdated!) patches. Therefore remove them.


Search gethostbyname() in libbind and libnetwork This is required for Haiku (BeOS clone) at least.


Merge branch 'bug109-CHARCONV' This closes bug #109. * bug109-CHARCONV: Debian: require "telnet" or "telnet-ssl" for building Debian ngircd-full[-dbg]: enable CHARCONV Add "CHARCONV" to "feature string" when enabled Implement new IRC+ "CHARCONV" command Added new configure option "--with-iconv" Conflicts: src/ngircd/messages.h


configure: only use AM_PROG_AR when available This fixes commit 78d189fb on systems with older automake ...


configure.ng: use AM_PROG_AR to check ar(1) command This fixes automake-1.12/am/library.am: warning: 'libngipaddr.a': linking libraries using a non-POSIX .../automake-1.12/am/library.am: archiver requires 'AM_PROG_AR' in 'configure.in' src/ipaddr/Makefile.am:12: while processing library 'libngipaddr.a' and similar warnings of automake.


Merge branch 'automake-am11-am12' * automake-am11-am12: autogen.sh: detect automake version format a.b.c and a.b configure.ng: don't require GIT tree to detect version string Include .mailmap file in distribution archives Include all build-system files into distribution archives Change build system to support new and old GNU automake


configure.ng: don't require GIT tree to detect version string


Change build system to support new and old GNU automake Starting with GNU automake 1.12, the "de-ANSI-fication support" has been removed, which ngIRCd used to enable building itself on very old systems. Now the problem is, that using automake >= 1.12 isn't working because of the now unsupported M4 macros. Therefore the solution that this patch implements is to dynamically generate the automake input files with our own ./autogen.sh script: configure.ng => configure.in Makefile.ng => Makefile.am This is quite an ugly approach, but it works and enables us to: 1. use current automake >= 1.12 for development and "private builds", 2. still build distribution archives using automake 1.11.x that have "de-ANSI-fication support" enabled in the generated Makefile's. And if you are using Makefile's generated with a automake version newer than 1.11.x (without "de-ANSI-fication support"), the ./configure script warns you not to use this generated build system to generate distribution archives. Drawback of this patch: you MUST use our autogen.sh script, you can't call the autoconf/automake commands directly any more; but autoreconf should still work ...