Commit Graph

31 Commits

Author SHA1 Message Date
Christoph Biedl daa88b7651 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!)
2016-12-05 23:51:07 +01:00
Alexander Barton 2fc61ce8a6 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.
2015-06-06 22:19:47 +02:00
Alexander Barton 67256f9da1 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.
2014-03-17 00:52:11 +01:00
Alexander Barton 14a84dfca5 configure: Only link "contrib/Debian" if it exists
This isn't the case on "VPATH builds", for example.
2014-01-26 23:41:06 +01:00
Alexander Barton 90062111f7 Use $(MKDIR_P) instead of $(mkinstalldirs) in Makefile's
And test for "mkdir -p" using AC_PROG_MKDIR_P in "configure".
2014-01-17 21:04:40 +01:00
Alexander Barton e747fe9277 Fix configure script and "make check" for TCP Wrappers
Add missing #include's and static variables.

Problem spotted on OpenBSD.
2014-01-17 16:18:55 +01:00
Alexander Barton 0f85c4c6a7 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.
2014-01-17 16:16:37 +01:00
Alexander Barton 8872653ef6 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.
2014-01-04 23:12:56 +01:00
Alexander Barton bc098794ee 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)
2014-01-02 15:33:39 +01:00
Alexander Barton b8433e9261 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>
2013-12-27 21:35:13 +01:00
Alexander Barton 34824abe0d configure: clean up function definitions 2013-11-12 00:25:28 +01:00
Alexander Barton ae00c100ac Only use unsetenv() when it is available
AIX 4.3 dosn't support it, for example.
2013-11-10 17:08:51 +01:00
Federico G. Schwindt 8e6db769ac 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().
2013-10-23 16:00:26 +01:00
Federico G. Schwindt 17589534d0 Add support for arc4random
If arc4random is present it will be used over the srand/rand interface.
This fixes some warnings in OpenBSD-current.
2013-10-16 16:32:06 +01:00
Federico G. Schwindt 6ac5a82eec private strndup() implementation in case libc does not provide it 2013-08-26 10:47:04 +01:00
Alexander Barton aeebde4642 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!
2013-08-11 11:40:48 +02:00
Alexander Barton a14eb495b7 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".
2013-03-24 16:39:15 +01:00
Alexander Barton d0c9f4a692 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.
2013-02-15 21:32:08 +01:00
Alexander Barton d5763937ad configure: conversation -> conversion 2013-02-15 21:26:47 +01:00
Alexander Barton fd260404ca 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 :-)
2013-01-24 22:45:00 +01:00
Alexander Barton b4966aa1bd configure: use AS_HELP_STRING for --with-iconv 2013-01-06 17:46:06 +01:00
Alexander Barton 0703fcd719 autogen.sh: Enforce serial test harness on automake >=1.13 2013-01-05 03:05:56 +01:00
Alexander Barton 950aeec3ff Use "${docdir}/Commands.txt" as help text file 2013-01-01 19:25:06 +01:00
Alexander Barton 45b0bb5aff 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.
2012-11-10 21:26:25 +01:00
Alexander Barton cdaaae0cb2 Search gethostbyname() in libbind and libnetwork
This is required for Haiku (BeOS clone) at least.
2012-10-11 14:50:45 +00:00
Alexander Barton 46b0eef721 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
2012-10-06 18:26:25 +02:00
Alexander Barton b730b64bbe configure: only use AM_PROG_AR when available
This fixes commit 78d189fb on systems with older automake ...
2012-09-24 20:56:24 +02:00
Alexander Barton 78d189fbf7 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.
2012-09-24 20:39:06 +02:00
Alexander Barton 8cfb910441 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
2012-09-24 20:28:02 +02:00
Alexander Barton d7d5f4330b configure.ng: don't require GIT tree to detect version string 2012-09-24 18:00:36 +02:00
Alexander Barton 192e304b94 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 ...
2012-09-23 18:13:55 +02:00