On Thu, Oct 8, 2020 at 4:31 AM Paolo Bonzini 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 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 >> Message-Id: <20201006112139.700-1-luoyonggang@gmail.com> >> Signed-off-by: Paolo Bonzini >> --- >> 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 >> +# >> +# 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 <> -#define QEMU_PKGVERSION "$pkgversion" >> -#define QEMU_FULL_VERSION "$fullversion" >> -EOF >> -- >> 2.28.0.windows.1 >> -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo