#
AC_PREREQ(2.61)
# Checks for programs.
-AC_INIT([gnunet], [0.11.8], [bug-gnunet@gnu.org])
+AC_INIT([gnunet], [0.12.2], [bug-gnunet@gnu.org])
AC_CONFIG_AUX_DIR([build-aux])
# check for legacy option that is no longer supported (#5627) and fail hard
AC_PROG_LN_S
AC_PROG_MAKE_SET
AM_PROG_CC_C_O
-LT_INIT([disable-static dlopen win32-dll])
+LT_INIT([disable-static dlopen])
AC_SUBST(MKDIR_P)
# allow for different autotools
# We make heavy use of this, llvm/gcc and gcc-9 give warnings so disable.
CC_CHECK_CFLAG_APPEND([address-of-packed-member])
+# We make heavy use of this, llvm/gcc and gcc-9 give warnings so disable.
+CC_CHECK_CFLAG_APPEND([tautological-constant-out-of-range-compare])
+
# Use Linux interface name unless the OS has a different preference
DEFAULT_INTERFACE="\"eth0\""
[*openbsd*],[
LIBS=`echo $LIBS | sed -e "s/-ldl//"`
build_target="openbsd"
+ use_openbsd_libtool=true
LIBPREFIX=
DLLDIR=lib
UNIXONLY="#"
AM_CONDITIONAL(XNETBSD, test "$build_target" = "netbsd")
AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
+# FIXME: We need a define BSD for some binaries like we
+# need define LINUX for some. This does not scale, how
+# can we solve this better?
+AM_CONDITIONAL(XBSD, test "$build_target" = "netbsd" -o "$build_target" = "freebsd" -o "$build_target" = "openbsd")
AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
AM_CONDITIONAL(GNU, test "$build_target" = "gnu")
AC_DEFINE(HAVE_MEMRCHR,1,[memrchr supported]), [])
AC_SEARCH_LIBS([memset_s], [],
AC_DEFINE(HAVE_MEMSET_S,1,[memset_s supported]), [])
-AC_SEARCH_LIBS([memset_s], [],
+AC_SEARCH_LIBS([explicit_bzero], [],
AC_DEFINE(HAVE_EXPLICIT_BZERO,1,[explicit_bzero supported]), [])
AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(m, log)
AC_SUBST([PYTHON])
AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
+
# perl
AC_PATH_PROG( PERL, perl, ,
$PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
AC_SUBST([PERL])
+AM_CONDITIONAL([HAVE_PERL], [test -x "$PERL"])
+AS_IF([test -x "$PERL"],
+ [AC_DEFINE_UNQUOTED([HAVE_PERL], [1], [Path to Perl])],
+ [AC_DEFINE_UNQUOTED([HAVE_PERL], [0], [Path to Perl])])
+
+# awk
+AC_PATH_PROGS( AWK_BINARY, [awk gawk], ,$PATH:/usr/bin/:/usr/local/bin )
+AC_SUBST([AWK_BINARY])
+AM_CONDITIONAL([HAVE_AWK], [test -x "$AWK_BINARY"])
+AS_IF([test -x "$AWK_BINARY"],
+ [AC_DEFINE_UNQUOTED([HAVE_AWK], [1], [Path to awk])],
+ [AC_DEFINE_UNQUOTED([HAVE_AWK], [0], [Path to awk])])
+
+# should we install gnunet-logread?
+AC_MSG_CHECKING(whether to install gnunet-logread)
+AC_ARG_WITH([gnunet-logread],
+ [AS_HELP_STRING([--with-gnunet-logread],
+ [Install gnunet-logread])],
+ [logread=${withval}],
+ [logread=no])
+AC_MSG_RESULT($logread)
+AS_IF([test "x$logread" = "xyes"],
+ [AM_CONDITIONAL([GNUNET_LOGREAD], true)
+ AC_DEFINE([GNUNET_LOGREAD],
+ [1],
+ [Installing gnunet-logread])],
+ [AM_CONDITIONAL([GNUNET_LOGREAD],
+ false)
+ AC_DEFINE([GNUNET_LOGREAD],
+ [0],
+ [Not installing gnunet-logread])])
# iptables is a soft requirement to run tests
AC_PATH_TARGET_TOOL(VAR_IPTABLES_BINARY, iptables, false)
[AC_MSG_WARN(['ifconfig' not found.])])
+# Test if 'adduser' binary exists
+MSG_USER_SETUP=true
+AC_PATH_PROG([MSG_USER_SETUP],
+ [adduser],
+ false,
+ [path=$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
+
+# Test if 'gnunet' user and the groups exist
+getent passwd gnunet > /dev/null
+HAVE_GNUNET_USER=$?
+getent group gnunet > /dev/null
+AS_IF([test x$? != x0],
+ [HAVE_GNUNET_USER=1])
+getent group gnunetdns > /dev/null
+AS_IF([test x$? != x0],
+ [HAVE_GNUNET_USER=1])
+
AC_PATH_TARGET_TOOL(VAR_SYSCTL_BINARY, sysctl, false)
AC_CHECK_PROG(VAR_SYSCTL_BINARY, sysctl, true, false)
AC_CHECK_DECLS([struct in6_ifreq], [], [], [[#include <linux/if_tun.h>]])
+AC_CHECK_HEADER([if_tun.h],
+ [AC_DEFINE([IF_TUN_HDR], ["if_tun.h"], [if_tun.h include path])],
+ [AC_CHECK_HEADER([linux/if_tun.h],
+ [AC_DEFINE([IF_TUN_HDR], ["linux/if_tun.h"])],
+ [AC_CHECK_HEADER([net/if_tun.h],
+ [AC_DEFINE([IF_TUN_HDR], ["net/if_tun.h"])],
+ [AC_CHECK_HEADER([net/tun/if_tun.h],
+ [AC_DEFINE([IF_TUN_HDR], ["net/tun/if_tun.h"])])])])])
# should the build process be building the documentation?
[0],
[Not building the documentation])])
-# COMMENT: Check wether to transpile texinfo to mdoc.
+# COMMENT: Check whether to transpile texinfo to mdoc.
# COMMENT: This is TRUE when --enable-texi2mdoc-generation
# COMMENT: but ERRORS when texi2mdoc binary is missing in your $PATH
# COMMENT: and makes the configure fail if it is missing.
# COMMENT: There are 2 nested AS_IFs because we need to catch the
# COMMENT: potential non-existence of the texi2mdoc binary.
# COMMENT: Default return value / setting: no
-AC_MSG_CHECKING(wether to include generated texi2mdoc output in installation)
+AC_MSG_CHECKING(whether to include generated texi2mdoc output in installation)
AC_ARG_ENABLE([texi2mdoc-generation],
[AS_HELP_STRING([--enable-texi2mdoc-generation],
[include generated texi2mdoc output in installation])],
# Adam shostack suggests the following for Windows:
# -D_FORTIFY_SOURCE=2 -fstack-protector-all
-AC_ARG_ENABLE(gcc-hardening,
+AC_ARG_ENABLE([gcc-hardening],
AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
[AS_IF([test x$enableval = xyes],[
CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all"
# Linker hardening options
# Currently these options are ELF specific - you can't use this with MacOSX
-AC_ARG_ENABLE(linker-hardening,
+AC_ARG_ENABLE([linker-hardening],
AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
[AS_IF([test x$enableval = xyes],
[LDFLAGS="$LDFLAGS -z relro -z now"])])
-AC_ARG_ENABLE(sanitizer,
+AC_ARG_ENABLE([sanitizer],
AS_HELP_STRING(--enable-sanitizer, enable Address Sanitizer and Undefined Behavior Sanitizer),
[AS_IF([test x$enableval = xyes],[
LDFLAGS="$CFLAGS -fsanitize=address,undefined -fno-omit-frame-pointer"
AC_LANG_POP(C)
]) # $build = $target
+AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ [[int main() {
+ _Static_assert(sizeof(int) >= 4, "not big enough");
+ return 0;
+ };]])],
+ [AC_DEFINE([HAVE_STATIC_ASSERT],[1],[Static assertions supported])],
+ [AC_DEFINE([HAVE_STATIC_ASSERT],[0],[Static assertions not supported])])
+
# check for bluetooth library
bluetooth=0
AC_MSG_CHECKING(for libbluetooth)
[AC_DEFINE([HAVE_LIBBLUETOOTH],[0],[Lacking bluetooth library])])
# check for zbar library
-# TODO: Add checks for: -lSM, -lICE, -lX11, -lXv and -ljpeg
-# TODO: if zbar exists.
+# NOTE: Do not add checks for: -lSM, -lICE, -lX11, -lXv and -ljpeg
+# NOTE: they must be provided by the build environment, not the
+# NOTE: build-system of gnunet, as they are 2nd or 3rd level dependencies.
zbar=0
AC_MSG_CHECKING(for libzbar)
AC_ARG_WITH(zbar,
],
[AC_MSG_RESULT([--with-jansson not specified])
CHECK_LIBHEADER(JANSSON, jansson, json_loads, jansson.h,jansson=1,)])
-AM_CONDITIONAL(HAVE_JANSSON, [test "$jansson" = 1])
-AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
-AS_IF([test "x$jansson" = x1],
- [AC_DEFINE([HAVE_JANSSON],[1],[Have jansson library])],
- [AC_DEFINE([HAVE_JANSSON],[0],[Lacking jansson library])])
+AS_IF([test "x$jansson" != x1],
+ [AC_MSG_ERROR([GNUnet requires libjansson])])
# check for libpulse(audio) library
pulse=0
[AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])
libopus_msg="yes"],
[AC_DEFINE([HAVE_OPUS],[0],[Lacking libopus library])
- libopus_msg="no"])
+ libopus_msg="no (required for conversation)"])
# libogg
AC_MSG_CHECKING(for libogg)
AC_CHECK_HEADER([curl/curl.h],
AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],[curl=false],[[#include <curl/curl.h>]]),
[curl=false])
- # need libcurl-gnutls.so, everything else is not acceptable
- AC_CHECK_LIB([curl-gnutls],[curl_easy_getinfo],,[curl=false])
+ # need libcurl-gnutls.so for proxy, warn later if not found.
+ AC_CHECK_LIB([curl-gnutls],[curl_easy_getinfo],[curl_gnutls=true],[curl_gnutls=false])
# cURL must support CURLINFO_TLS_SESSION, version >= 7.34
])
AC_DEFINE([HAVE_LIBGNURL],[0],[Lacking libgnurl])
AM_CONDITIONAL(HAVE_LIBCURL, true)
AC_DEFINE([HAVE_LIBCURL],[1],[Have libcurl])],
- [AC_MSG_WARN([ERROR: GNUnet requires libcurl-gnutls or gnurl >= 7.34])
+ [AC_MSG_ERROR([GNUnet requires libcurl or gnurl >= 7.34])
AM_CONDITIONAL(HAVE_LIBGNURL, false)
AC_DEFINE([HAVE_LIBGNURL],[0],[Lacking libgnurl])
AM_CONDITIONAL(HAVE_LIBCURL, false)
AC_CHECK_LIB([kvm],[kvm_open])
AC_CHECK_LIB([kstat],[kstat_open])
+libsodium=0
+# test for libsodium
+AC_CHECK_HEADER([sodium.h],
+ [AC_CHECK_LIB([sodium], [crypto_pwhash_argon2id],
+ [libsodium=1])])
-# should the build process be restricted to the code required
-# for GNU Taler wallets?
-AC_MSG_CHECKING(whether to compile GNU Taler Wallet library ONLY)
-AC_ARG_ENABLE([taler-wallet],
- [AS_HELP_STRING([--enable-taler-wallet], [only compile for Taler wallet])],
- [taler_only=${enableval}],
- [taler_only=no])
-AC_MSG_RESULT($taler_only)
-AS_IF([test "x$taler_only" = "xyes"],
-[
- AM_CONDITIONAL([TALER_ONLY],true)
- AC_DEFINE([TALER_WALLET_ONLY],[1],[Compiling for Taler wallet])
-],[
- AM_CONDITIONAL([TALER_ONLY],false)
- AC_DEFINE([TALER_WALLET_ONLY],[0],[Canonical compilation])
-])
+AS_IF([test x$libsodium = x0],
+ [AC_MSG_ERROR([GNUnet requires libsodium.])])
# test for libextractor
extractor=0
])
-AS_IF([test "$taler_only" != yes],[
-
-
# Check for libltdl header (#2999)
ltdl=0
AC_MSG_CHECKING(for libltdl)
LIBS=$SAVE_LIBS
-# end of taler-only being false
-])
-
-
# check for iconv
AM_ICONV
AS_IF([test $HAVE_LIBUNISTRING != yes],
[AC_MSG_ERROR([GNUnet requires libunistring])])
-# under emscripten, $gl_libunistring_hexversion is undefined
-if test "$taler_only" != yes; then
-
AS_IF([test "x$gl_libunistring_hexversion" = "x" || test "$gl_libunistring_hexversion" -le 2305],
[AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])])
-fi
AC_CHECK_HEADERS([unistr.h],
,
AC_MSG_ERROR([Compiling GNUnet requires unistr.h (from libunistring) to be installed]))
# test for postgres:
postgres=false
-# even running the check for postgres breaks emscripten
-AS_IF([test "$taler_only" != yes],
- [AX_LIB_POSTGRESQL([9.5],
- [CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
- AC_CHECK_HEADERS([libpq-fe.h],
- postgres=true)
- ],
- [AC_MSG_RESULT([no postgres])])])
+AX_LIB_POSTGRESQL([9.5],
+ [CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
+ AC_CHECK_HEADERS([libpq-fe.h],
+ postgres=true)
+ ],
+ [AC_MSG_RESULT([no postgres])])
AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
AS_IF([test "x$postgres" = xtrue],
#endif
int main () { return 0; }
]])
- ],mysql=true,mysql=false)
- AS_IF([test "$mysql" = "false"],
+ ],
+ [mysql=true],
+ [mysql=false])
+ AS_IF([test x$mysql = xfalse],
[
mysqlfail=true
- AC_MSG_RESULT([fail, >= 4.1 required])
+ AC_MSG_WARN([fail, MySQL >= 4.1 required])
],[
+ AC_MSG_NOTICE([success, will keep $mysqlfail])
+ mysqlfail=false
AC_MSG_RESULT(ok)
])
])
+
AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
AM_CONDITIONAL(HAVE_MYSQLE, false)
# restore LIBS
AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
+AM_CONDITIONAL(HAVE_REST, [test x$jansson = x1 -a x$lmhd = x1])
+AS_IF([test "x$lmhd" != "x1"],
+ [AC_MSG_ERROR([GNUnet requires libmicrohttpd >= 0.9.63.])])
+
# restore LIBS
LIBS=$SAVE_LIBS
GN_INTLINCL=""
GN_LIBINTL="$LTLIBINTL"
-AC_ARG_ENABLE(framework,
- [AS_HELP_STRING([--enable-framework],[enable Mac OS X framework build helpers])],
- enable_framework_build=$enableval)
-AM_CONDITIONAL(WANT_FRAMEWORK,
- test x$enable_framework_build = xyes)
-AS_IF([test x$enable_framework_build = xyes],
- [AC_DEFINE([FRAMEWORK_BUILD],
- 1,
- [Build a Mac OS X Framework])
- GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
- GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
- AC_LIB_APPENDTOVAR([CPPFLAGS],
- [$GN_INTLINCL])])
-
GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
# should gnunet-testing be compiled
-AC_MSG_CHECKING(wether to compile gnunet-testing)
+AC_MSG_CHECKING(whether to compile gnunet-testing)
AC_ARG_ENABLE([testing],
[AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
[enable_testing=${enableval}],
AC_CONFIG_FILES([
Makefile
+bin/Makefile
contrib/Makefile
contrib/hellos/Makefile
contrib/services/Makefile
src/zonemaster/zonemaster.conf
src/rest/Makefile
src/abe/Makefile
-src/reclaim-attribute/Makefile
src/reclaim/Makefile
pkgconfig/Makefile
pkgconfig/gnunetarm.pc
# java ports
AS_IF([test "x$enable_java_ports" = "xyes"],
- [AC_MSG_NOTICE([NOTICE: Opening ports for gnunet-java bindings by default.])])
+ [AC_MSG_NOTICE([Opening TCP ports by default to enable gnunet-java bindings.])])
-####
-#### Lasciate ogne speranza, voi ch'intrate
####
#### This could be moved to the checks above,
#### but for now let's keep it here.
####
-
-# TODO: We use "WARNING" too often, we need to clarify what
-# TODO: constitutes a WARNING, an ERROR, and a NOTICE, and
-# TODO: other message levels.
-
+transport_msg="tcp udp unix http"
+AS_IF([test "x$build_target" = "xlinux" -a "x$enable_experimental" = "xyes"],
+ [transport_msg="$transport_msg wlan"])
# -- print message regarding enabled experimental features
+experimental_msg="no"
AS_IF([test "x$enable_experimental" = "xyes"],
- [experimental_msg="experimental features enabled"])
-# -- OSX Framework
-AS_IF([test "$enable_framework_build" = "yes"],
- [macosx_framework_msg="yes"],
- [macosx_framework_msg="no"])
+ [experimental_msg="yes"])
# -- libidn 2
AS_IF([test "x$working_libidn2" = x1],
[libidn2_msg="libidn2"])
[mdocml_msg="no"])
# -- texi2mdoc
AS_IF([test "x$TEXI2MDOC_BINARY" = "false"],
- [AC_MSG_NOTICE([WARNING: optional texi2mdoc binary not found])
+ [AC_MSG_NOTICE([texi2mdoc binary not found (will not generate mdoc documentation)])
texi2mdoc_msg="no (optional)"],
[texi2mdoc_msg="yes"])
# -- mandoc
AS_IF([test "x$MANDOC_BINARY" = "false"],
- [AC_MSG_NOTICE([WARNING: optional mandoc binary not found])
+ [AC_MSG_NOTICE([mandoc binary not found (will not generate handbook as man page)])
mandoc_msg="no"],
[mandoc_msg="yes"])
# -- texinfo
[texinfo_msg="no"],
[texinfo_msg="yes"])
# -- conversation
+conversation_msg="no"
AS_IF([test "x$conversation_backend" = "xnone"],
[AS_IF([test "x$pulse" != "x1"],
- [AC_MSG_NOTICE([WARNING: libpulse(audio) not found (required to build conversation against it).])
- libpulse_msg="no"],
+ [libpulse_msg="no (required for conversation)"],
[libpulse_msg="yes"])
AS_IF([test "x$opus" != "x1"],
- [AC_MSG_NOTICE([WARNING: libopus not found (conversation)])
- libopus_msg="no"],
+ [libopus_msg="no (required for conversation)"],
[libopus_msg="yes"])
AS_IF([test "x$gst" != "x1"],
- [AC_MSG_NOTICE([WARNING: GStreamer not found (required to build conversation against it).])
- gstreamer_msg="no"],
+ [gstreamer_msg="no (required for conversation)"],
[gstreamer_msg="yes"])],
- [features_msg="$features_msg conversation"])
+ [AS_IF([test "x$opus" = x1],
+ [conversation_msg="yes (x$conversation_backend)"],
+ [AC_MSG_WARN([libopus not found (required to build conversation)])])])
+
# -- interface
interface_msg=`echo $DEFAULT_INTERFACE | tr -d \"`
-# -- libmicrohttpd
-AS_IF([test "x$lmhd" != "x1"],
- [libmicrohttpd_msg="no (optional)"],
- [libmicrohttpd_msg="yes"])
# -- jansson
-AS_IF([test "x$jansson" = "x0"],
- [jansson_msg="no (optional)"],
- [jansson_msg="yes"])
# -- libextractor
AS_IF([test "$extractor" != 1],
- [AC_MSG_WARN([WARNING: libextractor not found, but various file-sharing functions require it])],
+ [AC_MSG_WARN([libextractor not found, but various file-sharing functions require it])],
[libextractor_msg="yes"])
# -- libzbar
AS_IF([test "x$zbar" = "x1"],
- [libzbar_msg="yes"
- features_msg="$features_msg gnunet-qr"],
- [AC_MSG_NOTICE([WARNING: zbar not found, gnunet-qr will not be built.])
- libzbar_msg="no"])
+ [libzbar_msg="yes"],
+ [libzbar_msg="no (gnunet-qr will not be built)"])
# -- libgnurl
AS_IF([test "$gnurl" = "0"],
[AS_IF([test "x$curl" = "xfalse"],
- [AC_MSG_NOTICE([WARNING: libgnurl not found. http client support will not be compiled.])
- AC_MSG_WARN([ERROR: libgnurl not found. hostlist daemon will not be compiled, and you probably WANT the hostlist daemon])
- curl_msg="no"],
- [AC_MSG_NOTICE([WARNING: libgnurl not found, trying to use libcurl-gnutls instead.])
- curl_msg="yes"])],
- [gnurl_msg="yes"])
+ [AC_MSG_WARN([libgnurl not found. http client support will not be compiled.])
+ AC_MSG_WARN([IMPORTANT: No HTTP client library found. HTTP transports and hostlist daemon will not be compiled, and you probably WANT the hostlist daemon])
+ http_client="none"],
+ [AC_MSG_NOTICE([Using libcurl as HTTP client library.])
+ http_client="curl"])],
+ [AC_MSG_NOTICE([Using libgnurl as HTTP client library.])
+ http_client="gnurl"])
+AS_IF([test "x$curl" = "xtrue" -a "x$curl_gnutls" != "xtrue"],
+ [AC_MSG_WARN([libcurl TLS backend is not gnutls. The GNS Proxy will likely not function properly.])
+ http_client="curl-openssl"],
+ [http_client="curl-gnutls"])
# -- ifconfig
AS_IF([test "$VAR_IFCONFIG_BINARY" = "false"],
- [AC_MSG_NOTICE([WARNING: optional ifconfig not found])
- ifconfig_msg="no (optional)"],
+ [ifconfig_msg="no (optional, some features will not work)"],
[ifconfig_msg="yes"])
# -- upnpc
AS_IF([test "$VAR_UPNPC_BINARY" = "false"],
- [AC_MSG_NOTICE([WARNING: optional upnpc binary not found])
- upnpc_msg="no (optional)"],
+ [upnpc_msg="no (optional, NAT traversal using UPnPc will not work)"],
[upnpc_msg="yes"])
# -- iptables
AS_IF([test "$VAR_IPTABLES_BINARY" = "false"],
- [AC_MSG_NOTICE([WARNING: optional iptables not found])
- iptables_msg="no (optional)"],
+ [iptables_msg="no (optional, DNS query interception will not work)"],
[iptables_msg="yes"])
# -- bluetooth
AS_IF([test "x$bluetooth" = "x0"],
- [AC_MSG_NOTICE([WARNING: optional bluetooth library not found.])
- bluetooth_msg="no (optional)"],
- [bluetooth_msg="yes"])
+ [bluetooth_msg="no (optional)"],
+ [bluetooth_msg="yes"
+ transport_msg="$transport_msg bluetooth"])
# -- gnutls
AS_IF([test x$gnutls != xtrue],
- [AC_MSG_NOTICE([WARNING: GnuTLS not found, gnunet-gns-proxy will not be built])
- gnutls_msg="no"],
+ [AC_MSG_WARN([GnuTLS not found, gnunet-gns-proxy will not be built])
+ gnutls_msg="no (gnunet-gns-proxy will not be built)"],
[AS_IF([test "x$gnutls_dane" != "x1"],
- [AC_MSG_NOTICE([WARNING: GnuTLS has no DANE support, DANE validation will not be possible])
+ [AC_MSG_WARN([GnuTLS lacks DANE support, DANE validation will not be possible])
gnutls_msg="yes (without DANE support)"],
[gnutls_msg="yes (with DANE support)"])])
# -- databases
# TODO: this always returns true, the check might
# TODO: not be working as intended (for msqlfail).
-AS_IF([test x$mysqlfail = "true"]
- [AC_MSG_NOTICE([WARNING: optional MySQL not found (or too old)])])
AS_IF([test "$mysql" = true],
[features_msg="$features_msg mysql"
mysql_msg="yes"],
[mysql_msg="no"])
+AS_IF([test x$mysqlfail = xtrue],
+ [AC_MSG_WARN([MySQL not found (or too old), will not create MySQL database support])
+ mysql_msg="unsupported version"])
AS_IF([test "$sqlite" = true],
[features_msg="$features_msg sqlite"
sqlite_msg="yes"],
- [AC_MSG_ERROR([ERROR: sqlite3 not found, but sqlite3 is required.])
+ [AC_MSG_ERROR([sqlite3 not found, but sqlite3 is required.])
sqlite_msg="no"])
AS_IF([test "$postgres" = true],
[features_msg="$features_msg postgres"
# TODO: reduce the length of the last message block, following "IMPORTANT".
AC_MSG_NOTICE([
-GNUnet Configuration
+Detected system
+===============
-gnunet version: ${VERSION}
+GNUnet version: ${VERSION}
Host setup: ${host}
Install prefix: ${prefix}
LDFLAGS: ${LDFLAGS}
LIBS: ${LIBS}
Build Target: $build_target
-Mac OSX framework build: ${macosx_framework_msg}
Default Interface: ${interface_msg}
MySQL: ${mysql_msg}
PostgreSQL: ${postgres_msg}
sqlite3: ${sqlite_msg}
-gnurl: ${gnurl_msg}
-curl: ${curl_msg}
+http client: ${http_client}
bluetooth: ${bluetooth_msg}
-jansson: ${jansson_msg}
iptables: ${iptables_msg}
ifconfig: ${ifconfig_msg}
upnpc: ${upnpc_msg}
gnutls: ${gnutls_msg}
libzbar: ${libzbar_msg}
java: ${java_msg}
-libmicrohttpd: ${libmicrohttpd_msg}
libidn: ${libidn1_msg}${libidn2_msg}
libopus: ${libopus_msg}
gstreamer: ${gstreamer_msg}
texi2mdoc: ${texi2mdoc_msg}
mandoc: ${mandoc_msg}
-texinfo manual: ${texinfo_msg}
-transpiled mdocml manual: ${mdocml_msg}
-
-features: ${features_msg}
+GNUnet configuration:
+=====================
+transports: ${transport_msg}
+conversation: ${conversation_msg}
+database backends: ${features_msg}
experimental: ${experimental_msg}
-
-IMPORTANT:
-
-Please make sure NOW that you have created a user and group 'gnunet'
-and additionally a group 'gnunetdns'. On Debian and Ubuntu GNU/Linux,
-type:
-
- addgroup gnunetdns
- adduser --system --group --disabled-login --home /var/lib/gnunet gnunet
-
-Make sure that '/var/lib/gnunet' is owned (and writable) by user
-'gnunet'. Then, you can compile GNUnet with
-
- make
-
-After that, run (if necessary as 'root')
-
- make install
-
-to install everything.
-
-Each GNUnet user should be added to the 'gnunet' group (may
-require fresh login to come into effect):
-
- adduser USERNAME gnunet
-
-(run the above command as root once for each of your users, replacing
-"USERNAME" with the respective login names). If you have a global IP
-address, no further configuration is required.
-
-For more detailed setup instructions, see https://docs.gnunet.org/
-
-Optionally, download and compile gnunet-gtk to get a GUI for
-file-sharing and configuration. This is particularly recommended
-if your network setup is non-trivial, as gnunet-setup can be
-used to test in the GUI if your network configuration is working.
-gnunet-setup should be run as the "gnunet" user under X. As it
-does very little with the network, running it as "root" is likely
-also harmless. You can also run it as a normal user, but then
-you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
-home directory in the end.
-
-Once you have configured your peer, run (as the 'gnunet' user)
-
- gnunet-arm -s
-
-to start the peer. You can then run the various GNUnet-tools as
-your "normal" user (who should only be in the group 'gnunet').
+texinfo manual: ${texinfo_msg}
+transpiled mdocml manual: ${mdocml_msg}
])
+
+AS_IF([test x$MSG_USER_SETUP != xfalse],
+ [AC_MSG_WARN([Please make sure NOW to create a user and group 'gnunet' and additionally a group 'gnunetdns'. Make sure that '/var/lib/gnunet' is owned (and writable) by user 'gnunet'.])
+ AS_IF([test x$HAVE_GNUNET_USER != 0],
+ [AC_MSG_NOTICE([To do this on this system, run:
+# addgroup gnunetdns
+# adduser --system --disabled-login --home /var/lib/gnunet gnunet
+])])
+ AC_MSG_WARN([Each user of GNUnet should be added to the 'gnunet' group.])
+ AS_IF([test x$HAVE_GNUNET_USER != 0],
+ [AC_MSG_NOTICE([To do this on this system, run:
+# adduser USERNAME gnunet
+ for each of your users, replacing \"USERNAME\" with the respective login name. Users may have to login again for the changes to take effect.
+])])])
+
+AC_MSG_NOTICE([For detailed setup instructions, type 'info gnunet' after the installation or visit https://docs.gnunet.org/])