mirror of
https://github.com/rizinorg/rizin
synced 2026-08-22 20:26:16 -04:00
vs2017: Patch retry mechanism into meson git calls (#6078)
This commit is contained in:
parent
3247c3e97f
commit
2c306c53ce
4 changed files with 38 additions and 4 deletions
|
|
@ -74,17 +74,18 @@ install:
|
|||
# Download required packages
|
||||
- cmd: if defined BUILD_DIR ( %PYTHON%\python.exe -m pip install --upgrade pip)
|
||||
- cmd: if defined BUILD_DIR ( %PYTHON%\python.exe -m pip install --upgrade certifi pip-system-certs)
|
||||
- cmd: if defined BUILD_DIR ( %PYTHON%\python.exe -m pip install meson ninja PyYAML tomli)
|
||||
- cmd: if defined BUILD_DIR ( %PYTHON%\python.exe -m pip install meson==1.10.2 ninja PyYAML tomli)
|
||||
|
||||
# Build scripts
|
||||
# Meson patched on vs2017-based images to work around git network issues
|
||||
build_script:
|
||||
- appveyor AddMessage "Compiling rizin %RZ_VERSION% (%builder%)"
|
||||
|
||||
- cmd: if %builder% == vs2017_64 ( set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2017%" x64 && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" --default-library=static -Db_vscrt=static_from_buildtype build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
||||
- cmd: if %builder% == vs2017_64 ( patch %PYTHON%\Lib\site-packages\mesonbuild\utils\universal.py patches\meson-git-retry.patch && set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2017%" x64 && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" --default-library=static -Db_vscrt=static_from_buildtype build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
||||
|
||||
- cmd: if %builder% == vs2022_64 ( choco install mingw && refreshenv && set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2022%" x64 && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" --default-library=static -Db_vscrt=static_from_buildtype build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
||||
|
||||
- cmd: if %builder% == vs2017_64_dyn ( set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2017%" x64 && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
||||
- cmd: if %builder% == vs2017_64_dyn ( patch %PYTHON%\Lib\site-packages\mesonbuild\utils\universal.py patches\meson-git-retry.patch && set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2017%" x64 && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
||||
|
||||
- cmd: if %builder% == clang_cl_64_dyn ( set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2019%" x64 && set CC=clang-cl && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
||||
|
||||
|
|
|
|||
|
|
@ -332,3 +332,9 @@ path = ["test/prj/**.rzdb", "test/prj/**.rzdb.gz"]
|
|||
precedence = "aggregate"
|
||||
SPDX-FileCopyrightText = "2020 RizinOrg <info@rizin.re>"
|
||||
SPDX-License-Identifier = "LGPL-3.0-only"
|
||||
|
||||
[[annotations]]
|
||||
path = "patches/**"
|
||||
precedence = "aggregate"
|
||||
SPDX-FileCopyrightText = "2026 RizinOrg <info@rizin.re>"
|
||||
SPDX-License-Identifier = "LGPL-3.0-only"
|
||||
|
|
|
|||
|
|
@ -1509,7 +1509,7 @@ RZ_IPI RzCmdStatus rz_cmd_eval_color_set_random_palette_handler(RzCore *core, in
|
|||
RZ_IPI RzCmdStatus rz_cmd_eval_color_set_colorful_palette_handler(RzCore *core, int argc, const char **argv);
|
||||
// "eco"
|
||||
RZ_IPI RzCmdStatus rz_cmd_eval_color_load_theme_handler(RzCore *core, int argc, const char **argv, RzCmdStateOutput *state);
|
||||
RZ_IPI RZ_OWN char **rz_core_autocomplete_rotate_theme(RzCore *core);
|
||||
RZ_IPI char **rz_core_autocomplete_rotate_theme(RzCore *core);
|
||||
// "eco."
|
||||
RZ_IPI RzCmdStatus rz_cmd_eval_color_list_current_theme_handler(RzCore *core, int argc, const char **argv);
|
||||
// "ecoo"
|
||||
|
|
|
|||
27
patches/meson-git-retry.patch
Normal file
27
patches/meson-git-retry.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
diff --git a/mesonbuild/utils/universal.py b/mesonbuild/utils/universal.py
|
||||
index e251695dd..0507066f3 100644
|
||||
--- a/mesonbuild/utils/universal.py
|
||||
+++ b/mesonbuild/utils/universal.py
|
||||
@@ -205,9 +205,19 @@ GIT = shutil.which('git')
|
||||
def git(cmd: T.List[str], workingdir: StrOrBytesPath, check: bool = False, **kwargs: T.Any) -> T.Tuple[subprocess.Popen[str], str, str]:
|
||||
assert GIT is not None, 'Callers should make sure it exists'
|
||||
cmd = [GIT, *cmd]
|
||||
- p, o, e = Popen_safe(cmd, cwd=workingdir, **kwargs)
|
||||
- if check and p.returncode != 0:
|
||||
- raise GitException('Git command failed: ' + str(cmd), e)
|
||||
+ retries = 0
|
||||
+ while True:
|
||||
+ try:
|
||||
+ p, o, e = Popen_safe(cmd, cwd=workingdir, **kwargs)
|
||||
+ if check and p.returncode != 0:
|
||||
+ raise GitException('Git command failed: ' + str(cmd), e)
|
||||
+ break
|
||||
+ except GitException:
|
||||
+ if retries == 5:
|
||||
+ raise
|
||||
+ else:
|
||||
+ retries += 1
|
||||
+ mlog.warning(f'Retry {retries} for {str(cmd)}')
|
||||
return p, o, e
|
||||
|
||||
def quiet_git(cmd: T.List[str], workingdir: StrOrBytesPath, check: bool = False) -> T.Tuple[bool, str]:
|
||||
Loading…
Add table
Add a link
Reference in a new issue