All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Polish the version strings containing the package version
@ 2018-02-15 11:06 Thomas Huth
  2018-02-15 14:38 ` Eric Blake
  2018-03-08 18:43 ` Paolo Bonzini
  0 siblings, 2 replies; 4+ messages in thread
From: Thomas Huth @ 2018-02-15 11:06 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Peter Maydell, Eric Blake, Daniel P. Berrangé

Since commit 67a1de0d195a 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: 67a1de0d195a6185c39b436159c9ffc7720bf979
Buglink: https://bugs.launchpad.net/qemu/+bug/1673373
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 Makefile              | 20 +++++++++++---------
 bsd-user/main.c       |  2 +-
 configure             |  2 +-
 linux-user/main.c     |  2 +-
 qemu-img.c            |  2 +-
 qemu-io.c             |  2 +-
 qemu-nbd.c            |  2 +-
 qga/main.c            |  2 +-
 scsi/qemu-pr-helper.c |  2 +-
 ui/cocoa.m            |  2 +-
 vl.c                  |  2 +-
 11 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/Makefile b/Makefile
index b5a6d60..e6afe5c 100644
--- a/Makefile
+++ b/Makefile
@@ -367,21 +367,23 @@ all: $(DOCS) $(TOOLS) $(HELPERS-y) recurse-all modules
 qemu-version.h: FORCE
 	$(call quiet-command, \
 		(cd $(SRC_PATH); \
-		printf '#define QEMU_PKGVERSION '; \
 		if test -n "$(PKGVERSION)"; then \
-			printf '"$(PKGVERSION)"\n'; \
+			pkgvers="$(PKGVERSION)"; \
 		else \
 			if test -d .git; then \
-				printf '" ('; \
-				git describe --match 'v*' 2>/dev/null | tr -d '\n'; \
+				pkgvers=$$(git describe --match 'v*' 2>/dev/null | tr -d '\n');\
 				if ! git diff-index --quiet HEAD &>/dev/null; then \
-					printf -- '-dirty'; \
+					pkgvers="$${pkgvers}-dirty"; \
 				fi; \
-				printf ')"\n'; \
-			else \
-				printf '""\n'; \
 			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 \
 	  mv $@.tmp $@; \
 	 else \
diff --git a/bsd-user/main.c b/bsd-user/main.c
index efef5ff..05aa559 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -649,7 +649,7 @@ void cpu_loop(CPUSPARCState *env)
 
 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"
            "usage: qemu-" TARGET_NAME " [options] program [arguments...]\n"
            "BSD CPU emulator (compiled for %s emulation)\n"
diff --git a/configure b/configure
index 913e148..5be086a 100755
--- a/configure
+++ b/configure
@@ -1160,7 +1160,7 @@ for opt do
   ;;
   --disable-blobs) blobs="no"
   ;;
-  --with-pkgversion=*) pkgversion=" ($optarg)"
+  --with-pkgversion=*) pkgversion="$optarg"
   ;;
   --with-coroutine=*) coroutine="$optarg"
   ;;
diff --git a/linux-user/main.c b/linux-user/main.c
index 7de0e02..dfd4c98 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -4068,7 +4068,7 @@ static void handle_arg_strace(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");
     exit(EXIT_SUCCESS);
 }
