From 87040110ed85ca2f9eb09f34d430e9ae83ad98b1 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Thu, 21 Jun 2018 10:49:30 -0400 Subject: [PATCH] Use python interpreter specified configure script The configure script allows you to specify the python interpreter to use via the --with-python option. There were several places where the python interpreter was implicity invoked without using the specified version. This can create a number of problems in an environment with multiple python versions as is the case during the transition from Python 2 to Python 3. Python 2 is not compatible with Python 3. Lasso's Python code is supposed to be compatible with both versions. But during the build and when running the unit tests it is essential the same interpreter be used consistently otherwise you can have problems. This patch assures whenever python is invoked it does so via the $(PYTHON) configuration variable. What about shebang lines (e.g #/usr/bin/python) at the top of scripts? Python PEP 394 (https://www.python.org/dev/peps/pep-0394/) covers this. Basically it says if a script is compatible only with Py2 the shebang should be #/usr/bin/python2, if only compatible with Py3 the shebang should be #/usr/bin/python3. However, if the script is compatible with both versions it can continue to use the compatible with both Py2 and Py3. License: MIT Signed-off-by: John Dennis --- bindings/java/Makefile.am | 2 +- bindings/python/tests/Makefile.am | 3 +++ lasso/Makefile.am | 2 +- tools/check-lasso-sections.py | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/bindings/java/Makefile.am b/bindings/java/Makefile.am index 05e5f9ee..8de0178d 100644 --- a/bindings/java/Makefile.am +++ b/bindings/java/Makefile.am @@ -26,7 +26,7 @@ if WSF_ENABLED EXTRA_ARGS = --enable-id-wsf endif -java_lasso_source_files := $(shell python $(top_srcdir)/bindings/bindings.py -l java-list --src-dir=$(top_srcdir)/lasso/ $(EXTRA_ARGS) ) +java_lasso_source_files := $(shell $(PYTHON) $(top_srcdir)/bindings/bindings.py -l java-list --src-dir=$(top_srcdir)/lasso/ $(EXTRA_ARGS) ) lasso_jardir=$(prefix)/share/java lasso_jar_DATA=lasso.jar diff --git a/bindings/python/tests/Makefile.am b/bindings/python/tests/Makefile.am index 205e7613..1305f26f 100644 --- a/bindings/python/tests/Makefile.am +++ b/bindings/python/tests/Makefile.am @@ -11,5 +11,8 @@ if WSF_ENABLED TESTS += idwsf1_tests.py idwsf2_tests.py endif +TEST_EXTENSIONS = .py +PY_LOG_COMPILER = $(PYTHON) + EXTRA_DIST = profiles_tests.py binding_tests.py idwsf1_tests.py idwsf2_tests.py \ tests.py XmlTestRunner.py diff --git a/lasso/Makefile.am b/lasso/Makefile.am index 751f9419..49ae88a7 100644 --- a/lasso/Makefile.am +++ b/lasso/Makefile.am @@ -91,7 +91,7 @@ liblasso_la_LDFLAGS = -no-undefined -version-info @LASSO_VERSION_INFO@ \ endif $(srcdir)/errors.c: $(srcdir)/errors.h $(srcdir)/build_strerror.py - python $(srcdir)/build_strerror.py $(srcdir) >.errors.c.new + $(PYTHON) $(srcdir)/build_strerror.py $(srcdir) >.errors.c.new if ! cmp -s $(srcdir)/errors.c .errors.c.new; then \ mv -f .errors.c.new $@; else \ rm .errors.c.new; fi diff --git a/tools/check-lasso-sections.py b/tools/check-lasso-sections.py index cb4c39c4..3a6c9880 100755 --- a/tools/check-lasso-sections.py +++ b/tools/check-lasso-sections.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python import sys import os.path