> You won't hear no for an answer, right?...
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