qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v10] scripts: Convert qemu-version.sh to qemu-version.py


From: Yonggang Luo
Subject: Re: [PATCH v10] scripts: Convert qemu-version.sh to qemu-version.py
Date: Thu, 8 Oct 2020 05:51:25 +0800


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">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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]