[Xen-devel] [PATCH] tools/configure: Allow specifying python to be found from path

Ian Jackson posted 1 patch 6 years, 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/xen tags/patchew/20190918161406.19208-1-ian.jackson@eu.citrix.com
tools/configure    | 13 +++++++------
tools/configure.ac | 10 +++++-----
2 files changed, 12 insertions(+), 11 deletions(-)
[Xen-devel] [PATCH] tools/configure: Allow specifying python to be found from path
Posted by Ian Jackson 6 years, 1 month ago
./configure takes a PYTHON=... argument.  You can use this to specify
the python interpreter.  However, for no good reason, it expects an
absolute path.

Fix this.  The new logic is:
 * if not set, default to `python'
 * if not absolute, look it up with type -p
 * split into directory and executable name

The results in config/Tools.mk (which contains @PYTHON@ and
@PYTHONPATH@) are identical for both
  ./configure
  ./configure PYTHON=/usr/bin/python
so I assert this has no functional change except that now you can say
  ./configure PYTHON=python

In particular you can now say
  ./configure PYTHON=python2
  ./configure PYTHON=python3

The latter is useful if you want python3 (which should probably be the
default, but does not work right now).  The former is useful if you
want python2 but your distro has foolishly made "python" refer to
python3.

CC: Doug Goldstein <cardoe@cardoe.com>
CC: Wei Liu <wl@xen.org>
CC: George Dunlap <george.dunlap@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 tools/configure    | 13 +++++++------
 tools/configure.ac | 10 +++++-----
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/tools/configure b/tools/configure
index 1baacea9ac..f2c66dfce9 100755
--- a/tools/configure
+++ b/tools/configure
@@ -6925,16 +6925,17 @@ then
     as_fn_error $? "Unable to find bash, please install bash" "$LINENO" 5
 fi;;
 esac
+if test -z "$PYTHON"; then :
+  PYTHON="python"
+fi
 if echo "$PYTHON" | grep -q "^/"; then :
 
-    PYTHONPATH=$PYTHON
-    PYTHON=`basename $PYTHONPATH`
-
-elif test -z "$PYTHON"; then :
-  PYTHON="python"
 else
-  as_fn_error $? "PYTHON specified, but is not an absolute path" "$LINENO" 5
+  PYTHON=`type -p "$PYTHON"`
 fi
+PYTHONPATH=$PYTHON
+PYTHON=`basename $PYTHONPATH`
+
 # Extract the first word of "$PYTHON", so it can be a program name with args.
 set dummy $PYTHON; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
diff --git a/tools/configure.ac b/tools/configure.ac
index 3fe04907a2..674bd5809d 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -337,11 +337,11 @@ case "$host_os" in
   freebsd*) ;;
   *) AX_PATH_PROG_OR_FAIL([BASH], [bash]);;
 esac
-AS_IF([echo "$PYTHON" | grep -q "^/"], [
-    PYTHONPATH=$PYTHON
-    PYTHON=`basename $PYTHONPATH`
-],[test -z "$PYTHON"], [PYTHON="python"],
-[AC_MSG_ERROR([PYTHON specified, but is not an absolute path])])
+AS_IF([test -z "$PYTHON"], [PYTHON="python"])
+AS_IF([echo "$PYTHON" | grep -q "^/"], [], [PYTHON=`type -p "$PYTHON"`])
+PYTHONPATH=$PYTHON
+PYTHON=`basename $PYTHONPATH`
+
 AX_PATH_PROG_OR_FAIL([PYTHONPATH], [$PYTHON])
 AX_CHECK_PYTHON_VERSION([2], [6])
 
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] tools/configure: Allow specifying python to be found from path
Posted by Wei Liu 6 years, 1 month ago
On Wed, Sep 18, 2019 at 05:14:06PM +0100, Ian Jackson wrote:
> ./configure takes a PYTHON=... argument.  You can use this to specify
> the python interpreter.  However, for no good reason, it expects an
> absolute path.
> 
> Fix this.  The new logic is:
>  * if not set, default to `python'
>  * if not absolute, look it up with type -p
>  * split into directory and executable name
> 
> The results in config/Tools.mk (which contains @PYTHON@ and
> @PYTHONPATH@) are identical for both
>   ./configure
>   ./configure PYTHON=/usr/bin/python
> so I assert this has no functional change except that now you can say
>   ./configure PYTHON=python
> 
> In particular you can now say
>   ./configure PYTHON=python2
>   ./configure PYTHON=python3
> 
> The latter is useful if you want python3 (which should probably be the
> default, but does not work right now).  The former is useful if you
> want python2 but your distro has foolishly made "python" refer to
> python3.
> 
> CC: Doug Goldstein <cardoe@cardoe.com>
> CC: Wei Liu <wl@xen.org>
> CC: George Dunlap <george.dunlap@citrix.com>
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Wei Liu <wl@xen.org>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel