gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnunet] branch master updated: Switch to python3.7 (integr


From: gnunet
Subject: [GNUnet-SVN] [gnunet] branch master updated: Switch to python3.7 (integration-tests incomplete), continue using python2.7 for gnunet-qr with an incredible annoying workaround for autotools inability to deal with 2 major python versions at the same time
Date: Thu, 14 Feb 2019 17:41:30 +0100

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new 783ac3513 Switch to python3.7 (integration-tests incomplete), continue 
using python2.7 for gnunet-qr with an incredible annoying workaround for 
autotools inability to deal with 2 major python versions at the same time
     new c671d6608 Merge branch 'master' of gnunet.org:gnunet
783ac3513 is described below

commit 783ac3513030b6006d117f156cfc068148757bcf
Author: ng0 <address@hidden>
AuthorDate: Thu Feb 14 16:41:09 2019 +0000

    Switch to python3.7 (integration-tests incomplete), continue using 
python2.7 for gnunet-qr with an incredible annoying workaround for autotools 
inability to deal with 2 major python versions at the same time
    
    Signed-off-by: ng0 <address@hidden>
---
 bootstrap                | 40 ++++++++++++++++++++++++++++++++++++++++
 configure.ac             | 13 ++++++++-----
 src/util/.gitignore      |  1 +
 src/util/Makefile.am     |  4 +++-
 src/util/gnunet-qr.py.in |  2 +-
 5 files changed, 53 insertions(+), 7 deletions(-)

diff --git a/bootstrap b/bootstrap
index 3155cff61..8fb025599 100755
--- a/bootstrap
+++ b/bootstrap
@@ -19,3 +19,43 @@ else
     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 
diff --git a/configure.ac b/configure.ac
index f53d65006..5f10599be 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 # 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
@@ -206,6 +206,13 @@ AM_CONDITIONAL(HAVE_SSH_BINARY, $VAR_SSH_BINARY)
 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)
 
@@ -1208,10 +1215,6 @@ AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
 # 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])
diff --git a/src/util/.gitignore b/src/util/.gitignore
index 7b190ca76..dfa6c7947 100644
--- a/src/util/.gitignore
+++ b/src/util/.gitignore
@@ -73,3 +73,4 @@ test_hexcoder
 test_regex
 test_tun
 gnunet-timeout
+python27_location
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index fd00b077d..1e82ec73a 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -226,7 +226,9 @@ gnunet_timeout_SOURCES = \
 endif
 
 
-do_subst = $(SED) -e 's,address@hidden@],$(PYTHON),g'
+mypython27=$(shell cat $(top_srcdir)/src/util/python27_location)
+
+do_subst = $(SED) -e 's,address@hidden@],${mypython27},g'
 
 gnunet-qr: gnunet-qr.py.in Makefile
        $(do_subst) < $(top_srcdir)/src/util/gnunet-qr.py.in > gnunet-qr
diff --git a/src/util/gnunet-qr.py.in b/src/util/gnunet-qr.py.in
index 6c9d208f7..0d52bed53 100755
--- a/src/util/gnunet-qr.py.in
+++ b/src/util/gnunet-qr.py.in
@@ -1,4 +1,4 @@
address@hidden@
address@hidden@
 from __future__ import print_function
 from builtins import str
 import sys

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]