diff mbox

configure: Insist on a Python 2, not Python 3

Message ID 1334254192-26204-1-git-send-email-peter.maydell@linaro.org
State Accepted
Commit 6ccea1e4d9a39d0bcf5be5a7b49270c2132b9dcb
Headers show

Commit Message

Peter Maydell April 12, 2012, 6:09 p.m. UTC
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>
---
 configure |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

Comments

Stefan Hajnoczi April 13, 2012, 9:01 a.m. UTC | #1
On Thu, Apr 12, 2012 at 07:09:52PM +0100, Peter Maydell wrote:
> 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>
> ---
>  configure |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)

Thanks, applied to the trivial patches tree:
https://github.com/stefanha/qemu/commits/trivial-patches

Stefan
diff mbox

Patch

diff --git a/configure b/configure
index e05f34b..1d5ab07 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