qemu -version output is incorrect with configure --with-pkgversion
Bug #1673373 reported by
Jordan Justen
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Jordan Justen |
Bug Description
Since qemu v2.7.0, up to the current master
(1883ff34b540da
the pkgversion feature appears to have a bug:
$ ./configure --target-
Results in this output:
$ x86_64-
QEMU emulator version 2.8.90(foo)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
This appears to have been introduced in:
67a1de0d19 Makefile: Derive "PKGVERSION" from "git describe" by default
The previous commit (077de81a4c) produces this output:
$ x86_64-
QEMU emulator version 2.6.50 (foo), Copyright (c) 2003-2008 Fabrice Bellard
Changed in qemu: | |
assignee: | nobody → Jordan Justen (jljusten) |
To post a comment you must log in.
On 16 March 2017 at 09:00, Jordan Justen <email address hidden> wrote: pkgversion= foo option is used, the output /bugs.launchpad .net/bugs/ 1673373 .c9df119798 100644 "\n'; \ .e94b06b5fc 100755 pkgversion= *) pkgversion=" ($optarg)" pkgversion= *) pkgversion= "($optarg) " .3e60e61905 100644
> This appears to have regressed in 67a1de0d19.
>
> When the configure --with-
> from -version will look like:
>
> QEMU emulator version 2.8.90(foo)
> Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
>
> After this patch, it will be:
>
> QEMU emulator version 2.8.90 (foo)
> Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
>
> Cc: Paolo Bonzini <email address hidden>
> Cc: Fam Zheng <email address hidden>
> Fixes: https:/
> Cc: <email address hidden>
> Signed-off-by: Jordan Justen <email address hidden>
> ---
> Makefile | 2 +-
> configure | 2 +-
> vl.c | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 1c4c04f6f2.
> --- a/Makefile
> +++ b/Makefile
> @@ -289,7 +289,7 @@ qemu-version.h: FORCE
> printf '"$(PKGVERSION)
> else \
> if test -d .git; then \
> - printf '" ('; \
> + printf '"('; \
> git describe --match 'v*' 2>/dev/null | tr -d '\n'; \
> if ! git diff-index --quiet HEAD &>/dev/null; then \
> printf -- '-dirty'; \
> diff --git a/configure b/configure
> index 99d8bece70.
> --- a/configure
> +++ b/configure
> @@ -1004,7 +1004,7 @@ for opt do
> ;;
> --disable-blobs) blobs="no"
> ;;
> - --with-
> + --with-
> ;;
> --with-coroutine=*) coroutine="$optarg"
> ;;
> diff --git a/vl.c b/vl.c
> index 0b4ed5241c.
> --- a/vl.c
> +++ b/vl.c
> @@ -1904,7 +1904,7 @@ static void main_loop(void)
>
> static void version(void)
> {
> - printf("QEMU emulator version " QEMU_VERSION QEMU_PKGVERSION "\n"
> + printf("QEMU emulator version " QEMU_VERSION " " QEMU_PKGVERSION "\n"
> QEMU_COPYRIGHT "\n");
> }
This is not the only place where we assemble a string from
QEMU_VERSION QEMU_PKGVERSION, so if you want to change from the
original approach where QEMU_PKGVERSION had a space in it then
you need to change the other places too.
Also it looks like we return QEMU_PKGVERSION as part of the
QMP qmp_query_version() code, so we should check to see what
the expected behaviour there is regarding having the space
or not.
I think when I wrote those printfs I was expecting that
QEMU_PKGVERSION might be a "-something" kind of string,
and so did whoever wrote the commit log for 67a1de0d19.
However looking at git history it seems to have always been
a " (something)" format, so obviously some confusion here...
thanks
-- PMM