From afc175578fd4309bec14bdfc0e6a8d03f607d7c6 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Sun, 11 Mar 2018 01:50:32 -0600
Subject: [PATCH] Add numpy's env construction to find_git_revision

---
 pytools/__init__.py | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/pytools/__init__.py b/pytools/__init__.py
index f831c3e..90f8911 100644
--- a/pytools/__init__.py
+++ b/pytools/__init__.py
@@ -1988,10 +1988,24 @@ def find_git_revision(tree_root):
     if not exists(join(tree_root, ".git")):
         return None
 
+    # construct minimal environment
+    # stolen from
+    # https://github.com/numpy/numpy/blob/055ce3e90b50b5f9ef8cf1b8641c42e391f10735/setup.py#L70-L92
+    import os
+    env = {}
+    for k in ['SYSTEMROOT', 'PATH', 'HOME']:
+        v = os.environ.get(k)
+        if v is not None:
+            env[k] = v
+    # LANGUAGE is used on win32
+    env['LANGUAGE'] = 'C'
+    env['LANG'] = 'C'
+    env['LC_ALL'] = 'C'
+
     from subprocess import Popen, PIPE, STDOUT
     p = Popen(["git", "rev-parse", "HEAD"], shell=False,
               stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True,
-              cwd=tree_root)
+              cwd=tree_root, env=env)
     (git_rev, _) = p.communicate()
 
     import sys
-- 
GitLab