qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2] configure: eliminate Python dependency for --help
@ 2017-03-28 13:44 Stefan Hajnoczi
  2017-03-28 13:45 ` Peter Maydell
  2017-03-29 10:30 ` Stefan Hajnoczi
  0 siblings, 2 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2017-03-28 13:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Stefan Hajnoczi

The ./configure script should produce --help output even if Python is
not installed.

Listing trace backends is simple: show the names of all Python modules
in scripts/tracetool/backend/ whose source code contains 'PUBLIC =
True'.

Perform the backend enumeration in shell instead of Python so that we
can move the Python check until after ./configure --help.

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
v2:
 * Make grep regex portable [Peter]
 * Enumerate trace backends outside help text [Peter]

 configure | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/configure b/configure
index d1ce33b..2c31665 100755
--- a/configure
+++ b/configure
@@ -1186,21 +1186,6 @@ for opt do
   esac
 done
 
-if ! has $python; then
-  error_exit "Python not found. Use --python=/path/to/python"
-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 < (2,6) or sys.version_info >= (3,))'; then
-  error_exit "Cannot use '$python', Python 2.6 or later is required." \
-      "Note that Python 3 or later is not yet supported." \
-      "Use --python=/path/to/python to specify a supported Python."
-fi
-
-# Suppress writing compiled files
-python="$python -B"
-
 case "$cpu" in
     ppc)
            CPU_CFLAGS="-m32"
@@ -1275,6 +1260,9 @@ for config in $mak_wilds; do
     default_target_list="${default_target_list} $(basename "$config" .mak)"
 done
 
+# Enumerate public trace backends for --help output
+trace_backend_list=$(echo $(grep -le '^PUBLIC = True$' scripts/tracetool/backend/*.py | sed -e 's/^.*\/\(.*\)\.py$/\1/'))
+
 if test x"$show_help" = x"yes" ; then
 cat << EOF
 
@@ -1328,7 +1316,7 @@ Advanced options (experts only):
                            set block driver read-only whitelist
                            (affects only QEMU, not qemu-img)
   --enable-trace-backends=B Set trace backend
-                           Available backends: $($python $source_path/scripts/tracetool.py --list-backends)
+                           Available backends: $trace_backend_list
   --with-trace-file=NAME   Full PATH,NAME of file to store traces
                            Default:trace-<pid>
   --disable-slirp          disable SLIRP userspace network connectivity
@@ -1428,6 +1416,21 @@ EOF
 exit 0
 fi
 
+if ! has $python; then
+  error_exit "Python not found. Use --python=/path/to/python"
+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 < (2,6) or sys.version_info >= (3,))'; then
+  error_exit "Cannot use '$python', Python 2.6 or later is required." \
+      "Note that Python 3 or later is not yet supported." \
+      "Use --python=/path/to/python to specify a supported Python."
+fi
+
+# Suppress writing compiled files
+python="$python -B"
+
 # Now we have handled --enable-tcg-interpreter and know we're not just
 # printing the help message, bail out if the host CPU isn't supported.
 if test "$ARCH" = "unknown"; then
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH v2] configure: eliminate Python dependency for --help
  2017-03-28 13:44 [Qemu-devel] [PATCH v2] configure: eliminate Python dependency for --help Stefan Hajnoczi
@ 2017-03-28 13:45 ` Peter Maydell
  2017-03-29 10:30 ` Stefan Hajnoczi
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2017-03-28 13:45 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: QEMU Developers

On 28 March 2017 at 14:44, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The ./configure script should produce --help output even if Python is
> not installed.
>
> Listing trace backends is simple: show the names of all Python modules
> in scripts/tracetool/backend/ whose source code contains 'PUBLIC =
> True'.
>
> Perform the backend enumeration in shell instead of Python so that we
> can move the Python check until after ./configure --help.
>
> Reported-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH v2] configure: eliminate Python dependency for --help
  2017-03-28 13:44 [Qemu-devel] [PATCH v2] configure: eliminate Python dependency for --help Stefan Hajnoczi
  2017-03-28 13:45 ` Peter Maydell
@ 2017-03-29 10:30 ` Stefan Hajnoczi
  1 sibling, 0 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2017-03-29 10:30 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

[-- Attachment #1: Type: text/plain, Size: 916 bytes --]

On Tue, Mar 28, 2017 at 02:44:18PM +0100, Stefan Hajnoczi wrote:
> The ./configure script should produce --help output even if Python is
> not installed.
> 
> Listing trace backends is simple: show the names of all Python modules
> in scripts/tracetool/backend/ whose source code contains 'PUBLIC =
> True'.
> 
> Perform the backend enumeration in shell instead of Python so that we
> can move the Python check until after ./configure --help.
> 
> Reported-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> v2:
>  * Make grep regex portable [Peter]
>  * Enumerate trace backends outside help text [Peter]
> 
>  configure | 35 +++++++++++++++++++----------------
>  1 file changed, 19 insertions(+), 16 deletions(-)

Thanks, applied to my tracing-next tree for QEMU 2.10:
https://github.com/stefanha/qemu/commits/tracing-next

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-03-29 10:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-28 13:44 [Qemu-devel] [PATCH v2] configure: eliminate Python dependency for --help Stefan Hajnoczi
2017-03-28 13:45 ` Peter Maydell
2017-03-29 10:30 ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).