From 42cc9294e9ae8641ae94749b1348fe65fde45aa8 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 2 Nov 2020 12:15:54 -0500 Subject: wrap: Fix git exception not catched by interpreter This is a regression introduced in Meson 0.56.0, it was fatal error when optional dependencies fails to download their fallback subproject. --- mesonbuild/wrap/wrap.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mesonbuild/wrap/wrap.py b/mesonbuild/wrap/wrap.py index bc35893..7b50bc1 100644 --- a/mesonbuild/wrap/wrap.py +++ b/mesonbuild/wrap/wrap.py @@ -31,7 +31,8 @@ import textwrap from .._pathlib import Path from . import WrapMode from .. import coredata -from ..mesonlib import verbose_git, quiet_git, GIT, ProgressBar, MesonException +from ..mesonlib import quiet_git, GIT, ProgressBar, MesonException +from .. import mesonlib if T.TYPE_CHECKING: import http.client @@ -186,6 +187,15 @@ def get_directory(subdir_root: str, packagename: str) -> str: return wrap.directory return packagename +def verbose_git(*args, **kwargs): + ''' + Wrapper to convert GitException to WrapException caught in interpreter. + ''' + try: + return mesonlib.verbose_git(*args, **kwargs) + except mesonlib.GitException as e: + raise WrapException(str(e)) + class Resolver: def __init__(self, source_dir: str, subdir: str, wrap_mode: WrapMode = WrapMode.default) -> None: self.source_dir = source_dir -- cgit v1.1