summarylogtreecommitdiffstats
path: root/0045-msys-monkeypatch-os-system-via-sh-exe.patch
diff options
context:
space:
mode:
Diffstat (limited to '0045-msys-monkeypatch-os-system-via-sh-exe.patch')
-rw-r--r--0045-msys-monkeypatch-os-system-via-sh-exe.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/0045-msys-monkeypatch-os-system-via-sh-exe.patch b/0045-msys-monkeypatch-os-system-via-sh-exe.patch
new file mode 100644
index 000000000000..783c5082bdd7
--- /dev/null
+++ b/0045-msys-monkeypatch-os-system-via-sh-exe.patch
@@ -0,0 +1,39 @@
+From 74ee0fa7cbd23e29f60d03606ee32b34bc0dbc6c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?=
+ <alexey.pawlow@gmail.com>
+Date: Thu, 17 Jun 2021 18:51:57 +0530
+Subject: [PATCH 045/N] msys monkeypatch os system via sh exe
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Co-authored-by: Алексей <alexey.pawlow@gmail.com>
+---
+ setup.py | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/setup.py b/setup.py
+index 31b08de..207a61c 100644
+--- a/setup.py
++++ b/setup.py
+@@ -58,6 +58,17 @@ def get_platform():
+ return sys.platform
+
+
++# On MSYS, os.system needs to be wrapped with sh.exe
++# as otherwise all the io redirection will fail.
++# Arguably, this could happen inside the real os.system
++# rather than this monkey patch.
++if sys.platform == "win32" and "MSYSTEM" in os.environ:
++ os_system = os.system
++ def msys_system(command):
++ command_in_sh = 'sh.exe -c "%s"' % command.replace("\\", "\\\\")
++ return os_system(command_in_sh)
++ os.system = msys_system
++
+ CROSS_COMPILING = ("_PYTHON_HOST_PLATFORM" in os.environ)
+ HOST_PLATFORM = get_platform()
+ MS_WINDOWS = (HOST_PLATFORM == 'win32')
+--
+2.33.0
+