echo "*** No libtoolize (libtool) or libtool found, please install it ***" >&2;
exit 1
fi
+
+# autotools is being incredible stupid with multiple python versions
+# what we do here is check for a functional python 2.7 which reports
+# back to be a real python 2.7, then later on sed the location in
+# the only python 2.7 file we keep around
+# the rest of the build system can then be happy detecting 3.7 or
+# higher
+# this checks a range of names which is as annoying as what autotools
+# is doing
+# Since everything we could try is do too much work, we will assume
+# that python2 OR python2.7 are the names for python 2.7.
+# If your system diverges, please sed it accordingly!
+echo "save python 2.7 location into src/util/python27_location"
+#if existence python2 || existence python2.7; then
+# echo command -v
+python_version()
+{
+ "$1" -c "print(__import__('sys').version)" | grep -Z "2.7" | cut -c1-3
+}
+
+if existence python; then
+ if [ ! -z "${python_version} python" ]; then
+ loc1=$(command -v python)
+ echo "$loc1" >./src/util/python27_location
+ fi
+elif existence python2; then
+ if [ ! -z "${python_version} python2" ]; then
+ loc2=$(command -v python2)
+ echo "$loc2" >./src/util/python27_location
+ fi
+elif existence python2.7; then
+ if [ ! -z "${python_version} python2.7" ]; then
+ loc3=$(command -v python2.7)
+ echo "$loc3" >./src/util/python27_location
+ fi
+else
+ echo "*** No python 2.7 binary found, please install it" >&2
+ echo "*** for the optional gnunet-qr to work." >&2
+ echo "*** Make sure to install a matching python future module." >&2
+fi
# This file is part of GNUnet.
-# (C) 2001--2018 GNUnet e.V.
+# (C) 2001--2019 GNUnet e.V.
#
# GNUnet is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published
AM_CONDITIONAL(HAVE_SSH_KEY, ssh -D 12345 -o "BatchMode yes" -o "UserKnownHostsFile /tmp/gnunet_test_cosks_ssh_garbage" -o "StrictHostKeyChecking no" 127.0.0.1 echo -n)
rm -f /tmp/gnunet_test_cosks_ssh_garbage
+# autotools' m4 for python has no maximum version!
+# python3.7 for tests
+m4_define_default([_AM_PYTHON_INTERPRETER_LIST],[python3 python3.7 python])
+AM_PATH_PYTHON([3.7],, [:])
+AC_SUBST([PYTHON])
+AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
+
# iptables is a soft requirement to run tests
AC_PATH_TARGET_TOOL(VAR_IPTABLES_BINARY, iptables, false)
# restore LIBS
LIBS=$SAVE_LIBS
-# check for python & pexpect (used for some testcases only)
-AM_PATH_PYTHON([2.6],, [:])
-AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
-
# check for gettext
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.18.1])
endif
-do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g'
+mypython27=$(shell cat $(top_srcdir)/src/util/python27_location)
+
+do_subst = $(SED) -e 's,[@]PYTHON2[@],${mypython27},g'
gnunet-qr: gnunet-qr.py.in Makefile
$(do_subst) < $(top_srcdir)/src/util/gnunet-qr.py.in > gnunet-qr