Message ID | 20201007195934.297-1-luoyonggang@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v10] scripts: Convert qemu-version.sh to qemu-version.py | expand |
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 > >
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
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
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