All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v10] scripts: Convert qemu-version.sh to qemu-version.py
@ 2020-10-07 19:59 Yonggang Luo
  2020-10-07 20:30 ` Paolo Bonzini
  0 siblings, 1 reply; 4+ messages in thread
From: Yonggang Luo @ 2020-10-07 19:59 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Thomas Huth, QEMU Trivial,
	Philippe Mathieu-Daudé,
	Yonggang Luo, Paolo Bonzini

The sh script are harder to maintain for compatible different
xsh environment so convert it to python script
Also incorporate the fixes in
https://patchew.org/QEMU/20200929143654.518157-1-marcandre.lureau@redhat.com/

Using v\\* on Windows and v* on other platform for matching version.
Tested under Ubuntu/msys2/mingw.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Message-Id: <20201006112139.700-1-luoyonggang@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build             |  2 +-
 scripts/qemu-version.py | 37 +++++++++++++++++++++++++++++++++++++
 scripts/qemu-version.sh | 25 -------------------------
 3 files changed, 38 insertions(+), 26 deletions(-)
 create mode 100644 scripts/qemu-version.py
 delete mode 100755 scripts/qemu-version.sh

diff --git a/meson.build b/meson.build
index 26230614ba..1d3bb25bc6 100644
--- a/meson.build
+++ b/meson.build
@@ -1132,7 +1132,7 @@ tracetool = [
    '--backend=' + config_host['TRACE_BACKENDS']
 ]
 
-qemu_version_cmd = [find_program('scripts/qemu-version.sh'),
+qemu_version_cmd = [find_program('scripts/qemu-version.py'),
                     meson.current_source_dir(),
                     config_host['PKGVERSION'], meson.project_version()]
 qemu_version = custom_target('qemu-version.h',
diff --git a/scripts/qemu-version.py b/scripts/qemu-version.py
new file mode 100644
index 0000000000..063b3720f7
--- /dev/null
+++ b/scripts/qemu-version.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+
+#
+# Script for retrieve qemu git version information
+#
+# Authors:
+#  Yonggang Luo <luoyonggang@gmail.com>
+#
+# This work is licensed under the terms of the GNU GPL, version 2
+# or, at your option, any later version.  See the COPYING file in
+# the top-level directory.
+
+import sys
+import subprocess
+import os, os.path
+import platform
+
+def main(_program, dir, pkgversion, version, *unused):
+    os.chdir(dir)
+    if not pkgversion and os.path.exists('.git'):
+        match_expression = 'v\\*' if platform.system() == 'Windows' else 'v*'
+        pc = subprocess.run(['git', 'describe', '--match',  match_expression,
+                            '--dirty', '--always'],
+                            stdout=subprocess.PIPE, stderr=subprocess.DEVNULL,
+                            encoding='utf8', shell=False)
+        if pc.returncode == 0:
+            pkgversion = pc.stdout.strip()
+
+    fullversion = version
+    if pkgversion:
+        fullversion = "{} ({})".format(version, pkgversion)
+
+    print('#define QEMU_PKGVERSION "%s"' % pkgversion)
+    print('#define QEMU_FULL_VERSION "%s"' % fullversion)
+
+if __name__ == "__main__":
+    main(*sys.argv)
diff --git a/scripts/qemu-version.sh b/scripts/qemu-version.sh
deleted file mode 100755
index 03128c56a2..0000000000
--- a/scripts/qemu-version.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-set -eu
-
-dir="$1"
-pkgversion="$2"
-version="$3"
-
-if [ -z "$pkgversion" ]; then
-    cd "$dir"
-    if [ -e .git ]; then
-        pkgversion=$(git describe --match 'v*' --dirty | echo "")
-    fi
-fi
-
-if [ -n "$pkgversion" ]; then
-    fullversion="$version ($pkgversion)"
-else
-    fullversion="$version"
-fi
-
-cat <<EOF
-#define QEMU_PKGVERSION "$pkgversion"
-#define QEMU_FULL_VERSION "$fullversion"
-EOF
-- 
2.28.0.windows.1



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

* Re: [PATCH v10] scripts: Convert qemu-version.sh to qemu-version.py
  2020-10-07 19:59 [PATCH v10] scripts: Convert qemu-version.sh to qemu-version.py Yonggang Luo
@ 2020-10-07 20:30 ` Paolo Bonzini
  2020-10-07 21:51   ` 罗勇刚(Yonggang Luo)
  0 siblings, 1 reply; 4+ messages in thread
From: Paolo Bonzini @ 2020-10-07 20:30 UTC (permalink / raw)
  To: Yonggang Luo
  Cc: QEMU Trivial, Peter Maydell, Thomas Huth, qemu-devel,
	Philippe Mathieu-Daudé

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

You won't hear no for an answer, right?...

Paolo


Il mer 7 ott 2020, 22:00 Yonggang Luo <luoyonggang@gmail.com> ha scritto:

> The sh script are harder to maintain for compatible different
> xsh environment so convert it to python script
> Also incorporate the fixes in
>
> https://patchew.org/QEMU/20200929143654.518157-1-marcandre.lureau@redhat.com/
>
> Using v\\* on Windows and v* on other platform for matching version.
> Tested under Ubuntu/msys2/mingw.
>
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> Message-Id: <20201006112139.700-1-luoyonggang@gmail.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  meson.build             |  2 +-
>  scripts/qemu-version.py | 37 +++++++++++++++++++++++++++++++++++++
>  scripts/qemu-version.sh | 25 -------------------------
>  3 files changed, 38 insertions(+), 26 deletions(-)
>  create mode 100644 scripts/qemu-version.py
>  delete mode 100755 scripts/qemu-version.sh
>
> diff --git a/meson.build b/meson.build
> index 26230614ba..1d3bb25bc6 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1132,7 +1132,7 @@ tracetool = [
>     '--backend=' + config_host['TRACE_BACKENDS']
>  ]
>
> -qemu_version_cmd = [find_program('scripts/qemu-version.sh'),
> +qemu_version_cmd = [find_program('scripts/qemu-version.py'),
>                      meson.current_source_dir(),
>                      config_host['PKGVERSION'], meson.project_version()]
>  qemu_version = custom_target('qemu-version.h',
> diff --git a/scripts/qemu-version.py b/scripts/qemu-version.py
> new file mode 100644
> index 0000000000..063b3720f7
> --- /dev/null
> +++ b/scripts/qemu-version.py
> @@ -0,0 +1,37 @@
> +#!/usr/bin/env python3
> +
> +#
> +# Script for retrieve qemu git version information
> +#
> +# Authors:
> +#  Yonggang Luo <luoyonggang@gmail.com>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2
> +# or, at your option, any later version.  See the COPYING file in
> +# the top-level directory.
> +
> +import sys
> +import subprocess
> +import os, os.path
> +import platform
> +
> +def main(_program, dir, pkgversion, version, *unused):
> +    os.chdir(dir)
> +    if not pkgversion and os.path.exists('.git'):
> +        match_expression = 'v\\*' if platform.system() == 'Windows' else
> 'v*'
> +        pc = subprocess.run(['git', 'describe', '--match',
> match_expression,
> +                            '--dirty', '--always'],
> +                            stdout=subprocess.PIPE,
> stderr=subprocess.DEVNULL,
> +                            encoding='utf8', shell=False)
> +        if pc.returncode == 0:
> +            pkgversion = pc.stdout.strip()
> +
> +    fullversion = version
> +    if pkgversion:
> +        fullversion = "{} ({})".format(version, pkgversion)
> +
> +    print('#define QEMU_PKGVERSION "%s"' % pkgversion)
> +    print('#define QEMU_FULL_VERSION "%s"' % fullversion)
> +
> +if __name__ == "__main__":
> +    main(*sys.argv)
> diff --git a/scripts/qemu-version.sh b/scripts/qemu-version.sh
> deleted file mode 100755
> index 03128c56a2..0000000000
> --- a/scripts/qemu-version.sh
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -#!/bin/sh
> -
> -set -eu
> -
> -dir="$1"
> -pkgversion="$2"
> -version="$3"
> -
> -if [ -z "$pkgversion" ]; then
> -    cd "$dir"
> -    if [ -e .git ]; then
> -        pkgversion=$(git describe --match 'v*' --dirty | echo "")
> -    fi
> -fi
> -
> -if [ -n "$pkgversion" ]; then
> -    fullversion="$version ($pkgversion)"
> -else
> -    fullversion="$version"
> -fi
> -
> -cat <<EOF
> -#define QEMU_PKGVERSION "$pkgversion"
> -#define QEMU_FULL_VERSION "$fullversion"
> -EOF
> --
> 2.28.0.windows.1
>
>

[-- Attachment #2: Type: text/html, Size: 5210 bytes --]

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

* Re: [PATCH v10] scripts: Convert qemu-version.sh to qemu-version.py
  2020-10-07 20:30 ` Paolo Bonzini
@ 2020-10-07 21:51   ` 罗勇刚(Yonggang Luo)
  2020-10-08  6:23     ` Thomas Huth
  0 siblings, 1 reply; 4+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-10-07 21:51 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: QEMU Trivial, Peter Maydell, Thomas Huth, qemu-devel,
	Philippe Mathieu-Daudé

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

On Thu, Oct 8, 2020 at 4:31 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> You won't hear no for an answer, right?...
I am trying to figure out the real issue, it's the issue of git,
https://github.com/msys2/MSYS2-packages/issues/2176

The windows wildcard can be disabled and git disabled it, didn't know
what's happened to
the msys's git, but git-for-windows are works fine.

>
> Paolo
>
>
> Il mer 7 ott 2020, 22:00 Yonggang Luo <luoyonggang@gmail.com> ha scritto:
>>
>> The sh script are harder to maintain for compatible different
>> xsh environment so convert it to python script
>> Also incorporate the fixes in
>>
https://patchew.org/QEMU/20200929143654.518157-1-marcandre.lureau@redhat.com/
>>
>> Using v\\* on Windows and v* on other platform for matching version.
>> Tested under Ubuntu/msys2/mingw.
>>
>> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
>> Message-Id: <20201006112139.700-1-luoyonggang@gmail.com>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>>  meson.build             |  2 +-
>>  scripts/qemu-version.py | 37 +++++++++++++++++++++++++++++++++++++
>>  scripts/qemu-version.sh | 25 -------------------------
>>  3 files changed, 38 insertions(+), 26 deletions(-)
>>  create mode 100644 scripts/qemu-version.py
>>  delete mode 100755 scripts/qemu-version.sh
>>
>> diff --git a/meson.build b/meson.build
>> index 26230614ba..1d3bb25bc6 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -1132,7 +1132,7 @@ tracetool = [
>>     '--backend=' + config_host['TRACE_BACKENDS']
>>  ]
>>
>> -qemu_version_cmd = [find_program('scripts/qemu-version.sh'),
>> +qemu_version_cmd = [find_program('scripts/qemu-version.py'),
>>                      meson.current_source_dir(),
>>                      config_host['PKGVERSION'], meson.project_version()]
>>  qemu_version = custom_target('qemu-version.h',
>> diff --git a/scripts/qemu-version.py b/scripts/qemu-version.py
>> new file mode 100644
>> index 0000000000..063b3720f7
>> --- /dev/null
>> +++ b/scripts/qemu-version.py
>> @@ -0,0 +1,37 @@
>> +#!/usr/bin/env python3
>> +
>> +#
>> +# Script for retrieve qemu git version information
>> +#
>> +# Authors:
>> +#  Yonggang Luo <luoyonggang@gmail.com>
>> +#
>> +# This work is licensed under the terms of the GNU GPL, version 2
>> +# or, at your option, any later version.  See the COPYING file in
>> +# the top-level directory.
>> +
>> +import sys
>> +import subprocess
>> +import os, os.path
>> +import platform
>> +
>> +def main(_program, dir, pkgversion, version, *unused):
>> +    os.chdir(dir)
>> +    if not pkgversion and os.path.exists('.git'):
>> +        match_expression = 'v\\*' if platform.system() == 'Windows'
else 'v*'
>> +        pc = subprocess.run(['git', 'describe', '--match',
 match_expression,
>> +                            '--dirty', '--always'],
>> +                            stdout=subprocess.PIPE,
stderr=subprocess.DEVNULL,
>> +                            encoding='utf8', shell=False)
>> +        if pc.returncode == 0:
>> +            pkgversion = pc.stdout.strip()
>> +
>> +    fullversion = version
>> +    if pkgversion:
>> +        fullversion = "{} ({})".format(version, pkgversion)
>> +
>> +    print('#define QEMU_PKGVERSION "%s"' % pkgversion)
>> +    print('#define QEMU_FULL_VERSION "%s"' % fullversion)
>> +
>> +if __name__ == "__main__":
>> +    main(*sys.argv)
>> diff --git a/scripts/qemu-version.sh b/scripts/qemu-version.sh
>> deleted file mode 100755
>> index 03128c56a2..0000000000
>> --- a/scripts/qemu-version.sh
>> +++ /dev/null
>> @@ -1,25 +0,0 @@
>> -#!/bin/sh
>> -
>> -set -eu
>> -
>> -dir="$1"
>> -pkgversion="$2"
>> -version="$3"
>> -
>> -if [ -z "$pkgversion" ]; then
>> -    cd "$dir"
>> -    if [ -e .git ]; then
>> -        pkgversion=$(git describe --match 'v*' --dirty | echo "")
>> -    fi
>> -fi
>> -
>> -if [ -n "$pkgversion" ]; then
>> -    fullversion="$version ($pkgversion)"
>> -else
>> -    fullversion="$version"
>> -fi
>> -
>> -cat <<EOF
>> -#define QEMU_PKGVERSION "$pkgversion"
>> -#define QEMU_FULL_VERSION "$fullversion"
>> -EOF
>> --
>> 2.28.0.windows.1
>>


--
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 6240 bytes --]

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

* Re: [PATCH v10] scripts: Convert qemu-version.sh to qemu-version.py
  2020-10-07 21:51   ` 罗勇刚(Yonggang Luo)
@ 2020-10-08  6:23     ` Thomas Huth
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Huth @ 2020-10-08  6:23 UTC (permalink / raw)
  To: luoyonggang, Paolo Bonzini
  Cc: QEMU Trivial, Peter Maydell, qemu-devel, Philippe Mathieu-Daudé

On 07/10/2020 23.51, 罗勇刚(Yonggang Luo) wrote:
> 
> On Thu, Oct 8, 2020 at 4:31 AM Paolo Bonzini <pbonzini@redhat.com
> <mailto:pbonzini@redhat.com>> wrote:
>>
>> You won't hear no for an answer, right?...
> I am trying to figure out the real issue, it's the issue of git,
> https://github.com/msys2/MSYS2-packages/issues/2176
Can you at least please stop crap-flooding the QEMU mailing list with
multiple versions of your patches each day? We are all busy, so nobody is
going to review 5 or more iterations of your patches each day. Work on your
patches first, make sure that they are working, and only if you think that
they are really, really good, then send them to the list. Thanks.

 Thomas



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

end of thread, other threads:[~2020-10-08  6:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-07 19:59 [PATCH v10] scripts: Convert qemu-version.sh to qemu-version.py Yonggang Luo
2020-10-07 20:30 ` Paolo Bonzini
2020-10-07 21:51   ` 罗勇刚(Yonggang Luo)
2020-10-08  6:23     ` Thomas Huth

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.