Patchwork [6/6] configure: Insist on a Python 2, not Python 3

login
register
mail settings
Submitter Stefan Hajnoczi
Date April 13, 2012, 9:39 a.m.
Message ID <1334309956-31827-7-git-send-email-stefanha@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/152270/
State New
Headers show

Comments

Stefan Hajnoczi - April 13, 2012, 9:39 a.m.
From: Peter Maydell <peter.maydell@linaro.org>

Our Python scripts require Python 2 and will fail on Python 3, eg:
  File "/home/petmay01/linaro/qemu-from-laptop/qemu/scripts/qapi-commands.py", line 378
      except getopt.GetoptError, err:
                               ^
  SyntaxError: invalid syntax

Add a check to configure that Python is not a Python 3, so we can
fail with a comprehensible error rather than an obscure one.

Reported-by: Boris Matti <swiftos@lavabit.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
---
 configure |    8 ++++++++
 1 file changed, 8 insertions(+)

Patch

diff --git a/configure b/configure
index b392c6f..1d94acd 100755
--- a/configure
+++ b/configure
@@ -1242,6 +1242,14 @@  if ! has $python; then
   exit 1
 fi
 
+# Note that if the Python conditional here evaluates True we will exit
+# with status 1 which is a shell 'false' value.
+if ! "$python" -c 'import sys; sys.exit(sys.version_info[0] >= 3)'; then
+  echo "Python 2 required but '$python' is version 3 or better."
+  echo "Use --python=/path/to/python to specify a Python 2."
+  exit 1
+fi
+
 if test -z "$target_list" ; then
     target_list="$default_target_list"
 else