Mercurial > hg-stable
changeset 51192:f816ca29a285
setup: try a non-pure version of the local Mercurial if the pure fails
Things like `zstd` can make the pure version fails.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 11 Apr 2023 21:56:16 +0200 |
parents | 3c5b66d03c37 |
children | b0a6084f9cd6 |
files | setup.py |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/setup.py Fri Dec 01 22:13:37 2023 +0100 +++ b/setup.py Tue Apr 11 21:56:16 2023 +0200 @@ -298,9 +298,15 @@ if attempt(hgcmd + check_cmd, hgenv): return hgcommand(hgcmd, hgenv) - # Fall back to trying the local hg installation. + # Fall back to trying the local hg installation (pure python) + repo_hg = os.path.join(os.path.dirname(__file__), 'hg') hgenv = localhgenv() - hgcmd = [sys.executable, 'hg'] + hgcmd = [sys.executable, repo_hg] + if attempt(hgcmd + check_cmd, hgenv): + return hgcommand(hgcmd, hgenv) + # Fall back to trying the local hg installation (whatever we can) + hgenv = localhgenv(pure_python=False) + hgcmd = [sys.executable, repo_hg] if attempt(hgcmd + check_cmd, hgenv): return hgcommand(hgcmd, hgenv) @@ -322,17 +328,18 @@ return None -def localhgenv(): +def localhgenv(pure_python=True): """Get an environment dictionary to use for invoking or importing mercurial from the local repository.""" # Execute hg out of this directory with a custom environment which takes # care to not use any hgrc files and do no localization. env = { - 'HGMODULEPOLICY': 'py', 'HGRCPATH': '', 'LANGUAGE': 'C', 'PATH': '', } # make pypi modules that use os.environ['PATH'] happy + if pure_python: + env['HGMODULEPOLICY'] = 'py' if 'LD_LIBRARY_PATH' in os.environ: env['LD_LIBRARY_PATH'] = os.environ['LD_LIBRARY_PATH'] if 'SystemRoot' in os.environ: