Polish the version strings containing the package version

Since commit 67a1de0d19 there is no space anymore between the
version number and the parentheses when running configure with
--with-pkgversion=foo :

 $ qemu-system-s390x --version
 QEMU emulator version 2.11.50(foo)

But the space is included when building without that option
when building from a git checkout:

 $ qemu-system-s390x --version
 QEMU emulator version 2.11.50 (v2.11.0-1494-gbec9c64-dirty)

The same confusion exists with the "query-version" QMP command.
Let's fix this by introducing a proper QEMU_FULL_VERSION definition
that includes the space and parentheses, while the QEMU_PKGVERSION
should just cleanly contain the package version string itself.
Note that this also changes the behavior of the "query-version" QMP
command (the space and parentheses are not included there anymore),
but that's supposed to be OK since the strings there are not meant
to be parsed by other tools.

Fixes: 67a1de0d19
Buglink: https://bugs.launchpad.net/qemu/+bug/1673373
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1518692807-25859-1-git-send-email-thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Thomas Huth 2018-02-15 12:06:47 +01:00 committed by Paolo Bonzini
parent 8cc436d9c5
commit 7e563bfb8a
11 changed files with 21 additions and 19 deletions

View File

@ -434,21 +434,23 @@ all: $(DOCS) $(TOOLS) $(HELPERS-y) recurse-all modules
qemu-version.h: FORCE qemu-version.h: FORCE
$(call quiet-command, \ $(call quiet-command, \
(cd $(SRC_PATH); \ (cd $(SRC_PATH); \
printf '#define QEMU_PKGVERSION '; \
if test -n "$(PKGVERSION)"; then \ if test -n "$(PKGVERSION)"; then \
printf '"$(PKGVERSION)"\n'; \ pkgvers="$(PKGVERSION)"; \
else \ else \
if test -d .git; then \ if test -d .git; then \
printf '" ('; \ pkgvers=$$(git describe --match 'v*' 2>/dev/null | tr -d '\n');\
git describe --match 'v*' 2>/dev/null | tr -d '\n'; \
if ! git diff-index --quiet HEAD &>/dev/null; then \ if ! git diff-index --quiet HEAD &>/dev/null; then \
printf -- '-dirty'; \ pkgvers="$${pkgvers}-dirty"; \
fi; \ fi; \
printf ')"\n'; \
else \
printf '""\n'; \
fi; \ fi; \
fi) > $@.tmp) fi; \
printf "#define QEMU_PKGVERSION \"$${pkgvers}\"\n"; \
if test -n "$${pkgvers}"; then \
printf '#define QEMU_FULL_VERSION QEMU_VERSION " (" QEMU_PKGVERSION ")"\n'; \
else \
printf '#define QEMU_FULL_VERSION QEMU_VERSION\n'; \
fi; \
) > $@.tmp)
$(call quiet-command, if ! cmp -s $@ $@.tmp; then \ $(call quiet-command, if ! cmp -s $@ $@.tmp; then \
mv $@.tmp $@; \ mv $@.tmp $@; \
else \ else \

View File

@ -649,7 +649,7 @@ void cpu_loop(CPUSPARCState *env)
static void usage(void) static void usage(void)
{ {
printf("qemu-" TARGET_NAME " version " QEMU_VERSION QEMU_PKGVERSION printf("qemu-" TARGET_NAME " version " QEMU_FULL_VERSION
"\n" QEMU_COPYRIGHT "\n" "\n" QEMU_COPYRIGHT "\n"
"usage: qemu-" TARGET_NAME " [options] program [arguments...]\n" "usage: qemu-" TARGET_NAME " [options] program [arguments...]\n"
"BSD CPU emulator (compiled for %s emulation)\n" "BSD CPU emulator (compiled for %s emulation)\n"

2
configure vendored
View File

@ -1163,7 +1163,7 @@ for opt do
;; ;;
--disable-blobs) blobs="no" --disable-blobs) blobs="no"
;; ;;
--with-pkgversion=*) pkgversion=" ($optarg)" --with-pkgversion=*) pkgversion="$optarg"
;; ;;
--with-coroutine=*) coroutine="$optarg" --with-coroutine=*) coroutine="$optarg"
;; ;;

View File

@ -4163,7 +4163,7 @@ static void handle_arg_strace(const char *arg)
static void handle_arg_version(const char *arg) static void handle_arg_version(const char *arg)
{ {
printf("qemu-" TARGET_NAME " version " QEMU_VERSION QEMU_PKGVERSION printf("qemu-" TARGET_NAME " version " QEMU_FULL_VERSION
"\n" QEMU_COPYRIGHT "\n"); "\n" QEMU_COPYRIGHT "\n");
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
} }

View File

@ -46,7 +46,7 @@
#include "crypto/init.h" #include "crypto/init.h"
#include "trace/control.h" #include "trace/control.h"
#define QEMU_IMG_VERSION "qemu-img version " QEMU_VERSION QEMU_PKGVERSION \ #define QEMU_IMG_VERSION "qemu-img version " QEMU_FULL_VERSION \
"\n" QEMU_COPYRIGHT "\n" "\n" QEMU_COPYRIGHT "\n"
typedef struct img_cmd_t { typedef struct img_cmd_t {

View File

@ -558,7 +558,7 @@ int main(int argc, char **argv)
trace_file = trace_opt_parse(optarg); trace_file = trace_opt_parse(optarg);
break; break;
case 'V': case 'V':
printf("%s version " QEMU_VERSION QEMU_PKGVERSION "\n" printf("%s version " QEMU_FULL_VERSION "\n"
QEMU_COPYRIGHT "\n", progname); QEMU_COPYRIGHT "\n", progname);
exit(0); exit(0);
case 'h': case 'h':

View File

@ -130,7 +130,7 @@ QEMU_HELP_BOTTOM "\n"
static void version(const char *name) static void version(const char *name)
{ {
printf( printf(
"%s " QEMU_VERSION QEMU_PKGVERSION "\n" "%s " QEMU_FULL_VERSION "\n"
"Written by Anthony Liguori.\n" "Written by Anthony Liguori.\n"
"\n" "\n"
QEMU_COPYRIGHT "\n" QEMU_COPYRIGHT "\n"

View File

@ -218,7 +218,7 @@ static void usage(const char *cmd)
{ {
printf( printf(
"Usage: %s [-m <method> -p <path>] [<options>]\n" "Usage: %s [-m <method> -p <path>] [<options>]\n"
"QEMU Guest Agent " QEMU_VERSION QEMU_PKGVERSION "\n" "QEMU Guest Agent " QEMU_FULL_VERSION "\n"
QEMU_COPYRIGHT "\n" QEMU_COPYRIGHT "\n"
"\n" "\n"
" -m, --method transport method: one of unix-listen, virtio-serial,\n" " -m, --method transport method: one of unix-listen, virtio-serial,\n"

View File

@ -102,7 +102,7 @@ QEMU_HELP_BOTTOM "\n"
static void version(const char *name) static void version(const char *name)
{ {
printf( printf(
"%s " QEMU_VERSION QEMU_PKGVERSION "\n" "%s " QEMU_FULL_VERSION "\n"
"Written by Paolo Bonzini.\n" "Written by Paolo Bonzini.\n"
"\n" "\n"
QEMU_COPYRIGHT "\n" QEMU_COPYRIGHT "\n"

View File

@ -1330,7 +1330,7 @@ QemuCocoaView *cocoaView;
/* Create the version string*/ /* Create the version string*/
NSString *version_string; NSString *version_string;
version_string = [[NSString alloc] initWithFormat: version_string = [[NSString alloc] initWithFormat:
@"QEMU emulator version %s%s", QEMU_VERSION, QEMU_PKGVERSION]; @"QEMU emulator version %s", QEMU_FULL_VERSION];
[version_label setStringValue: version_string]; [version_label setStringValue: version_string];
[superView addSubview: version_label]; [superView addSubview: version_label];

2
vl.c
View File

@ -1948,7 +1948,7 @@ static void main_loop(void)
static void version(void) static void version(void)
{ {
printf("QEMU emulator version " QEMU_VERSION QEMU_PKGVERSION "\n" printf("QEMU emulator version " QEMU_FULL_VERSION "\n"
QEMU_COPYRIGHT "\n"); QEMU_COPYRIGHT "\n");
} }