diff -Naur Python-2.7.9-orig/setup.py Python-2.7.9/setup.py --- Python-2.7.9-orig/setup.py 2014-12-11 13:51:01.994600000 +0300 +++ Python-2.7.9/setup.py 2014-12-11 13:51:08.359400000 +0300 @@ -29,6 +29,17 @@ return sys.platform host_platform = get_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 + # Were we compiled --with-pydebug or with #define Py_DEBUG? COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS"))