diff --git a/qemu-img.c b/qemu-img.c
index 56edc15..e56a15d 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -46,7 +46,7 @@
 #include "crypto/init.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"
 
 typedef struct img_cmd_t {
diff --git a/qemu-io.c b/qemu-io.c
index f554ab6..b0efa96 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -534,7 +534,7 @@ int main(int argc, char **argv)
             trace_file = trace_opt_parse(optarg);
             break;
         case 'V':
-            printf("%s version " QEMU_VERSION QEMU_PKGVERSION "\n"
+            printf("%s version " QEMU_FULL_VERSION "\n"
                    QEMU_COPYRIGHT "\n", progname);
             exit(0);
         case 'h':
diff --git a/qemu-nbd.c b/qemu-nbd.c
index ed5d9b5..0af0560 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -130,7 +130,7 @@ QEMU_HELP_BOTTOM "\n"
 static void version(const char *name)
 {
     printf(
-"%s " QEMU_VERSION QEMU_PKGVERSION "\n"
+"%s " QEMU_FULL_VERSION "\n"
 "Written by Anthony Liguori.\n"
 "\n"
 QEMU_COPYRIGHT "\n"
diff --git a/qga/main.c b/qga/main.c
index cb434d8..a877b30 100644
--- a/qga/main.c
+++ b/qga/main.c
@@ -218,7 +218,7 @@ static void usage(const char *cmd)
 {
     printf(
 "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"
 "\n"
 "  -m, --method      transport method: one of unix-listen, virtio-serial,\n"
diff --git a/scsi/qemu-pr-helper.c b/scsi/qemu-pr-helper.c
index 9fe615c..3facbba 100644
--- a/scsi/qemu-pr-helper.c
+++ b/scsi/qemu-pr-helper.c
@@ -102,7 +102,7 @@ QEMU_HELP_BOTTOM "\n"
 static void version(const char *name)
 {
     printf(
-"%s " QEMU_VERSION QEMU_PKGVERSION "\n"
+"%s " QEMU_FULL_VERSION "\n"
 "Written by Paolo Bonzini.\n"
 "\n"
 QEMU_COPYRIGHT "\n"
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 51db47c..a9e173a 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -1330,7 +1330,7 @@ QemuCocoaView *cocoaView;
     /* Create the version string*/
     NSString *version_string;
     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];
     [superView addSubview: version_label];
 
diff --git a/vl.c b/vl.c
index 2187849..6740c27 100644
--- a/vl.c
+++ b/vl.c
@@ -1942,7 +1942,7 @@ static void main_loop(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");
 }
 
-- 
1.8.3.1

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

* Re: [Qemu-devel] [PATCH] Polish the version strings containing the package version
  2018-02-15 11:06 [Qemu-devel] [PATCH] Polish the version strings containing the package version Thomas Huth
@ 2018-02-15 14:38 ` Eric Blake
  2018-03-08 18:21   ` Thomas Huth
  2018-03-08 18:43 ` Paolo Bonzini
  1 sibling, 1 reply; 4+ messages in thread
From: Eric Blake @ 2018-02-15 14:38 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel
  Cc: Paolo Bonzini, Peter Maydell, Daniel P. Berrangé

On 02/15/2018 05:06 AM, Thomas Huth wrote:
> Since commit 67a1de0d195a 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: 67a1de0d195a6185c39b436159c9ffc7720bf979
> Buglink: https://bugs.launchpad.net/qemu/+bug/1673373
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---

I like it!

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

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

* Re: [Qemu-devel] [PATCH] Polish the version strings containing the package version
  2018-02-15 14:38 ` Eric Blake
@ 2018-03-08 18:21   ` Thomas Huth
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Huth @ 2018-03-08 18:21 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini; +Cc: Eric Blake, Peter Maydell

On 15.02.2018 15:38, Eric Blake wrote:
> On 02/15/2018 05:06 AM, Thomas Huth wrote:
>> Since commit 67a1de0d195a 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: 67a1de0d195a6185c39b436159c9ffc7720bf979
>> Buglink: https://bugs.launchpad.net/qemu/+bug/1673373
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
> 
> I like it!
> 
> Reviewed-by: Eric Blake <eblake@redhat.com>

Ping!

Paolo, could you maybe take this through your misc tree?

 Thomas

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

* Re: [Qemu-devel] [PATCH] Polish the version strings containing the package version
  2018-02-15 11:06 [Qemu-devel] [PATCH] Polish the version strings containing the package version Thomas Huth
  2018-02-15 14:38 ` Eric Blake
@ 2018-03-08 18:43 ` Paolo Bonzini
  1 sibling, 0 replies; 4+ messages in thread
From: Paolo Bonzini @ 2018-03-08 18:43 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel
  Cc: Peter Maydell, Eric Blake, Daniel P. Berrangé

On 15/02/2018 12:06, Thomas Huth wrote:
> Since commit 67a1de0d195a 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: 67a1de0d195a6185c39b436159c9ffc7720bf979
> Buglink: https://bugs.launchpad.net/qemu/+bug/1673373
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  Makefile              | 20 +++++++++++---------
>  bsd-user/main.c       |  2 +-
>  configure             |  2 +-
>  linux-user/main.c     |  2 +-
>  qemu-img.c            |  2 +-
>  qemu-io.c             |  2 +-
>  qemu-nbd.c            |  2 +-
>  qga/main.c            |  2 +-
>  scsi/qemu-pr-helper.c |  2 +-
>  ui/cocoa.m            |  2 +-
>  vl.c                  |  2 +-
>  11 files changed, 21 insertions(+), 19 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index b5a6d60..e6afe5c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -367,21 +367,23 @@ all: $(DOCS) $(TOOLS) $(HELPERS-y) recurse-all modules
>  qemu-version.h: FORCE
>  	$(call quiet-command, \
>  		(cd $(SRC_PATH); \
> -		printf '#define QEMU_PKGVERSION '; \
>  		if test -n "$(PKGVERSION)"; then \
> -			printf '"$(PKGVERSION)"\n'; \
> +			pkgvers="$(PKGVERSION)"; \
>  		else \
>  			if test -d .git; then \
> -				printf '" ('; \
> -				git describe --match 'v*' 2>/dev/null | tr -d '\n'; \
> +				pkgvers=$$(git describe --match 'v*' 2>/dev/null | tr -d '\n');\
>  				if ! git diff-index --quiet HEAD &>/dev/null; then \
> -					printf -- '-dirty'; \
> +					pkgvers="$${pkgvers}-dirty"; \
>  				fi; \
> -				printf ')"\n'; \
> -			else \
> -				printf '""\n'; \
>  			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 \
>  	  mv $@.tmp $@; \
>  	 else \
> diff --git a/bsd-user/main.c b/bsd-user/main.c
> index efef5ff..05aa559 100644
> --- a/bsd-user/main.c
> +++ b/bsd-user/main.c
> @@ -649,7 +649,7 @@ void cpu_loop(CPUSPARCState *env)
>  
>  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"
>             "usage: qemu-" TARGET_NAME " [options] program [arguments...]\n"
>             "BSD CPU emulator (compiled for %s emulation)\n"
> diff --git a/configure b/configure
> index 913e148..5be086a 100755
> --- a/configure
> +++ b/configure
> @@ -1160,7 +1160,7 @@ for opt do
>    ;;
>    --disable-blobs) blobs="no"
>    ;;
> -  --with-pkgversion=*) pkgversion=" ($optarg)"
> +  --with-pkgversion=*) pkgversion="$optarg"
>    ;;
>    --with-coroutine=*) coroutine="$optarg"
>    ;;
> diff --git a/linux-user/main.c b/linux-user/main.c
> index 7de0e02..dfd4c98 100644
> --- a/linux-user/main.c
> +++ b/linux-user/main.c
> @@ -4068,7 +4068,7 @@ static void handle_arg_strace(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");
>      exit(EXIT_SUCCESS);
>  }
> diff --git a/qemu-img.c b/qemu-img.c
> index 56edc15..e56a15d 100644
> --- a/qemu-img.c
> +++ b/qemu-img.c
> @@ -46,7 +46,7 @@
>  #include "crypto/init.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"
>  
>  typedef struct img_cmd_t {
> diff --git a/qemu-io.c b/qemu-io.c
> index f554ab6..b0efa96 100644
> --- a/qemu-io.c
> +++ b/qemu-io.c
> @@ -534,7 +534,7 @@ int main(int argc, char **argv)
>              trace_file = trace_opt_parse(optarg);
>              break;
>          case 'V':
> -            printf("%s version " QEMU_VERSION QEMU_PKGVERSION "\n"
> +            printf("%s version " QEMU_FULL_VERSION "\n"
>                     QEMU_COPYRIGHT "\n", progname);
>              exit(0);
>          case 'h':
> diff --git a/qemu-nbd.c b/qemu-nbd.c
> index ed5d9b5..0af0560 100644
> --- a/qemu-nbd.c
> +++ b/qemu-nbd.c
> @@ -130,7 +130,7 @@ QEMU_HELP_BOTTOM "\n"
>  static void version(const char *name)
>  {
>      printf(
> -"%s " QEMU_VERSION QEMU_PKGVERSION "\n"
> +"%s " QEMU_FULL_VERSION "\n"
>  "Written by Anthony Liguori.\n"
>  "\n"
>  QEMU_COPYRIGHT "\n"
> diff --git a/qga/main.c b/qga/main.c
> index cb434d8..a877b30 100644
> --- a/qga/main.c
> +++ b/qga/main.c
> @@ -218,7 +218,7 @@ static void usage(const char *cmd)
>  {
>      printf(
>  "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"
>  "\n"
>  "  -m, --method      transport method: one of unix-listen, virtio-serial,\n"
> diff --git a/scsi/qemu-pr-helper.c b/scsi/qemu-pr-helper.c
> index 9fe615c..3facbba 100644
> --- a/scsi/qemu-pr-helper.c
> +++ b/scsi/qemu-pr-helper.c
> @@ -102,7 +102,7 @@ QEMU_HELP_BOTTOM "\n"
>  static void version(const char *name)
>  {
>      printf(
> -"%s " QEMU_VERSION QEMU_PKGVERSION "\n"
> +"%s " QEMU_FULL_VERSION "\n"
>  "Written by Paolo Bonzini.\n"
>  "\n"
>  QEMU_COPYRIGHT "\n"
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index 51db47c..a9e173a 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -1330,7 +1330,7 @@ QemuCocoaView *cocoaView;
>      /* Create the version string*/
>      NSString *version_string;
>      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];
>      [superView addSubview: version_label];
>  
> diff --git a/vl.c b/vl.c
> index 2187849..6740c27 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1942,7 +1942,7 @@ static void main_loop(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");
>  }
>  
> 

Queued, thanks.

Paolo

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

end of thread, other threads:[~2018-03-08 18:44 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-15 11:06 [Qemu-devel] [PATCH] Polish the version strings containing the package version Thomas Huth
2018-02-15 14:38 ` Eric Blake
2018-03-08 18:21   ` Thomas Huth
2018-03-08 18:43 ` Paolo Bonzini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.