summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorng0 <ng0@n0.is>2019-02-26 08:35:45 +0000
committerng0 <ng0@n0.is>2019-02-26 08:35:45 +0000
commit5f80de3fbc0c4b43fb93d0ef4460aea16b2c78e0 (patch)
tree74e83f28ea8198bb1e934a770a6f082bd3ea7984
parent689614a7e51f4fda776e99aa5892811fa5923b2d (diff)
Proposed fix for https://bugs.gnunet.org/view.php?id=5611
-rw-r--r--src/util/Makefile.am27
-rwxr-xr-xsrc/util/gnunet-qr.in46
-rwxr-xr-xsrc/util/gnunet-qr.py (renamed from src/util/gnunet-qr.py.in)1
3 files changed, 56 insertions, 18 deletions
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index d1aa8aa9b..7041004ac 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -204,8 +204,15 @@ libexec_PROGRAMS = \
gnunet-timeout \
$(W32CONSOLEHELPER)
+do_subst = $(SED) -e 's,[@]PREFIX[@],$(PREFIX),g'
+
+gnunet-qr: gnunet-qr.in Makefile
+ $(do_subst) < $(srcdir)/gnunet-qr.in > gnunet-qr
+ chmod +x gnunet-qr
+
bin_SCRIPTS =\
- gnunet-qr
+ gnunet-qr \
+ gnunet-qr.py
bin_PROGRAMS = \
gnunet-resolver \
@@ -236,21 +243,6 @@ gnunet_timeout_SOURCES = \
gnunet-timeout-w32.c
endif
-# This is horrible, but compared to the alternatives and the solution
-# which preceded this it is a good compromise and good enough for one
-# file. Everyone else is invited to patch it locally.
-# In case someone reads this file and is wondering about the
-# assignment operator below, it's explained here:
-# https://lists.gnu.org/archive/html/make-w32/2013-10/msg00021.html
-
-xENV != which env
-
-do_subst = $(SED) -e 's,[@]ENV[@],${xENV},g'
-
-gnunet-qr: gnunet-qr.py.in Makefile
- $(do_subst) < $(top_srcdir)/src/util/gnunet-qr.py.in > gnunet-qr
- chmod +x gnunet-qr
-
gnunet_service_resolver_SOURCES = \
gnunet-service-resolver.c
gnunet_service_resolver_LDADD = \
@@ -675,4 +667,5 @@ EXTRA_DIST = \
test_resolver_api_data.conf \
test_service_data.conf \
test_speedup_data.conf \
- gnunet-qr.py.in
+ gnunet-qr.py \
+ gnunet-qr.in
diff --git a/src/util/gnunet-qr.in b/src/util/gnunet-qr.in
new file mode 100755
index 000000000..5e7a285ac
--- /dev/null
+++ b/src/util/gnunet-qr.in
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# From curl's buildconf, making this script subject to the
+# curl license: https://curl.haxx.se/docs/copyright.html
+# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2019 GNUnet e.V.
+
+# findtool works like which without relying on which (which is a problem
+# for some limited shells.
+findtool(){
+ file="$1"
+
+ if { echo "$file" | grep "/" >/dev/null 2>&1; } then
+ # when file is given with a path check it first
+ if test -f "$file"; then
+ echo "$file"
+ return
+ fi
+ fi
+
+ old_IFS=$IFS; IFS=':'
+ for path in $PATH
+ do
+ IFS=$old_IFS
+ # echo "checks for $file in $path" >&2
+ if test "$path" -a "$path" != '.' -a -f "$path/$file"; then
+ echo "$path/$file"
+ return
+ fi
+ done
+ IFS=$old_IFS
+}
+
+# end curl licensed code
+pythonize=`findtool python2.7 2>/dev/null`
+if test ! -x "$pythonize"; then
+ pythonize=`findtool ${PYTHON2:-python2.7}`
+fi
+
+if test -z "$pythonize"; then
+ echo "ERROR: python2.7 not found."
+ echo " You need python2.7 installed."
+ exit 1
+fi
+
+${pythonize} @PREFIX@/bin/gnunet-qr.py || echo "ERROR: python2.7 or future not found" && exit 1
diff --git a/src/util/gnunet-qr.py.in b/src/util/gnunet-qr.py
index ceed8bd77..bf35b3a7e 100755
--- a/src/util/gnunet-qr.py.in
+++ b/src/util/gnunet-qr.py
@@ -1,4 +1,3 @@
-#!@ENV@ python2.7
from __future__ import print_function
from builtins import str
import sys