[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 2 commits - external_deps.lst python/makefile.mk python/prj python/python-2.7.12-mingw.patch python/python-2.7.12-nohardlink.patch python/python-2.7.12-pcbuild.patch python/python-2.7.12-sysbase.patch python/python-2.7.9-mingw.patch python/python-2.7.9-nohardlink.patch python/python-2.7.9-pcbuild.patch python/python-2.7.9-sysbase.patch python/python-freebsd.patch python/python-md5.patch python/python-solaris.patch python/python-solver-before-std.patch python/python-ssl.patch python/pyversion.mk sal/inc sc/inc

Don Lewis truckman at apache.org
Sat Sep 3 02:08:14 UTC 2016


 external_deps.lst                     |    6 
 python/makefile.mk                    |    6 
 python/prj/d.lst                      |  108 +-
 python/python-2.7.12-mingw.patch      |  571 +++++++++++
 python/python-2.7.12-nohardlink.patch |   11 
 python/python-2.7.12-pcbuild.patch    | 1710 ++++++++++++++++++++++++++++++++++
 python/python-2.7.12-sysbase.patch    |   14 
 python/python-2.7.9-mingw.patch       | 1056 --------------------
 python/python-2.7.9-nohardlink.patch  |   11 
 python/python-2.7.9-pcbuild.patch     | 1710 ----------------------------------
 python/python-2.7.9-sysbase.patch     |   14 
 python/python-freebsd.patch           |   50 
 python/python-md5.patch               |    6 
 python/python-solaris.patch           |    4 
 python/python-solver-before-std.patch |   21 
 python/python-ssl.patch               |   18 
 python/pyversion.mk                   |    2 
 sal/inc/sal/types.h                   |   14 
 sc/inc/compiler.hxx                   |    8 
 19 files changed, 2433 insertions(+), 2907 deletions(-)

New commits:
commit 329c887b5c4639585b93709f5ea8b181faffefd0
Author: Don Lewis <truckman at apache.org>
Date:   Sat Sep 3 01:44:05 2016 +0000

    In the SAL_UNUSED macro, __attribute((__unused__)) should be
    
    __attribute__((__unused__)), but both clang and gcc seem to understand
    both.
    
    Since __attribute__((__unused__)) can preceed the variable name, just
    like __pragma(warning(suppress:4100;suppress:4101)) for Visual Studio,
    so de-parameterize the SAL_UNUSED macro.
    
    Gcc whines if __attribute__((__unused__)) is used for a struct member,
    so create a separate define, SAL_UNUSED_MEMBER, which is empty for
    gcc, to handle struct members.

diff --git a/sal/inc/sal/types.h b/sal/inc/sal/types.h
index 2bad6d6..1f4a0fe 100644
--- a/sal/inc/sal/types.h
+++ b/sal/inc/sal/types.h
@@ -235,12 +235,18 @@ typedef void *                   sal_Handle;
 #   define SAL_MAX_ENUM 0x7fff
 #endif
 
-#if defined(__GNUC__) || defined(__clang__)
-#define SAL_UNUSED(__x__)   __x__ __attribute((__unused__))
+#if defined(__clang__)
+#define SAL_UNUSED      __attribute__((__unused__))
+#define SAL_UNUSED_MEMBER   __attribute__((__unused__))
+#elif defined(__GNUC__)
+#define SAL_UNUSED      __attribute__((__unused__))
+#define SAL_UNUSED_MEMBER
 #elif defined(_MSC_VER)
-#define SAL_UNUSED(__x__)   __pragma(warning(suppress:4100;suppress:4101)) __x__
+#define SAL_UNUSED      __pragma(warning(suppress:4100;suppress:4101))
+#define SAL_UNUSED_MEMBER   __pragma(warning(suppress:4100;suppress:4101))
 #else
-#define SAL_UNUSED(__x__)   __x__
+#define SAL_UNUSED
+#define SAL_UNUSED_MEMBER
 #endif
 
 #if defined(_MSC_VER) || defined(__MINGW32__)
diff --git a/sc/inc/compiler.hxx b/sc/inc/compiler.hxx
index bd05000..dd9fec0 100644
--- a/sc/inc/compiler.hxx
+++ b/sc/inc/compiler.hxx
@@ -117,10 +117,10 @@ struct ScDoubleRawToken
 {
 private:
     // SC_TOKEN_FIX_MEMBERS
-    OpCode   SAL_UNUSED(eOp);
-    formula::StackVar SAL_UNUSED(eType);
-    sal_uInt16   SAL_UNUSED(nRefCnt);
-    sal_Bool     SAL_UNUSED(bRaw);
+    OpCode  SAL_UNUSED_MEMBER       eOp;
+    formula::StackVar SAL_UNUSED_MEMBER eType;
+    sal_uInt16 SAL_UNUSED_MEMBER    nRefCnt;
+    sal_Bool SAL_UNUSED_MEMBER      bRaw;
 public:
     union
     {   // union only to assure alignment identical to ScRawToken
commit df064208c16be6690cbbff2803a9b122e4da541a
Author: Pedro Giffuni <pfg at apache.org>
Date:   Sat Sep 3 01:35:21 2016 +0000

    Update Python to version 2.7.12.
    
    This is the latest bugfix release in the 2.7.x series (Released 2016-06-28).
    
    We expect this to be the best release that still guarantees some
    compatibility with previous versions while still letting us use some of
    the features in newer language versions.
    
    It is also easier to keep up to date with upstream and with newer
    compilers.
    
    Tested on FreeBSD, but shouldn't have problems on other platforms.

diff --git a/external_deps.lst b/external_deps.lst
index 3e4fe10..876c6af 100644
--- a/external_deps.lst
+++ b/external_deps.lst
@@ -204,9 +204,9 @@ if (ENABLE_MEDIAWIKI == YES)
     URL2 = $(OOO_EXTRAS)$(MD5)-$(name)
 
 if (SYSTEM_PYTHON != YES)
-    MD5 = 5eebcaa0030dc4061156d3429657fb83
-    name = Python-2.7.9.tgz
-    URL1 = http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
+    MD5 = 88d61f82e3616a4be952828b3694109d
+    name = Python-2.7.12.tgz
+    URL1 = http://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
     URL2 = $(OOO_EXTRAS)$(MD5)-$(name)
 
 if (SYSTEM_BOOST != YES)
diff --git a/python/makefile.mk b/python/makefile.mk
index 5ab7893..5580971 100644
--- a/python/makefile.mk
+++ b/python/makefile.mk
@@ -42,7 +42,7 @@ all:
 
 
 TARFILE_NAME=Python-$(PYVERSION)
-TARFILE_MD5=5eebcaa0030dc4061156d3429657fb83
+TARFILE_MD5=88d61f82e3616a4be952828b3694109d
 PATCH_FILES=\
     python-solaris.patch \
     python-freebsd.patch \
@@ -109,7 +109,9 @@ BUILD_ACTION=$(ENV_BUILD) make && make install
 #.ENDIF #"$(WINDOWS_VISTA_PSDK)"!=""
 #.ENDIF
 
-BUILD_DIR=PCbuild
+# Requires adapting for according to the MSVC compiler version.
+# Normally PCBuild will carry the latest supported build files.
+BUILD_DIR=PC/VS9.0
 
 # Build python executable and then runs a minimal script. Running the minimal script
 # ensures that certain *.pyc files are generated which would otherwise be created on
diff --git a/python/prj/d.lst b/python/prj/d.lst
index 39ee038..de8d24b 100644
--- a/python/prj/d.lst
+++ b/python/prj/d.lst
@@ -36,51 +36,51 @@ mkdir: %_DEST%\lib%_EXT%\python\multiprocessing\dummy
 mkdir: %_DEST%\lib%_EXT%\python\unittest
 mkdir: %_DEST%\lib%_EXT%\python\python2.7\config
 
-..\%__SRC%\misc\build\Python-2.7.9\Lib\* %_DEST%\lib%_EXT%\python\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\lib-old\* %_DEST%\lib%_EXT%\python\lib-old\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\lib-tk\* %_DEST%\lib%_EXT%\python\lib-tk\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\site-packages\* %_DEST%\lib%_EXT%\python\site-packages\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\encodings\* %_DEST%\lib%_EXT%\python\encodings\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\email\* %_DEST%\lib%_EXT%\python\email\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\email\mime\* %_DEST%\lib%_EXT%\python\email\mime\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\compiler\* %_DEST%\lib%_EXT%\python\compiler\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\hotshot\* %_DEST%\lib%_EXT%\python\hotshot\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\distutils\* %_DEST%\lib%_EXT%\python\distutils\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\distutils\command\* %_DEST%\lib%_EXT%\python\distutils\command\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\xml\* %_DEST%\lib%_EXT%\python\xml\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\xml\dom\* %_DEST%\lib%_EXT%\python\xml\dom\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\xml\parsers\* %_DEST%\lib%_EXT%\python\xml\parsers\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\xml\sax\* %_DEST%\lib%_EXT%\python\xml\sax\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\curses\* %_DEST%\lib%_EXT%\python\curses\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\plat-linux2\* %_DEST%\lib%_EXT%\python\plat-linux2\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\config\* %_DEST%\lib%_EXT%\python\config\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\bsddb\* %_DEST%\lib%_EXT%\python\bsddb\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\logging\* %_DEST%\lib%_EXT%\python\logging\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\idlelib\* %_DEST%\lib%_EXT%\python\idlelib\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\idlelib\Icons\* %_DEST%\lib%_EXT%\python\idlelib\Icons\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\wsgiref\* %_DEST%\lib%_EXT%\python\wsgiref\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\json\* %_DEST%\lib%_EXT%\python\json\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\lib2to3\* %_DEST%\lib%_EXT%\python\lib2to3\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\lib2to3\fixes\* %_DEST%\lib%_EXT%\python\lib2to3\fixes\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\lib2to3\pgen2\* %_DEST%\lib%_EXT%\python\lib2to3\pgen2\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\sqlite3\* %_DEST%\lib%_EXT%\python\sqlite3\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\ctypes\* %_DEST%\lib%_EXT%\python\ctypes\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\ctypes\macholib\* %_DEST%\lib%_EXT%\python\ctypes\macholib\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\xml\etree\* %_DEST%\lib%_EXT%\python\xml\etree
-..\%__SRC%\misc\build\Python-2.7.9\Lib\xml\etree\* %_DEST%\lib%_EXT%\python\xml\etree
-..\%__SRC%\misc\build\Python-2.7.9\Lib\importlib\* %_DEST%\lib%_EXT%\python\importlib\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\multiprocessing\* %_DEST%\lib%_EXT%\python\multiprocessing\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\multiprocessing\dummy\* %_DEST%\lib%_EXT%\python\multiprocessing\dummy\*
-..\%__SRC%\misc\build\Python-2.7.9\Lib\unittest\* %_DEST%\lib%_EXT%\python\unittest\*
-..\%__SRC%\misc\build\Python-2.7.9\Makefile %_DEST%\lib%_EXT%\python\python2.7\config\Makefile
+..\%__SRC%\misc\build\Python-2.7.12\Lib\* %_DEST%\lib%_EXT%\python\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\lib-old\* %_DEST%\lib%_EXT%\python\lib-old\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\lib-tk\* %_DEST%\lib%_EXT%\python\lib-tk\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\site-packages\* %_DEST%\lib%_EXT%\python\site-packages\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\encodings\* %_DEST%\lib%_EXT%\python\encodings\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\email\* %_DEST%\lib%_EXT%\python\email\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\email\mime\* %_DEST%\lib%_EXT%\python\email\mime\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\compiler\* %_DEST%\lib%_EXT%\python\compiler\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\hotshot\* %_DEST%\lib%_EXT%\python\hotshot\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\distutils\* %_DEST%\lib%_EXT%\python\distutils\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\distutils\command\* %_DEST%\lib%_EXT%\python\distutils\command\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\xml\* %_DEST%\lib%_EXT%\python\xml\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\xml\dom\* %_DEST%\lib%_EXT%\python\xml\dom\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\xml\parsers\* %_DEST%\lib%_EXT%\python\xml\parsers\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\xml\sax\* %_DEST%\lib%_EXT%\python\xml\sax\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\curses\* %_DEST%\lib%_EXT%\python\curses\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\plat-linux2\* %_DEST%\lib%_EXT%\python\plat-linux2\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\config\* %_DEST%\lib%_EXT%\python\config\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\bsddb\* %_DEST%\lib%_EXT%\python\bsddb\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\logging\* %_DEST%\lib%_EXT%\python\logging\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\idlelib\* %_DEST%\lib%_EXT%\python\idlelib\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\idlelib\Icons\* %_DEST%\lib%_EXT%\python\idlelib\Icons\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\wsgiref\* %_DEST%\lib%_EXT%\python\wsgiref\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\json\* %_DEST%\lib%_EXT%\python\json\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\lib2to3\* %_DEST%\lib%_EXT%\python\lib2to3\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\lib2to3\fixes\* %_DEST%\lib%_EXT%\python\lib2to3\fixes\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\lib2to3\pgen2\* %_DEST%\lib%_EXT%\python\lib2to3\pgen2\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\sqlite3\* %_DEST%\lib%_EXT%\python\sqlite3\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\ctypes\* %_DEST%\lib%_EXT%\python\ctypes\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\ctypes\macholib\* %_DEST%\lib%_EXT%\python\ctypes\macholib\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\xml\etree\* %_DEST%\lib%_EXT%\python\xml\etree
+..\%__SRC%\misc\build\Python-2.7.12\Lib\xml\etree\* %_DEST%\lib%_EXT%\python\xml\etree
+..\%__SRC%\misc\build\Python-2.7.12\Lib\importlib\* %_DEST%\lib%_EXT%\python\importlib\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\multiprocessing\* %_DEST%\lib%_EXT%\python\multiprocessing\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\multiprocessing\dummy\* %_DEST%\lib%_EXT%\python\multiprocessing\dummy\*
+..\%__SRC%\misc\build\Python-2.7.12\Lib\unittest\* %_DEST%\lib%_EXT%\python\unittest\*
+..\%__SRC%\misc\build\Python-2.7.12\Makefile %_DEST%\lib%_EXT%\python\python2.7\config\Makefile
 ..\%__SRC%\misc\build\python-inst\lib\python2.7\_sysconfigdata.py %_DEST%\lib%_EXT%\python\_sysconfigdata.py
 ..\pyversion.mk %_DEST%\inc%_EXT%\pyversion.mk
 
-..\%__SRC%\misc\build\Python-2.7.9\Include\* %_DEST%\inc%_EXT%\python\*
+..\%__SRC%\misc\build\Python-2.7.12\Include\* %_DEST%\inc%_EXT%\python\*
 
 #unix ONLY !
 ..\%__SRC%\misc\build\python-inst\bin\python %_DEST%\bin%_EXT%\python
-..\%__SRC%\misc\build\Python-2.7.9\pyconfig.h %_DEST%\inc%_EXT%\python\pyconfig.h
+..\%__SRC%\misc\build\Python-2.7.12\pyconfig.h %_DEST%\inc%_EXT%\python\pyconfig.h
 ..\%__SRC%\misc\build\python-inst\lib\python2.7\lib-dynload\* %_DEST%\lib%_EXT%\python\lib-dynload\*
 ..\%__SRC%\misc\build\python-inst\bin\python2.7 %_DEST%\bin%_EXT%\python
 ..\%__SRC%\misc\build\python-inst\lib\libpython2.7.so.1.0 %_DEST%\lib%_EXT%\libpython2.7.so.1.0
@@ -91,24 +91,24 @@ symlink: %_DEST%\lib%_EXT%\libpython2.7.so.1.0 %_DEST%\lib%_EXT%\libpython2.7.so
 
 #MingW ONLY !
 ..\%__SRC%\misc\build\python-inst\bin\python.exe %_DEST%\bin%_EXT%\python.exe
-..\%__SRC%\misc\build\Python-2.7.9\libpython2.7.dll %_DEST%\bin%_EXT%\libpython2.7.dll
+..\%__SRC%\misc\build\Python-2.7.12\libpython2.7.dll %_DEST%\bin%_EXT%\libpython2.7.dll
 
 # WINDOWS ONLY !
 ..\%__SRC%\misc\build\pyconfig.h %_DEST%\inc%_EXT%\python\pyconfig.h
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\python.exe %_DEST%\bin%_EXT%\python.exe
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\python27.dll %_DEST%\bin%_EXT%\python27.dll
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\python27.lib %_DEST%\lib%_EXT%\python27.lib
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\_socket.pyd %_DEST%\lib%_EXT%\python\_socket.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\_ssl.pyd %_DEST%\lib%_EXT%\python\_ssl.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\select.pyd %_DEST%\lib%_EXT%\python\select.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\unicodedata.pyd %_DEST%\lib%_EXT%\python\unicodedata.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\winsound.pyd %_DEST%\lib%_EXT%\python\winsound.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\pyexpat.pyd %_DEST%\lib%_EXT%\python\pyexpat.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\_testcapi.pyd %_DEST%\lib%_EXT%\python\_testcapi.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\_multiprocessing.pyd %_DEST%\lib%_EXT%\python\_multiprocessing.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\_msi.pyd %_DEST%\lib%_EXT%\python\_msi.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\_elementtree.pyd %_DEST%\lib%_EXT%\python\_elementtree.pyd
-..\%__SRC%\misc\build\Python-2.7.9\PCbuild\_ctypes.pyd %_DEST%\lib%_EXT%\python\_ctypes.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\python.exe %_DEST%\bin%_EXT%\python.exe
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\python27.dll %_DEST%\bin%_EXT%\python27.dll
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\python27.lib %_DEST%\lib%_EXT%\python27.lib
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\_socket.pyd %_DEST%\lib%_EXT%\python\_socket.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\_ssl.pyd %_DEST%\lib%_EXT%\python\_ssl.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\select.pyd %_DEST%\lib%_EXT%\python\select.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\unicodedata.pyd %_DEST%\lib%_EXT%\python\unicodedata.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\winsound.pyd %_DEST%\lib%_EXT%\python\winsound.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\pyexpat.pyd %_DEST%\lib%_EXT%\python\pyexpat.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\_testcapi.pyd %_DEST%\lib%_EXT%\python\_testcapi.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\_multiprocessing.pyd %_DEST%\lib%_EXT%\python\_multiprocessing.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\_msi.pyd %_DEST%\lib%_EXT%\python\_msi.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\_elementtree.pyd %_DEST%\lib%_EXT%\python\_elementtree.pyd
+..\%__SRC%\misc\build\Python-2.7.12\PCbuild\_ctypes.pyd %_DEST%\lib%_EXT%\python\_ctypes.pyd
 
 #linklib: libpython.so.*.*.*
 
diff --git a/python/python-2.7.12-mingw.patch b/python/python-2.7.12-mingw.patch
new file mode 100644
index 0000000..9eaa39f
--- /dev/null
+++ b/python/python-2.7.12-mingw.patch
@@ -0,0 +1,571 @@
+diff -ru misc/Python-2.7.12/Include/pyport.h misc/build/Python-2.7.12/Include/pyport.h
+--- misc/Python-2.7.12/Include/pyport.h	2016-06-25 16:49:30.000000000 -0500
++++ misc/build/Python-2.7.12/Include/pyport.h	2016-09-02 16:42:21.498048000 -0500
+@@ -9,6 +9,30 @@
+ #include <inttypes.h>
+ #endif
+ 
++#if defined(__MINGW32__)
++#undef HAVE_FORKPTY
++#undef HAVE_OPENPTY
++#undef HAVE_DEV_PTMX
++#undef _POSIX_THREADS
++#undef HAVE_PTHREAD_H
++#define MS_WINDOWS
++#define MS_WIN32
++#define Py_WIN_WIDE_FILENAMES
++#ifndef PYTHONPATH
++#	define PYTHONPATH ".\\lib;.\\lib\\python" VERSION ";.\\lib\\python" VERSION "\\lib-dynload;.\\lib\\python" VERSION "\\plat-winmingw32;.\\lib\\python" VERSION "\\lib-tk"
++#endif
++#define NT_THREADS
++#define WITH_THREAD
++#define WINVER 0x0501
++#ifdef socklen_t
++#undef socklen_t
++#endif
++#define HAVE_ADDRINFO
++#define HAVE_GETADDRINFO
++#define HAVE_GETNAMEINFO
++#define HAVE_GETPEERNAME
++#endif
++
+ #ifdef HAVE_STDINT_H
+ #include <stdint.h>
+ #endif
+diff -ru misc/Python-2.7.12/Lib/distutils/ccompiler.py misc/build/Python-2.7.12/Lib/distutils/ccompiler.py
+--- misc/Python-2.7.12/Lib/distutils/ccompiler.py	2016-06-25 16:49:30.000000000 -0500
++++ misc/build/Python-2.7.12/Lib/distutils/ccompiler.py	2016-09-02 16:42:21.499097000 -0500
+@@ -896,6 +896,7 @@
+     # on a cygwin built python we can use gcc like an ordinary UNIXish
+     # compiler
+     ('cygwin.*', 'unix'),
++    ('winmingw*', 'unix'),
+     ('os2emx', 'emx'),
+ 
+     # OS name mappings
+diff -ru misc/Python-2.7.12/Lib/distutils/command/build_ext.py misc/build/Python-2.7.12/Lib/distutils/command/build_ext.py
+--- misc/Python-2.7.12/Lib/distutils/command/build_ext.py	2016-06-25 16:49:30.000000000 -0500
++++ misc/build/Python-2.7.12/Lib/distutils/command/build_ext.py	2016-09-02 16:42:21.499914000 -0500
+@@ -223,7 +223,7 @@
+ 
+         # for extensions under Cygwin and AtheOS Python's library directory must be
+         # appended to library_dirs
+-        if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos':
++        if sys.platform[:6] == 'cygwin' or sys.platform[:8] == 'winmingw' or sys.platform[:6] == 'atheos':
+             if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")):
+                 # building third party extensions
+                 self.library_dirs.append(os.path.join(sys.prefix, "lib",
+@@ -725,7 +725,7 @@
+             # don't extend ext.libraries, it may be shared with other
+             # extensions, it is a reference to the original list
+             return ext.libraries + [pythonlib]
+-        elif sys.platform[:6] == "cygwin":
++        elif sys.platform[:6] == "cygwin" or sys.platform[:8] == "winmingw":
+             template = "python%d.%d"
+             pythonlib = (template %
+                    (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff))
+diff -ru misc/Python-2.7.12/Lib/distutils/command/install.py misc/build/Python-2.7.12/Lib/distutils/command/install.py
+--- misc/Python-2.7.12/Lib/distutils/command/install.py	2016-06-25 16:49:30.000000000 -0500
++++ misc/build/Python-2.7.12/Lib/distutils/command/install.py	2016-09-02 16:42:21.500659000 -0500
+@@ -348,9 +348,10 @@
+ 
+         # Convert directories from Unix /-separated syntax to the local
+         # convention.
+-        self.convert_paths('lib', 'purelib', 'platlib',
+-                           'scripts', 'data', 'headers',
+-                           'userbase', 'usersite')
++        if os.sep != '/':
++            self.convert_paths('lib', 'purelib', 'platlib',
++                               'scripts', 'data', 'headers',
++                               'userbase', 'usersite')
+ 
+         # Well, we're not actually fully completely finalized yet: we still
+         # have to deal with 'extra_path', which is the hack for allowing
+@@ -362,7 +363,7 @@
+ 
+         # If a new root directory was supplied, make all the installation
+         # dirs relative to it.
+-        if self.root is not None:
++        if self.root is not None and self.root != "":
+             self.change_roots('libbase', 'lib', 'purelib', 'platlib',
+                               'scripts', 'data', 'headers')
+ 
+@@ -501,7 +502,10 @@
+     def convert_paths (self, *names):
+         for name in names:
+             attr = "install_" + name
+-            setattr(self, attr, convert_path(getattr(self, attr)))
++            if self.root is None or self.root == "":
++                setattr(self, attr, getattr(self, attr).replace('/', os.sep))
++            else:
++                setattr(self, attr, convert_path(getattr(self, attr)))
+ 
+ 
+     def handle_extra_path (self):
+diff -ru misc/Python-2.7.12/Lib/distutils/spawn.py misc/build/Python-2.7.12/Lib/distutils/spawn.py
+--- misc/Python-2.7.12/Lib/distutils/spawn.py	2016-06-25 16:49:30.000000000 -0500
++++ misc/build/Python-2.7.12/Lib/distutils/spawn.py	2016-09-02 16:42:21.501126000 -0500
+@@ -212,7 +212,7 @@
+     paths = path.split(os.pathsep)
+     base, ext = os.path.splitext(executable)
+ 
+-    if (sys.platform == 'win32' or os.name == 'os2') and (ext != '.exe'):
++    if (sys.platform == 'win32' or sys.platform[:8] == "winmingw" or os.name == 'os2') and (ext != '.exe'):
+         executable = executable + '.exe'
+ 
+     if not os.path.isfile(executable):
+diff -ru misc/Python-2.7.12/Lib/distutils/sysconfig.py misc/build/Python-2.7.12/Lib/distutils/sysconfig.py
+--- misc/Python-2.7.12/Lib/distutils/sysconfig.py	2016-06-25 16:49:30.000000000 -0500
++++ misc/build/Python-2.7.12/Lib/distutils/sysconfig.py	2016-09-02 16:42:21.501681000 -0500
+@@ -450,6 +450,9 @@
+     global _config_vars
+     if _config_vars is None:
+         func = globals().get("_init_" + os.name)
++        if sys.platform[:8] == "winmingw":
++            func = globals().get("_init_posix")
++
+         if func:
+             func()
+         else:
+diff -ru misc/Python-2.7.12/Lib/distutils/unixccompiler.py misc/build/Python-2.7.12/Lib/distutils/unixccompiler.py
+--- misc/Python-2.7.12/Lib/distutils/unixccompiler.py	2016-06-25 16:49:30.000000000 -0500
++++ misc/build/Python-2.7.12/Lib/distutils/unixccompiler.py	2016-09-02 16:44:54.962041000 -0500
+@@ -82,7 +82,7 @@
+     xcode_stub_lib_extension = ".tbd"
+     static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s"
+     xcode_stub_lib_format = dylib_lib_format
+-    if sys.platform == "cygwin":
++    if sys.platform == "cygwin" or sys.platform == "winmingw":
+         exe_extension = ".exe"
+ 
+     def preprocess(self, source,
+diff -ru misc/Python-2.7.12/Lib/os.py misc/build/Python-2.7.12/Lib/os.py
+--- misc/Python-2.7.12/Lib/os.py	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Lib/os.py	2016-09-02 16:42:21.503786000 -0500
+@@ -38,7 +38,21 @@
+     except AttributeError:
+         return [n for n in dir(module) if n[0] != '_']
+ 
+-if 'posix' in _names:
++if 'winmingw32' in _names:
++    name = 'nt'
++    linesep = '\r\n'
++    from posix import *
++    try:
++        from posix import _exit
++    except ImportError:
++        pass
++    import ntpath as path
++
++    import posix
++    __all__.extend(_get_exports_list(posix))
++    del posix
++
++elif 'posix' in _names:
+     name = 'posix'
+     linesep = '\n'
+     from posix import *
+diff -ru misc/Python-2.7.12/Lib/socket.py misc/build/Python-2.7.12/Lib/socket.py
+--- misc/Python-2.7.12/Lib/socket.py	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Lib/socket.py	2016-09-02 16:42:21.504874000 -0500
+@@ -157,7 +157,7 @@
+     'sendall', 'setblocking',
+     'settimeout', 'gettimeout', 'shutdown')
+ 
+-if os.name == "nt":
++if os.name == "nt" and sys.platform[:8] != "winmingw":
+     _socketmethods = _socketmethods + ('ioctl',)
+ 
+ if sys.platform == "riscos":
+diff -ru misc/Python-2.7.12/Makefile.pre.in misc/build/Python-2.7.12/Makefile.pre.in
+--- misc/Python-2.7.12/Makefile.pre.in	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Makefile.pre.in	2016-09-02 16:42:21.506300000 -0500
+@@ -126,6 +126,16 @@
+ BLDSHARED=	@BLDSHARED@ $(LDFLAGS)
+ LDCXXSHARED=	@LDCXXSHARED@
+ DESTSHARED=	$(BINLIBDEST)/lib-dynload
++ifeq (@MACHDEP@,winmingw32)
++DESTSHAREDFORRULES=	$(shell cd $(DESTSHARED) && pwd || echo DESTSHARED)
++LIBPYTHONPATH=	$(shell cd $(DESTDIR)$(LIBDEST) && cmd /c cd | sed -e s:\\\\:/:g)
++DESTPYTHONPATH=	$(LIBPYTHONPATH);$(shell cd $(DESTDIR)$(DESTSHARED) && cmd /c cd | sed -e s:\\\\:/:g)
++LIBDESTPARAM=	$(shell if test -z "$(DESTDIR)" ; then cd $(LIBDEST) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(LIBDEST) ; fi)
++PREFIXPARAM=	$(shell if test -z "$(DESTDIR)" ; then cd $(prefix) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(prefix) ; fi)
++BINDIRPARAM=	$(shell if test -z "$(DESTDIR)" ; then cd $(BINDIR) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(BINDIR) ; fi)
++DESTSHAREDPARAM=	$(shell if test -z "$(DESTDIR)" ; then cd $(DESTSHARED) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(DESTSHARED) ; fi)
++DESTDIRPARAM=	$(shell if test ! -z "$(DESTDIR)" ; then cd $(DESTDIR) && cmd /c | sed -e s:\\\\:/:g ; fi)
++endif
+ 
+ # Executable suffix (.exe on Windows and Mac OS X)
+ EXE=		@EXEEXT@
+@@ -226,7 +236,7 @@
+ # Modules
+ MODULE_OBJS=	\
+ 		Modules/config.o \
+-		Modules/getpath.o \
++		@GETPATH_OBJS@ \
+ 		Modules/main.o \
+ 		Modules/gcmodule.o
+ 
+@@ -671,6 +681,10 @@
+ 		-DVPATH='"$(VPATH)"' \
+ 		-o $@ $(srcdir)/Modules/getpath.c
+ 
++PC/getpathp.o: $(srcdir)/PC/getpathp.c Makefile
++	$(CC) -c $(PY_CFLAGS) -DVERSION='"$(VERSION)"' \
++		-o $@ $(srcdir)/PC/getpathp.c
++
+ Modules/python.o: $(srcdir)/Modules/python.c
+ 	$(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c
+ 
+@@ -728,6 +742,12 @@
+ Objects/unicodectype.o:	$(srcdir)/Objects/unicodectype.c \
+ 				$(srcdir)/Objects/unicodetype_db.h
+ 
++Objects/exceptions.o:	$(srcdir)/Objects/exceptions.c
++		$(CC) -c $(PY_CFLAGS) -I$(srcdir)/PC -o $@ $(srcdir)/Objects/exceptions.c
++
++PC/import_nt.o: $(srcdir)/PC/import_nt.c
++		$(CC) -c $(PY_CFLAGS) -I$(srcdir)/Python -o $@ $(srcdir)/PC/import_nt.c
++
+ STRINGLIB_HEADERS= \
+ 		$(srcdir)/Include/bytes_methods.h \
+ 		$(srcdir)/Objects/stringlib/count.h \
+@@ -947,7 +967,11 @@
+ # Install shared libraries enabled by Setup
+ DESTDIRS=	$(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
+ 
++ifeq (@MACHDEP@,winmingw32)
++oldsharedinstall: $(DESTSHAREDFORRULES) $(SHAREDMODS)
++else
+ oldsharedinstall: $(DESTSHARED) $(SHAREDMODS)
++endif
+ 		@for i in X $(SHAREDMODS); do \
+ 		  if test $$i != X; then \
+ 		    echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
+@@ -955,7 +979,11 @@
+ 		  fi; \
+ 		done
+ 
++ifeq (@MACHDEP@,winmingw32)
++$(DESTSHAREDFORRULES):
++else
+ $(DESTSHARED):
++endif
+ 		@for i in $(DESTDIRS); \
+ 		do \
+ 			if test ! -d $(DESTDIR)$$i; then \
+@@ -1072,7 +1100,11 @@
+ 		unittest unittest/test \
+ 		lib-old \
+ 		curses pydoc_data $(MACHDEPS)
++ifeq (@MACHDEP@,winmingw32)
++libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c sharedinstall
++else
+ libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
++endif
+ 	@for i in $(SCRIPTDIR) $(LIBDEST); \
+ 	do \
+ 		if test ! -d $(DESTDIR)$$i; then \
+@@ -1132,6 +1164,26 @@
+ 		$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
+ 			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
+ 	fi
++ifeq (@MACHDEP@,winmingw32)
++	PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
++		./$(BUILDPYTHON) -Wi -tt $(LIBPYTHONPATH)/compileall.py \
++		-d $(LIBDESTPARAM) -f \
++		-x 'bad_coding|badsyntax|site-packages' $(LIBPYTHONPATH)
++	PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
++		./$(BUILDPYTHON) -Wi -tt -O $(LIBPYTHONPATH)/compileall.py \
++		-d $(LIBDESTPARAM) -f \
++		-x 'bad_coding|badsyntax|site-packages' $(LIBPYTHONPATH)
++	-PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
++		./$(BUILDPYTHON) -Wi -t $(LIBPYTHONPATH)/compileall.py \
++		-d $(LIBDESTPARAM)/site-packages -f \
++		-x badsyntax $(LIBPYTHONPATH)/site-packages
++	-PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
++		./$(BUILDPYTHON) -Wi -t -O $(LIBPYTHONPATH)/compileall.py \
++		-d $(LIBDESTPARAM)/site-packages -f \
++		-x badsyntax $(LIBPYTHONPATH)/site-packages
++	-PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
++		./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
++else
+ 	PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+ 		$(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
+ 		-d $(LIBDEST) -f \
+@@ -1158,6 +1210,7 @@
+ # Create the PLATDIR source directory, if one wasn't distributed..
+ $(srcdir)/Lib/$(PLATDIR):
+ 	mkdir $(srcdir)/Lib/$(PLATDIR)
++ifneq (@MACHDEP@,winmingw32)
+ 	cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen
+ 	export PATH; PATH="`pwd`:$$PATH"; \
+ 	export PYTHONPATH; PYTHONPATH="$(srcdir)/Lib:$(abs_builddir)/`cat pybuilddir.txt`"; \
+@@ -1171,6 +1224,7 @@
+ 	  PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \
+ 	fi; \
+ 	cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
++endif
+ 
+ python-config: $(srcdir)/Misc/python-config.in
+ 	# Substitution happens here, as the completely-expanded BINDIR
+@@ -1264,6 +1318,15 @@
+ 
+ # Install the dynamically loadable modules
+ # This goes into $(exec_prefix)
++ifeq (@MACHDEP@,winmingw32)
++sharedinstall: $(DESTSHAREDFORRULES)
++       $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
++               --prefix=$(PREFIXPARAM) \
++               --install-scripts=$(BINDIRPARAM) \
++               --install-platlib=$(DESTSHAREDPARAM) \
++               --root=$(DESTDIRPARAM)
++else
++
+ sharedinstall: sharedmods
+ 	$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
+ 	   	--prefix=$(prefix) \
+@@ -1271,6 +1334,7 @@
+ 		--install-platlib=$(DESTSHARED) \
+ 		--root=$(DESTDIR)/
+ 	-rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata.py*
++endif
+ 
+ # Here are a couple of targets for MacOSX again, to install a full
+ # framework-based Python. frameworkinstall installs everything, the
+diff -ru misc/Python-2.7.12/Modules/Setup.config.in misc/build/Python-2.7.12/Modules/Setup.config.in
+--- misc/Python-2.7.12/Modules/Setup.config.in	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Modules/Setup.config.in	2016-09-02 16:42:21.507091000 -0500
+@@ -9,5 +9,9 @@
+ # The signal module
+ @USE_SIGNAL_MODULE at signal signalmodule.c
+ 
++# The password module
++ at USE_PASSWORD_MODULE@pwd pwdmodule.c	# this is needed to find out the user's home dir
++					# if $HOME is not set
++
+ # The rest of the modules previously listed in this file are built
+ # by the setup.py script in Python 2.1 and later.
+diff -ru misc/Python-2.7.12/Modules/Setup.dist misc/build/Python-2.7.12/Modules/Setup.dist
+--- misc/Python-2.7.12/Modules/Setup.dist	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Modules/Setup.dist	2016-09-02 16:42:21.507936000 -0500
+@@ -114,7 +114,7 @@
+ 
+ posix posixmodule.c		# posix (UNIX) system calls
+ errno errnomodule.c		# posix (UNIX) errno values
+-pwd pwdmodule.c			# this is needed to find out the user's home dir
++#pwd pwdmodule.c			# this is needed to find out the user's home dir
+ 				# if $HOME is not set
+ _sre _sre.c			# Fredrik Lundh's new regular expressions
+ _codecs _codecsmodule.c		# access to the builtin codecs and codec registry
+diff -ru misc/Python-2.7.12/Modules/_ctypes/libffi/configure misc/build/Python-2.7.12/Modules/_ctypes/libffi/configure
+--- misc/Python-2.7.12/Modules/_ctypes/libffi/configure	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Modules/_ctypes/libffi/configure	2016-09-02 16:42:21.516830000 -0500
+@@ -18807,6 +18807,12 @@
+ fi
+ 
+ 
++case $host_os in
++mingw*)
++	srcdir=`cd $srcdir && cmd /c cd | sed -e 's:\\\\:/:g'`
++	;;
++esac
++
+ ac_config_commands="$ac_config_commands include"
+ 
+ ac_config_commands="$ac_config_commands src"
+diff -ru misc/Python-2.7.12/Modules/_ctypes/libffi/configure.ac misc/build/Python-2.7.12/Modules/_ctypes/libffi/configure.ac
+--- misc/Python-2.7.12/Modules/_ctypes/libffi/configure.ac	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Modules/_ctypes/libffi/configure.ac	2016-09-02 16:42:21.517727000 -0500
+@@ -613,6 +613,12 @@
+ fi
+ AC_SUBST(toolexeclibdir)
+ 
++case $host_os in
++mingw*)
++	srcdir=`cd $srcdir && cmd /c cd | sed -e 's:\\\\:/:g'`
++	;;
++esac
++
+ AC_CONFIG_COMMANDS(include, [test -d include || mkdir include])
+ AC_CONFIG_COMMANDS(src, [
+ test -d src || mkdir src
+diff -ru misc/Python-2.7.12/Modules/_ctypes/libffi/include/ffi.h.in misc/build/Python-2.7.12/Modules/_ctypes/libffi/include/ffi.h.in
+--- misc/Python-2.7.12/Modules/_ctypes/libffi/include/ffi.h.in	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Modules/_ctypes/libffi/include/ffi.h.in	2016-09-02 16:42:21.518314000 -0500
+@@ -433,7 +433,11 @@
+ 			    ffi_type *rtype,
+ 			    ffi_type **atypes);
+ 
++#ifdef MS_WIN32
++int ffi_call(ffi_cif *cif,
++#else
+ void ffi_call(ffi_cif *cif,
++#endif
+ 	      void (*fn)(void),
+ 	      void *rvalue,
+ 	      void **avalue);
+diff -ru misc/Python-2.7.12/Modules/config.c.in misc/build/Python-2.7.12/Modules/config.c.in
+--- misc/Python-2.7.12/Modules/config.c.in	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Modules/config.c.in	2016-09-02 16:42:21.518926000 -0500
+@@ -48,6 +48,9 @@
+     {"__builtin__", NULL},
+     {"sys", NULL},
+     {"exceptions", NULL},
++#ifdef __MINGW32__
++	{"winmingw32", NULL},
++#endif
+ 
+     /* This lives in gcmodule.c */
+     {"gc", initgc},
+diff -ru misc/Python-2.7.12/Modules/posixmodule.c misc/build/Python-2.7.12/Modules/posixmodule.c
+--- misc/Python-2.7.12/Modules/posixmodule.c	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Modules/posixmodule.c	2016-09-02 16:42:21.523456000 -0500
+@@ -132,6 +132,15 @@
+ #define HAVE_FSYNC      1
+ #define fsync _commit
+ #else
++#ifdef __MINGW32__
++#define HAVE_SPAWNV	1
++#define HAVE_EXECV      1
++#define HAVE_GETCWD     1
++#define HAVE_OPENDIR    1
++#define HAVE_PIPE       1
++#define HAVE_POPEN      1
++#define HAVE_SYSTEM	1
++#else
+ #if defined(PYOS_OS2) && defined(PYCC_GCC) || defined(__VMS)
+ /* Everything needed is defined in PC/os2emx/pyconfig.h or vms/pyconfig.h */
+ #else                   /* all other compilers */
+@@ -157,6 +166,7 @@
+ #define HAVE_WAIT       1
+ #define HAVE_TTYNAME    1
+ #endif  /* PYOS_OS2 && PYCC_GCC && __VMS */
++#endif  /* __MINGW32__ */
+ #endif  /* _MSC_VER */
+ #endif  /* __BORLANDC__ */
+ #endif  /* ! __WATCOMC__ || __QNX__ */
+@@ -277,6 +287,14 @@
+ #define pclose  _pclose
+ #endif /* _MSC_VER */
+ 
++#ifdef __MINGW32__
++#include "osdefs.h"
++#include <windows.h>
++#include <shellapi.h>	/* for ShellExecute() */
++#define popen	_popen
++#define pclose	_pclose
++#endif
++
+ #if defined(PYCC_VACPP) && defined(PYOS_OS2)
+ #include <io.h>
+ #endif /* OS2 */
+@@ -630,7 +648,7 @@
+ */
+ #include <crt_externs.h>
+ static char **environ;
+-#elif !defined(_MSC_VER) && ( !defined(__WATCOMC__) || defined(__QNX__) )
++#elif !defined(_MSC_VER) && !defined(__MINGW32__) && ( !defined(__WATCOMC__) || defined(__QNX__) )
+ extern char **environ;
+ #endif /* !_MSC_VER */
+ 
+@@ -1049,7 +1067,7 @@
+     int st_ctime_nsec;
+ };
+ 
+-static __int64 secs_between_epochs = 11644473600; /* Seconds between 1.1.1601 and 1.1.1970 */
++static __int64 secs_between_epochs = 11644473600LL; /* Seconds between 1.1.1601 and 1.1.1970 */
+ 
+ static void
+ FILE_TIME_to_time_t_nsec(FILETIME *in_ptr, time_t *time_out, int* nsec_out)
+@@ -1568,7 +1586,7 @@
+     return v;
+ }
+ 
+-#ifdef MS_WINDOWS
++#if defined(MS_WINDOWS) && !defined(__MINGW32__)
+ 
+ /* IsUNCRoot -- test whether the supplied path is of the form \\SERVER\SHARE\,
+    where / can be used in place of \ and the trailing slash is optional.
+diff -ru misc/Python-2.7.12/Modules/socketmodule.c misc/build/Python-2.7.12/Modules/socketmodule.c
+--- misc/Python-2.7.12/Modules/socketmodule.c	2016-06-25 16:49:31.000000000 -0500
++++ misc/build/Python-2.7.12/Modules/socketmodule.c	2016-09-02 16:42:21.526595000 -0500
+@@ -339,7 +339,7 @@
+   /* Do not include addrinfo.h for MSVC7 or greater. 'addrinfo' and
+    * EAI_* constants are defined in (the already included) ws2tcpip.h.
+    */
+-#else
++#elif !defined(__MINGW32__)
+ #  include "addrinfo.h"
+ #endif
+ 
+diff -ru misc/Python-2.7.12/PC/_winreg.c misc/build/Python-2.7.12/PC/_winreg.c
+--- misc/Python-2.7.12/PC/_winreg.c	2016-06-25 16:49:32.000000000 -0500
++++ misc/build/Python-2.7.12/PC/_winreg.c	2016-09-02 16:42:21.528227000 -0500
+@@ -1792,6 +1792,9 @@
+ }
+ 
+ #define ADD_KEY(val) inskey(d, #val, val)
++#ifndef REG_LEGAL_CHANGE_FILTER
++#define REG_LEGAL_CHANGE_FILTER (REG_NOTIFY_CHANGE_NAME|REG_NOTIFY_CHANGE_ATTRIBUTES|REG_NOTIFY_CHANGE_LAST_SET|REG_NOTIFY_CHANGE_SECURITY)
++#endif
+ 
+ PyMODINIT_FUNC init_winreg(void)
+ {
+diff -ru misc/Python-2.7.12/Python/dynload_win.c misc/build/Python-2.7.12/Python/dynload_win.c
+--- misc/Python-2.7.12/Python/dynload_win.c	2016-06-25 16:49:32.000000000 -0500
++++ misc/build/Python-2.7.12/Python/dynload_win.c	2016-09-02 16:42:21.528984000 -0500
+@@ -28,6 +28,7 @@
+ /* Case insensitive string compare, to avoid any dependencies on particular
+    C RTL implementations */
+ 
++#ifndef __MINGW32__
+ static int strcasecmp (char *string1, char *string2)
+ {
+     int first, second;
+@@ -41,6 +42,7 @@
+ 
+     return (first - second);
+ }
++#endif
+ 
+ 
+ /* Function to return the name of the "python" DLL that the supplied module
+diff -ru misc/Python-2.7.12/Python/frozenmain.c misc/build/Python-2.7.12/Python/frozenmain.c
+--- misc/Python-2.7.12/Python/frozenmain.c	2016-06-25 16:49:32.000000000 -0500
++++ misc/build/Python-2.7.12/Python/frozenmain.c	2016-09-02 16:46:11.594746000 -0500
+@@ -3,7 +3,7 @@
+ 
+ #include "Python.h"
+ 
+-#ifdef MS_WINDOWS
++#if defined(MS_WINDOWS) && !defined(__MINGW32__)
+ extern void PyWinFreeze_ExeInit(void);
+ extern void PyWinFreeze_ExeTerm(void);
+ extern int PyInitFrozenExtensions(void);
+@@ -32,13 +32,13 @@
+         setbuf(stderr, (char *)NULL);
+     }
+ 
+-#ifdef MS_WINDOWS
++#ifdef MS_WINDOWS && !defined(__MINGW32__)
+     PyInitFrozenExtensions();
+ #endif /* MS_WINDOWS */
+     if (argc >= 1)
+         Py_SetProgramName(argv[0]);
+     Py_Initialize();
+-#ifdef MS_WINDOWS
++#ifdef MS_WINDOWS && !defined(__MINGW32__)
+     PyWinFreeze_ExeInit();
+ #endif
+ 
+@@ -61,7 +61,7 @@
+     if (inspect && isatty((int)fileno(stdin)))
+         sts = PyRun_AnyFile(stdin, "<stdin>") != 0;
+ 
+-#ifdef MS_WINDOWS
++#ifdef MS_WINDOWS && !defined(__MINGW32__)
+     PyWinFreeze_ExeTerm();
+ #endif
+     Py_Finalize();
+Only in misc/build/Python-2.7.12/Python: frozenmain.c.rej
diff --git a/python/python-2.7.9-nohardlink.patch b/python/python-2.7.12-nohardlink.patch
similarity index 68%
rename from python/python-2.7.9-nohardlink.patch
rename to python/python-2.7.12-nohardlink.patch
index 01b5c66..9154af7 100644
--- a/python/python-2.7.9-nohardlink.patch
+++ b/python/python-2.7.12-nohardlink.patch
@@ -1,6 +1,6 @@
---- misc/Python-2.7.9/Makefile.pre.in	2012-04-09 18:07:33.000000000 -0500
-+++ misc/build/Python-2.7.9/Makefile.pre.in	2012-07-22 14:54:26.000000000 -0500
-@@ -491,7 +491,7 @@
+--- misc/Python-2.7.12/Makefile.pre.in	2012-04-09 18:07:33.000000000 -0500
++++ misc/build/Python-2.7.12/Makefile.pre.in	2012-07-22 14:54:26.000000000 -0500
+@@ -563,7 +563,7 @@
  libpython$(VERSION).so: $(LIBRARY_OBJS)
  	if test $(INSTSONAME) != $(LDLIBRARY); then \
  		$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
diff --git a/python/python-2.7.9-pcbuild.patch b/python/python-2.7.12-pcbuild.patch
similarity index 84%
rename from python/python-2.7.9-pcbuild.patch
rename to python/python-2.7.12-pcbuild.patch
index 3c2a0a5..9f029d6 100644
--- a/python/python-2.7.9-pcbuild.patch
+++ b/python/python-2.7.12-pcbuild.patch
@@ -1,6 +1,6 @@
-diff -u misc/Python-2.7.9/PCbuild/_bsddb.vcproj misc/build/Python-2.7.9/PCbuild/_bsddb.vcproj
---- misc/Python-2.7.9/PCbuild/_bsddb.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_bsddb.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_bsddb.vcproj misc/build/Python-2.7.12/PC/VS9.0/_bsddb.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_bsddb.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_bsddb.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -56,6 +56,7 @@
  			/>
  			<Tool
@@ -65,9 +65,9 @@ diff -u misc/Python-2.7.9/PCbuild/_bsddb.vcproj misc/build/Python-2.7.9/PCbuild/
  				AdditionalDependencies="$(bsddbDepLibs)"
  				BaseAddress="0x1e180000"
  				TargetMachine="17"
-diff -u misc/Python-2.7.9/PCbuild/_ctypes.vcproj misc/build/Python-2.7.9/PCbuild/_ctypes.vcproj
---- misc/Python-2.7.9/PCbuild/_ctypes.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_ctypes.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_ctypes.vcproj misc/build/Python-2.7.12/PC/VS9.0/_ctypes.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_ctypes.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_ctypes.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -177,7 +177,7 @@
  			/>
  			<Tool
@@ -122,9 +122,9 @@ diff -u misc/Python-2.7.9/PCbuild/_ctypes.vcproj misc/build/Python-2.7.9/PCbuild
  				SubSystem="0"
  				BaseAddress="0x1D1A0000"
  				TargetMachine="17"
-diff -u misc/Python-2.7.9/PCbuild/_ctypes_test.vcproj misc/build/Python-2.7.9/PCbuild/_ctypes_test.vcproj
---- misc/Python-2.7.9/PCbuild/_ctypes_test.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_ctypes_test.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_ctypes_test.vcproj misc/build/Python-2.7.12/PC/VS9.0/_ctypes_test.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_ctypes_test.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_ctypes_test.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -54,6 +54,7 @@
  			/>
  			<Tool
@@ -189,9 +189,9 @@ diff -u misc/Python-2.7.9/PCbuild/_ctypes_test.vcproj misc/build/Python-2.7.9/PC
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/_elementtree.vcproj misc/build/Python-2.7.9/PCbuild/_elementtree.vcproj
---- misc/Python-2.7.9/PCbuild/_elementtree.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_elementtree.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_elementtree.vcproj misc/build/Python-2.7.12/PC/VS9.0/_elementtree.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_elementtree.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_elementtree.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -57,6 +57,7 @@
  			<Tool
  				Name="VCLinkerTool"
@@ -256,9 +256,9 @@ diff -u misc/Python-2.7.9/PCbuild/_elementtree.vcproj misc/build/Python-2.7.9/PC
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/_hashlib.vcproj misc/build/Python-2.7.9/PCbuild/_hashlib.vcproj
---- misc/Python-2.7.9/PCbuild/_hashlib.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_hashlib.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_hashlib.vcproj misc/build/Python-2.7.12/PC/VS9.0/_hashlib.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_hashlib.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_hashlib.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -58,6 +58,7 @@
  			<Tool
  				Name="VCLinkerTool"
@@ -323,9 +323,9 @@ diff -u misc/Python-2.7.9/PCbuild/_hashlib.vcproj misc/build/Python-2.7.9/PCbuil
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/_msi.vcproj misc/build/Python-2.7.9/PCbuild/_msi.vcproj
---- misc/Python-2.7.9/PCbuild/_msi.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_msi.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_msi.vcproj misc/build/Python-2.7.12/PC/VS9.0/_msi.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_msi.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_msi.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -56,6 +56,7 @@
  				Name="VCLinkerTool"
  				AdditionalDependencies="fci.lib msi.lib rpcrt4.lib"
@@ -390,9 +390,9 @@ diff -u misc/Python-2.7.9/PCbuild/_msi.vcproj misc/build/Python-2.7.9/PCbuild/_m
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/_multiprocessing.vcproj misc/build/Python-2.7.9/PCbuild/_multiprocessing.vcproj
---- misc/Python-2.7.9/PCbuild/_multiprocessing.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_multiprocessing.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_multiprocessing.vcproj misc/build/Python-2.7.12/PC/VS9.0/_multiprocessing.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_multiprocessing.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_multiprocessing.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -56,6 +56,7 @@
  				Name="VCLinkerTool"
  				AdditionalDependencies="ws2_32.lib"
@@ -457,9 +457,9 @@ diff -u misc/Python-2.7.9/PCbuild/_multiprocessing.vcproj misc/build/Python-2.7.
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/_socket.vcproj misc/build/Python-2.7.9/PCbuild/_socket.vcproj
---- misc/Python-2.7.9/PCbuild/_socket.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_socket.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_socket.vcproj misc/build/Python-2.7.12/PC/VS9.0/_socket.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_socket.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_socket.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -56,6 +56,7 @@
  				Name="VCLinkerTool"
  				AdditionalDependencies="ws2_32.lib"
@@ -524,9 +524,9 @@ diff -u misc/Python-2.7.9/PCbuild/_socket.vcproj misc/build/Python-2.7.9/PCbuild
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/_sqlite3.vcproj misc/build/Python-2.7.9/PCbuild/_sqlite3.vcproj
---- misc/Python-2.7.9/PCbuild/_sqlite3.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_sqlite3.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_sqlite3.vcproj misc/build/Python-2.7.12/PC/VS9.0/_sqlite3.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_sqlite3.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_sqlite3.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -57,6 +57,7 @@
  			<Tool
  				Name="VCLinkerTool"
@@ -591,9 +591,9 @@ diff -u misc/Python-2.7.9/PCbuild/_sqlite3.vcproj misc/build/Python-2.7.9/PCbuil
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/_ssl.vcproj misc/build/Python-2.7.9/PCbuild/_ssl.vcproj
---- misc/Python-2.7.9/PCbuild/_ssl.vcproj	2014-12-10 07:59:58.000000000 -0800
-+++ misc/build/Python-2.7.9/PCbuild/_ssl.vcproj	2016-09-02 03:56:17.659101000 -0700
+diff -u misc/Python-2.7.12/PC/VS9.0/_ssl.vcproj misc/build/Python-2.7.12/PC/VS9.0/_ssl.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_ssl.vcproj	2014-12-10 07:59:58.000000000 -0800
++++ misc/build/Python-2.7.12/PC/VS9.0/_ssl.vcproj	2016-09-02 03:56:17.659101000 -0700
 @@ -43,7 +43,7 @@
  			/>
  			<Tool
@@ -689,9 +689,9 @@ diff -u misc/Python-2.7.9/PCbuild/_ssl.vcproj misc/build/Python-2.7.9/PCbuild/_s
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/_testcapi.vcproj misc/build/Python-2.7.9/PCbuild/_testcapi.vcproj
---- misc/Python-2.7.9/PCbuild/_testcapi.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_testcapi.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_testcapi.vcproj misc/build/Python-2.7.12/PC/VS9.0/_testcapi.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_testcapi.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_testcapi.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -55,6 +55,7 @@
  			<Tool
  				Name="VCLinkerTool"
@@ -756,9 +756,9 @@ diff -u misc/Python-2.7.9/PCbuild/_testcapi.vcproj misc/build/Python-2.7.9/PCbui
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/_tkinter.vcproj misc/build/Python-2.7.9/PCbuild/_tkinter.vcproj
---- misc/Python-2.7.9/PCbuild/_tkinter.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/_tkinter.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/_tkinter.vcproj misc/build/Python-2.7.12/PC/VS9.0/_tkinter.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/_tkinter.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/_tkinter.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -57,6 +57,7 @@
  			<Tool
  				Name="VCLinkerTool"
@@ -823,9 +823,9 @@ diff -u misc/Python-2.7.9/PCbuild/_tkinter.vcproj misc/build/Python-2.7.9/PCbuil
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/bdist_wininst.vcproj misc/build/Python-2.7.9/PCbuild/bdist_wininst.vcproj
---- misc/Python-2.7.9/PCbuild/bdist_wininst.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/bdist_wininst.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/bdist_wininst.vcproj misc/build/Python-2.7.12/PC/VS9.0/bdist_wininst.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/bdist_wininst.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/bdist_wininst.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -81,8 +81,7 @@
  				IgnoreDefaultLibraryNames="LIBC"
  				ProgramDatabaseFile="..\lib\distutils\command\wininst-9.0.pdb"
@@ -846,9 +846,9 @@ diff -u misc/Python-2.7.9/PCbuild/bdist_wininst.vcproj misc/build/Python-2.7.9/P
  				TargetMachine="17"
  			/>
  			<Tool
-diff -u misc/Python-2.7.9/PCbuild/bz2.vcproj misc/build/Python-2.7.9/PCbuild/bz2.vcproj
---- misc/Python-2.7.9/PCbuild/bz2.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/bz2.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/bz2.vcproj misc/build/Python-2.7.12/PC/VS9.0/bz2.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/bz2.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/bz2.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -57,6 +57,7 @@
  			<Tool
  				Name="VCLinkerTool"
@@ -913,9 +913,9 @@ diff -u misc/Python-2.7.9/PCbuild/bz2.vcproj misc/build/Python-2.7.9/PCbuild/bz2
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/kill_python.vcproj misc/build/Python-2.7.9/PCbuild/kill_python.vcproj
---- misc/Python-2.7.9/PCbuild/kill_python.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/kill_python.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/kill_python.vcproj misc/build/Python-2.7.12/PC/VS9.0/kill_python.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/kill_python.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/kill_python.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -56,6 +56,7 @@
  				Name="VCLinkerTool"
  				OutputFile="$(OutDir)\$(ProjectName)_d.exe"
@@ -948,9 +948,9 @@ diff -u misc/Python-2.7.9/PCbuild/kill_python.vcproj misc/build/Python-2.7.9/PCb
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/make_buildinfo.vcproj misc/build/Python-2.7.9/PCbuild/make_buildinfo.vcproj
---- misc/Python-2.7.9/PCbuild/make_buildinfo.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/make_buildinfo.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/make_buildinfo.vcproj misc/build/Python-2.7.12/PC/VS9.0/make_buildinfo.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/make_buildinfo.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/make_buildinfo.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -61,6 +61,7 @@
  				OutputFile="$(OutDir)/make_buildinfo.exe"
  				ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
@@ -967,9 +967,9 @@ diff -u misc/Python-2.7.9/PCbuild/make_buildinfo.vcproj misc/build/Python-2.7.9/
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/make_versioninfo.vcproj misc/build/Python-2.7.9/PCbuild/make_versioninfo.vcproj
---- misc/Python-2.7.9/PCbuild/make_versioninfo.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/make_versioninfo.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/make_versioninfo.vcproj misc/build/Python-2.7.12/PC/VS9.0/make_versioninfo.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/make_versioninfo.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/make_versioninfo.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -71,6 +71,7 @@
  				ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
  				SubSystem="1"
@@ -1002,9 +1002,9 @@ diff -u misc/Python-2.7.9/PCbuild/make_versioninfo.vcproj misc/build/Python-2.7.
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/pcbuild.sln misc/build/Python-2.7.9/PCbuild/pcbuild.sln
---- misc/Python-2.7.9/PCbuild/pcbuild.sln	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/pcbuild.sln	2012-07-30 21:04:33.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/pcbuild.sln misc/build/Python-2.7.12/PC/VS9.0/pcbuild.sln
+--- misc/Python-2.7.12/PC/VS9.0/pcbuild.sln	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/pcbuild.sln	2012-07-30 21:04:33.000000000 -0500
 @@ -38,12 +38,12 @@
  		{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
  	EndProjectSection
@@ -1099,9 +1099,9 @@ diff -u misc/Python-2.7.9/PCbuild/pcbuild.sln misc/build/Python-2.7.9/PCbuild/pc
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcproj", "{9E48B300-37D1-11DD-8C41-005056C00008}"
  	ProjectSection(ProjectDependencies) = postProject
  		{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
-diff -u misc/Python-2.7.9/PCbuild/pyexpat.vcproj misc/build/Python-2.7.9/PCbuild/pyexpat.vcproj
---- misc/Python-2.7.9/PCbuild/pyexpat.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/pyexpat.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/pyexpat.vcproj misc/build/Python-2.7.12/PC/VS9.0/pyexpat.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/pyexpat.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/pyexpat.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -56,6 +56,7 @@
  			/>
  			<Tool
@@ -1166,9 +1166,9 @@ diff -u misc/Python-2.7.9/PCbuild/pyexpat.vcproj misc/build/Python-2.7.9/PCbuild
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/python.vcproj misc/build/Python-2.7.9/PCbuild/python.vcproj
---- misc/Python-2.7.9/PCbuild/python.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/python.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/python.vcproj misc/build/Python-2.7.12/PC/VS9.0/python.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/python.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/python.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -66,6 +66,7 @@
  				SubSystem="1"
  				StackReserveSize="2000000"
@@ -1233,9 +1233,9 @@ diff -u misc/Python-2.7.9/PCbuild/python.vcproj misc/build/Python-2.7.9/PCbuild/
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/pythoncore.vcproj misc/build/Python-2.7.9/PCbuild/pythoncore.vcproj
---- misc/Python-2.7.9/PCbuild/pythoncore.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/pythoncore.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/pythoncore.vcproj misc/build/Python-2.7.12/PC/VS9.0/pythoncore.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/pythoncore.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/pythoncore.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -69,6 +69,7 @@
  				ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
  				BaseAddress="0x1e000000"
@@ -1306,9 +1306,9 @@ diff -u misc/Python-2.7.9/PCbuild/pythoncore.vcproj misc/build/Python-2.7.9/PCbu
  	</Globals>
 -</VisualStudioProject>
 +</VisualStudioProject>
-diff -u misc/Python-2.7.9/PCbuild/pythonw.vcproj misc/build/Python-2.7.9/PCbuild/pythonw.vcproj
---- misc/Python-2.7.9/PCbuild/pythonw.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/pythonw.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/pythonw.vcproj misc/build/Python-2.7.12/PC/VS9.0/pythonw.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/pythonw.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/pythonw.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -66,6 +66,7 @@
  				StackReserveSize="2000000"
  				BaseAddress="0x1d000000"
@@ -1373,9 +1373,9 @@ diff -u misc/Python-2.7.9/PCbuild/pythonw.vcproj misc/build/Python-2.7.9/PCbuild
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/select.vcproj misc/build/Python-2.7.9/PCbuild/select.vcproj
---- misc/Python-2.7.9/PCbuild/select.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/select.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/select.vcproj misc/build/Python-2.7.12/PC/VS9.0/select.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/select.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/select.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -57,6 +57,7 @@
  				AdditionalDependencies="ws2_32.lib"
  				IgnoreDefaultLibraryNames="libc"
@@ -1440,9 +1440,9 @@ diff -u misc/Python-2.7.9/PCbuild/select.vcproj misc/build/Python-2.7.9/PCbuild/
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/sqlite3.vcproj misc/build/Python-2.7.9/PCbuild/sqlite3.vcproj
---- misc/Python-2.7.9/PCbuild/sqlite3.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/sqlite3.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/sqlite3.vcproj misc/build/Python-2.7.12/PC/VS9.0/sqlite3.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/sqlite3.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/sqlite3.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -56,6 +56,7 @@
  			<Tool
  				Name="VCLinkerTool"
@@ -1507,9 +1507,9 @@ diff -u misc/Python-2.7.9/PCbuild/sqlite3.vcproj misc/build/Python-2.7.9/PCbuild
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/unicodedata.vcproj misc/build/Python-2.7.9/PCbuild/unicodedata.vcproj
---- misc/Python-2.7.9/PCbuild/unicodedata.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/unicodedata.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/unicodedata.vcproj misc/build/Python-2.7.12/PC/VS9.0/unicodedata.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/unicodedata.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/unicodedata.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -55,6 +55,7 @@
  			<Tool
  				Name="VCLinkerTool"
@@ -1574,9 +1574,9 @@ diff -u misc/Python-2.7.9/PCbuild/unicodedata.vcproj misc/build/Python-2.7.9/PCb
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/w9xpopen.vcproj misc/build/Python-2.7.9/PCbuild/w9xpopen.vcproj
---- misc/Python-2.7.9/PCbuild/w9xpopen.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/w9xpopen.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/w9xpopen.vcproj misc/build/Python-2.7.12/PC/VS9.0/w9xpopen.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/w9xpopen.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/w9xpopen.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -59,6 +59,7 @@
  			<Tool
  				Name="VCLinkerTool"
@@ -1641,9 +1641,9 @@ diff -u misc/Python-2.7.9/PCbuild/w9xpopen.vcproj misc/build/Python-2.7.9/PCbuil
  			/>
  			<Tool
  				Name="VCALinkTool"
-diff -u misc/Python-2.7.9/PCbuild/winsound.vcproj misc/build/Python-2.7.9/PCbuild/winsound.vcproj
---- misc/Python-2.7.9/PCbuild/winsound.vcproj	2012-04-09 18:07:35.000000000 -0500
-+++ misc/build/Python-2.7.9/PCbuild/winsound.vcproj	2012-07-30 20:59:37.000000000 -0500
+diff -u misc/Python-2.7.12/PC/VS9.0/winsound.vcproj misc/build/Python-2.7.12/PC/VS9.0/winsound.vcproj
+--- misc/Python-2.7.12/PC/VS9.0/winsound.vcproj	2012-04-09 18:07:35.000000000 -0500
++++ misc/build/Python-2.7.12/PC/VS9.0/winsound.vcproj	2012-07-30 20:59:37.000000000 -0500
 @@ -55,6 +55,7 @@
  			<Tool
  				Name="VCLinkerTool"
diff --git a/python/python-2.7.9-sysbase.patch b/python/python-2.7.12-sysbase.patch
similarity index 57%
rename from python/python-2.7.9-sysbase.patch
rename to python/python-2.7.12-sysbase.patch
index 623e569..292894f 100644
--- a/python/python-2.7.9-sysbase.patch
+++ b/python/python-2.7.12-sysbase.patch
@@ -1,7 +1,7 @@
-diff -ruN misc/Python-2.7.9/configure misc/build/Python-2.7.9/configure
---- misc/Python-2.7.9/configure	2014-06-29 21:05:48.000000000 -0500
-+++ misc/build/Python-2.7.9/configure	2016-01-01 15:18:37.398344671 -0500
-@@ -3199,7 +3199,9 @@
+diff -ruN misc/Python-2.7.12/configure misc/build/Python-2.7.12/configure
+--- misc/Python-2.7.12/configure	2014-06-29 21:05:48.000000000 -0500
++++ misc/build/Python-2.7.12/configure	2016-01-01 15:18:37.398344671 -0500
+@@ -3227,7 +3227,9 @@
  	ac_sys_release=
      else
  	ac_sys_system=`uname -s`
diff --git a/python/python-2.7.9-mingw.patch b/python/python-2.7.9-mingw.patch
deleted file mode 100644
index 127d342..0000000
--- a/python/python-2.7.9-mingw.patch
+++ /dev/null
@@ -1,1056 +0,0 @@
-diff -ru misc/Python-2.7.9/Include/pyport.h misc/build/Python-2.7.9/Include/pyport.h
---- misc/Python-2.7.9/Include/pyport.h	2014-06-29 21:05:24.000000000 -0500
-+++ misc/build/Python-2.7.9/Include/pyport.h	2016-01-01 17:49:55.171717963 -0500
-@@ -9,6 +9,30 @@
- #include <inttypes.h>
- #endif
- 
-+#if defined(__MINGW32__)
-+#undef HAVE_FORKPTY
-+#undef HAVE_OPENPTY
-+#undef HAVE_DEV_PTMX
-+#undef _POSIX_THREADS
-+#undef HAVE_PTHREAD_H
-+#define MS_WINDOWS
-+#define MS_WIN32
-+#define Py_WIN_WIDE_FILENAMES
-+#ifndef PYTHONPATH
-+#	define PYTHONPATH ".\\lib;.\\lib\\python" VERSION ";.\\lib\\python" VERSION "\\lib-dynload;.\\lib\\python" VERSION "\\plat-winmingw32;.\\lib\\python" VERSION "\\lib-tk"
-+#endif
-+#define NT_THREADS
-+#define WITH_THREAD
-+#define WINVER 0x0501
-+#ifdef socklen_t
-+#undef socklen_t
-+#endif
-+#define HAVE_ADDRINFO
-+#define HAVE_GETADDRINFO
-+#define HAVE_GETNAMEINFO
-+#define HAVE_GETPEERNAME
-+#endif
-+
- #ifdef HAVE_STDINT_H
- #include <stdint.h>
- #endif
-diff -ru misc/Python-2.7.9/Lib/distutils/ccompiler.py misc/build/Python-2.7.9/Lib/distutils/ccompiler.py
---- misc/Python-2.7.9/Lib/distutils/ccompiler.py	2014-06-29 21:05:25.000000000 -0500
-+++ misc/build/Python-2.7.9/Lib/distutils/ccompiler.py	2016-01-01 17:49:55.172717391 -0500
-@@ -895,6 +895,7 @@
-     # on a cygwin built python we can use gcc like an ordinary UNIXish
-     # compiler
-     ('cygwin.*', 'unix'),
-+    ('winmingw*', 'unix'),
-     ('os2emx', 'emx'),
- 
-     # OS name mappings
-diff -ru misc/Python-2.7.9/Lib/distutils/command/build_ext.py misc/build/Python-2.7.9/Lib/distutils/command/build_ext.py
---- misc/Python-2.7.9/Lib/distutils/command/build_ext.py	2014-06-29 21:05:25.000000000 -0500
-+++ misc/build/Python-2.7.9/Lib/distutils/command/build_ext.py	2016-01-01 17:49:55.173717798 -0500
-@@ -221,7 +221,7 @@
- 
-         # for extensions under Cygwin and AtheOS Python's library directory must be
-         # appended to library_dirs
--        if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos':
-+        if sys.platform[:6] == 'cygwin' or sys.platform[:8] == 'winmingw' or sys.platform[:6] == 'atheos':
-             if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")):
-                 # building third party extensions
-                 self.library_dirs.append(os.path.join(sys.prefix, "lib",
-@@ -723,7 +723,7 @@
-             # don't extend ext.libraries, it may be shared with other
-             # extensions, it is a reference to the original list
-             return ext.libraries + [pythonlib]
--        elif sys.platform[:6] == "cygwin":
-+        elif sys.platform[:6] == "cygwin" or sys.platform[:8] == "winmingw":
-             template = "python%d.%d"
-             pythonlib = (template %
-                    (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff))
-diff -ru misc/Python-2.7.9/Lib/distutils/command/install.py misc/build/Python-2.7.9/Lib/distutils/command/install.py
---- misc/Python-2.7.9/Lib/distutils/command/install.py	2014-06-29 21:05:25.000000000 -0500
-+++ misc/build/Python-2.7.9/Lib/distutils/command/install.py	2016-01-01 17:49:55.174717925 -0500
-@@ -348,9 +348,10 @@
- 
-         # Convert directories from Unix /-separated syntax to the local
-         # convention.
--        self.convert_paths('lib', 'purelib', 'platlib',
--                           'scripts', 'data', 'headers',
--                           'userbase', 'usersite')
-+        if os.sep != '/':
-+            self.convert_paths('lib', 'purelib', 'platlib',
-+                               'scripts', 'data', 'headers',
-+                               'userbase', 'usersite')
- 
-         # Well, we're not actually fully completely finalized yet: we still
-         # have to deal with 'extra_path', which is the hack for allowing
-@@ -362,7 +363,7 @@
- 
-         # If a new root directory was supplied, make all the installation
-         # dirs relative to it.
--        if self.root is not None:
-+        if self.root is not None and self.root != "":
-             self.change_roots('libbase', 'lib', 'purelib', 'platlib',
-                               'scripts', 'data', 'headers')
- 
-@@ -501,7 +502,10 @@
-     def convert_paths (self, *names):
-         for name in names:
-             attr = "install_" + name
--            setattr(self, attr, convert_path(getattr(self, attr)))
-+            if self.root is None or self.root == "":
-+                setattr(self, attr, getattr(self, attr).replace('/', os.sep))
-+            else:
-+                setattr(self, attr, convert_path(getattr(self, attr)))
- 
- 
-     def handle_extra_path (self):
-diff -ru misc/Python-2.7.9/Lib/distutils/spawn.py misc/build/Python-2.7.9/Lib/distutils/spawn.py
---- misc/Python-2.7.9/Lib/distutils/spawn.py	2014-06-29 21:05:26.000000000 -0500
-+++ misc/build/Python-2.7.9/Lib/distutils/spawn.py	2016-01-01 17:49:55.175718681 -0500
-@@ -212,7 +212,7 @@
-     paths = path.split(os.pathsep)
-     base, ext = os.path.splitext(executable)
- 
--    if (sys.platform == 'win32' or os.name == 'os2') and (ext != '.exe'):
-+    if (sys.platform == 'win32' or sys.platform[:8] == "winmingw" or os.name == 'os2') and (ext != '.exe'):
-         executable = executable + '.exe'
- 
-     if not os.path.isfile(executable):
-diff -ru misc/Python-2.7.9/Lib/distutils/sysconfig.py misc/build/Python-2.7.9/Lib/distutils/sysconfig.py
---- misc/Python-2.7.9/Lib/distutils/sysconfig.py	2014-06-29 21:05:26.000000000 -0500
-+++ misc/build/Python-2.7.9/Lib/distutils/sysconfig.py	2016-01-01 17:49:55.175718681 -0500
-@@ -450,6 +450,9 @@
-     global _config_vars
-     if _config_vars is None:
-         func = globals().get("_init_" + os.name)
-+        if sys.platform[:8] == "winmingw":
-+            func = globals().get("_init_posix")
-+
-         if func:
-             func()
-         else:
-diff -ru misc/Python-2.7.9/Lib/distutils/unixccompiler.py misc/build/Python-2.7.9/Lib/distutils/unixccompiler.py
---- misc/Python-2.7.9/Lib/distutils/unixccompiler.py	2014-06-29 21:05:26.000000000 -0500
-+++ misc/build/Python-2.7.9/Lib/distutils/unixccompiler.py	2016-01-01 17:49:55.176718668 -0500
-@@ -80,7 +80,7 @@
-     shared_lib_extension = ".so"
-     dylib_lib_extension = ".dylib"
-     static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s"
--    if sys.platform == "cygwin":
-+    if sys.platform == "cygwin" or sys.platform == "winmingw":
-         exe_extension = ".exe"
- 
-     def preprocess(self, source,
-diff -ru misc/Python-2.7.9/Lib/os.py misc/build/Python-2.7.9/Lib/os.py
---- misc/Python-2.7.9/Lib/os.py	2014-06-29 21:05:30.000000000 -0500
-+++ misc/build/Python-2.7.9/Lib/os.py	2016-01-01 17:49:55.177718586 -0500
-@@ -38,7 +38,21 @@
-     except AttributeError:
-         return [n for n in dir(module) if n[0] != '_']
- 
--if 'posix' in _names:
-+if 'winmingw32' in _names:
-+    name = 'nt'
-+    linesep = '\r\n'
-+    from posix import *
-+    try:
-+        from posix import _exit
-+    except ImportError:
-+        pass
-+    import ntpath as path
-+
-+    import posix
-+    __all__.extend(_get_exports_list(posix))
-+    del posix
-+
-+elif 'posix' in _names:
-     name = 'posix'
-     linesep = '\n'
-     from posix import *
-diff -ru misc/Python-2.7.9/Lib/socket.py misc/build/Python-2.7.9/Lib/socket.py
---- misc/Python-2.7.9/Lib/socket.py	2014-06-29 21:05:30.000000000 -0500
-+++ misc/build/Python-2.7.9/Lib/socket.py	2016-01-01 17:49:55.178717595 -0500
-@@ -153,7 +153,7 @@
-     'sendall', 'setblocking',
-     'settimeout', 'gettimeout', 'shutdown')
- 
--if os.name == "nt":
-+if os.name == "nt" and sys.platform[:8] != "winmingw":
-     _socketmethods = _socketmethods + ('ioctl',)
- 
- if sys.platform == "riscos":
-diff -ru misc/Python-2.7.9/Makefile.pre.in misc/build/Python-2.7.9/Makefile.pre.in
---- misc/Python-2.7.9/Makefile.pre.in	2014-06-29 21:05:39.000000000 -0500
-+++ misc/build/Python-2.7.9/Makefile.pre.in	2016-01-01 17:49:55.179718421 -0500
-@@ -121,6 +121,16 @@
- BLDSHARED=	@BLDSHARED@ $(LDFLAGS)
- LDCXXSHARED=	@LDCXXSHARED@
- DESTSHARED=	$(BINLIBDEST)/lib-dynload
-+ifeq (@MACHDEP@,winmingw32)
-+DESTSHAREDFORRULES=	$(shell cd $(DESTSHARED) && pwd || echo DESTSHARED)
-+LIBPYTHONPATH=	$(shell cd $(DESTDIR)$(LIBDEST) && cmd /c cd | sed -e s:\\\\:/:g)
-+DESTPYTHONPATH=	$(LIBPYTHONPATH);$(shell cd $(DESTDIR)$(DESTSHARED) && cmd /c cd | sed -e s:\\\\:/:g)
-+LIBDESTPARAM=	$(shell if test -z "$(DESTDIR)" ; then cd $(LIBDEST) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(LIBDEST) ; fi)
-+PREFIXPARAM=	$(shell if test -z "$(DESTDIR)" ; then cd $(prefix) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(prefix) ; fi)
-+BINDIRPARAM=	$(shell if test -z "$(DESTDIR)" ; then cd $(BINDIR) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(BINDIR) ; fi)
-+DESTSHAREDPARAM=	$(shell if test -z "$(DESTDIR)" ; then cd $(DESTSHARED) && cmd /c cd | sed -e s:\\\\:/:g ; else echo $(DESTSHARED) ; fi)
-+DESTDIRPARAM=	$(shell if test ! -z "$(DESTDIR)" ; then cd $(DESTDIR) && cmd /c | sed -e s:\\\\:/:g ; fi)
-+endif
- 
- # Executable suffix (.exe on Windows and Mac OS X)
- EXE=		@EXEEXT@
-@@ -214,7 +224,7 @@
- # Modules
- MODULE_OBJS=	\
- 		Modules/config.o \
--		Modules/getpath.o \
-+		@GETPATH_OBJS@ \
- 		Modules/main.o \
- 		Modules/gcmodule.o
- 
-@@ -599,6 +609,10 @@
- 		-DVPATH='"$(VPATH)"' \
- 		-o $@ $(srcdir)/Modules/getpath.c
- 
-+PC/getpathp.o: $(srcdir)/PC/getpathp.c Makefile
-+	$(CC) -c $(PY_CFLAGS) -DVERSION='"$(VERSION)"' \
-+		-o $@ $(srcdir)/PC/getpathp.c
-+
- Modules/python.o: $(srcdir)/Modules/python.c
- 	$(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c
- 
-@@ -647,6 +661,12 @@
- Objects/unicodectype.o:	$(srcdir)/Objects/unicodectype.c \
- 				$(srcdir)/Objects/unicodetype_db.h
- 
-+Objects/exceptions.o:	$(srcdir)/Objects/exceptions.c
-+		$(CC) -c $(PY_CFLAGS) -I$(srcdir)/PC -o $@ $(srcdir)/Objects/exceptions.c
-+
-+PC/import_nt.o: $(srcdir)/PC/import_nt.c
-+		$(CC) -c $(PY_CFLAGS) -I$(srcdir)/Python -o $@ $(srcdir)/PC/import_nt.c
-+
- STRINGLIB_HEADERS= \
- 		$(srcdir)/Include/bytes_methods.h \
- 		$(srcdir)/Objects/stringlib/count.h \
-@@ -861,7 +881,11 @@
- # Install shared libraries enabled by Setup
- DESTDIRS=	$(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
- 
-+ifeq (@MACHDEP@,winmingw32)
-+oldsharedinstall: $(DESTSHAREDFORRULES) $(SHAREDMODS)
-+else
- oldsharedinstall: $(DESTSHARED) $(SHAREDMODS)
-+endif
- 		@for i in X $(SHAREDMODS); do \
- 		  if test $$i != X; then \
- 		    echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
-@@ -869,7 +893,11 @@
- 		  fi; \
- 		done
- 
-+ifeq (@MACHDEP@,winmingw32)
-+$(DESTSHAREDFORRULES):
-+else
- $(DESTSHARED):
-+endif
- 		@for i in $(DESTDIRS); \
- 		do \
- 			if test ! -d $(DESTDIR)$$i; then \
-@@ -982,7 +1010,11 @@
- 		unittest unittest/test \
- 		lib-old \
- 		curses pydoc_data $(MACHDEPS)
-+ifeq (@MACHDEP@,winmingw32)
-+libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c sharedinstall
-+else
- libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-+endif
- 	@for i in $(SCRIPTDIR) $(LIBDEST); \
- 	do \
- 		if test ! -d $(DESTDIR)$$i; then \
-@@ -1042,6 +1074,26 @@
- 		$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
- 			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
- 	fi
-+ifeq (@MACHDEP@,winmingw32)
-+	PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
-+		./$(BUILDPYTHON) -Wi -tt $(LIBPYTHONPATH)/compileall.py \
-+		-d $(LIBDESTPARAM) -f \
-+		-x 'bad_coding|badsyntax|site-packages' $(LIBPYTHONPATH)
-+	PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
-+		./$(BUILDPYTHON) -Wi -tt -O $(LIBPYTHONPATH)/compileall.py \
-+		-d $(LIBDESTPARAM) -f \
-+		-x 'bad_coding|badsyntax|site-packages' $(LIBPYTHONPATH)
-+	-PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
-+		./$(BUILDPYTHON) -Wi -t $(LIBPYTHONPATH)/compileall.py \
-+		-d $(LIBDESTPARAM)/site-packages -f \
-+		-x badsyntax $(LIBPYTHONPATH)/site-packages
-+	-PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
-+		./$(BUILDPYTHON) -Wi -t -O $(LIBPYTHONPATH)/compileall.py \
-+		-d $(LIBDESTPARAM)/site-packages -f \
-+		-x badsyntax $(LIBPYTHONPATH)/site-packages
-+	-PYTHONPATH="$(DESTPYTHONPATH)"  $(RUNSHARED) \
-+		./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
-+else
- 	PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
- 		$(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- 		-d $(LIBDEST) -f \
-@@ -1068,6 +1120,7 @@
- # Create the PLATDIR source directory, if one wasn't distributed..
- $(srcdir)/Lib/$(PLATDIR):
- 	mkdir $(srcdir)/Lib/$(PLATDIR)
-+ifneq (@MACHDEP@,winmingw32)
- 	cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen
- 	export PATH; PATH="`pwd`:$$PATH"; \
- 	export PYTHONPATH; PYTHONPATH="$(srcdir)/Lib:$(abs_builddir)/`cat pybuilddir.txt`"; \
-@@ -1081,6 +1134,7 @@
- 	  PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \
- 	fi; \
- 	cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
-+endif
- 
- python-config: $(srcdir)/Misc/python-config.in
- 	# Substitution happens here, as the completely-expanded BINDIR
-@@ -1174,6 +1228,15 @@
- 
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
-+ifeq (@MACHDEP@,winmingw32)
-+sharedinstall: $(DESTSHAREDFORRULES)
-+       $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
-+               --prefix=$(PREFIXPARAM) \
-+               --install-scripts=$(BINDIRPARAM) \
-+               --install-platlib=$(DESTSHAREDPARAM) \
-+               --root=$(DESTDIRPARAM)
-+else
-+
- sharedinstall: sharedmods
- 	$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
- 	   	--prefix=$(prefix) \
-@@ -1181,6 +1244,7 @@
- 		--install-platlib=$(DESTSHARED) \
- 		--root=$(DESTDIR)/
- 	-rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata.py*
-+endif
- 
- # Here are a couple of targets for MacOSX again, to install a full
- # framework-based Python. frameworkinstall installs everything, the
-diff -ru misc/Python-2.7.9/Modules/Setup.config.in misc/build/Python-2.7.9/Modules/Setup.config.in
---- misc/Python-2.7.9/Modules/Setup.config.in	2014-06-29 21:05:40.000000000 -0500
-+++ misc/build/Python-2.7.9/Modules/Setup.config.in	2016-01-01 17:49:55.179718421 -0500
-@@ -9,5 +9,9 @@
- # The signal module
- @USE_SIGNAL_MODULE at signal signalmodule.c
- 
-+# The password module
-+ at USE_PASSWORD_MODULE@pwd pwdmodule.c	# this is needed to find out the user's home dir
-+					# if $HOME is not set
-+
- # The rest of the modules previously listed in this file are built
- # by the setup.py script in Python 2.1 and later.
-diff -ru misc/Python-2.7.9/Modules/Setup.dist misc/build/Python-2.7.9/Modules/Setup.dist
---- misc/Python-2.7.9/Modules/Setup.dist	2014-06-29 21:05:40.000000000 -0500
-+++ misc/build/Python-2.7.9/Modules/Setup.dist	2016-01-01 17:49:55.180717640 -0500
-@@ -114,7 +114,7 @@
- 
- posix posixmodule.c		# posix (UNIX) system calls
- errno errnomodule.c		# posix (UNIX) errno values
--pwd pwdmodule.c			# this is needed to find out the user's home dir
-+#pwd pwdmodule.c			# this is needed to find out the user's home dir
- 				# if $HOME is not set
- _sre _sre.c			# Fredrik Lundh's new regular expressions
- _codecs _codecsmodule.c		# access to the builtin codecs and codec registry
-diff -ru misc/Python-2.7.9/Modules/_ctypes/libffi/configure misc/build/Python-2.7.9/Modules/_ctypes/libffi/configure
---- misc/Python-2.7.9/Modules/_ctypes/libffi/configure	2014-06-29 21:05:40.000000000 -0500
-+++ misc/build/Python-2.7.9/Modules/_ctypes/libffi/configure	2016-01-01 17:49:55.235718066 -0500
-@@ -18807,6 +18807,12 @@
- fi
- 
- 
-+case $host_os in
-+mingw*)
-+	srcdir=`cd $srcdir && cmd /c cd | sed -e 's:\\\\:/:g'`
-+	;;
-+esac
-+
- ac_config_commands="$ac_config_commands include"
- 
- ac_config_commands="$ac_config_commands src"
-diff -ru misc/Python-2.7.9/Modules/_ctypes/libffi/configure.ac misc/build/Python-2.7.9/Modules/_ctypes/libffi/configure.ac
---- misc/Python-2.7.9/Modules/_ctypes/libffi/configure.ac	2014-06-29 21:05:40.000000000 -0500
-+++ misc/build/Python-2.7.9/Modules/_ctypes/libffi/configure.ac	2016-01-01 17:49:55.236718053 -0500
-@@ -613,6 +613,12 @@
- fi
- AC_SUBST(toolexeclibdir)
- 
-+case $host_os in
-+mingw*)
-+	srcdir=`cd $srcdir && cmd /c cd | sed -e 's:\\\\:/:g'`
-+	;;
-+esac
-+
- AC_CONFIG_COMMANDS(include, [test -d include || mkdir include])
- AC_CONFIG_COMMANDS(src, [
- test -d src || mkdir src
-diff -ru misc/Python-2.7.9/Modules/_ctypes/libffi/include/ffi.h.in misc/build/Python-2.7.9/Modules/_ctypes/libffi/include/ffi.h.in
---- misc/Python-2.7.9/Modules/_ctypes/libffi/include/ffi.h.in	2014-06-29 21:05:40.000000000 -0500
-+++ misc/build/Python-2.7.9/Modules/_ctypes/libffi/include/ffi.h.in	2016-01-01 17:49:55.236718053 -0500
-@@ -433,7 +433,11 @@
- 			    ffi_type *rtype,
- 			    ffi_type **atypes);
- 
-+#ifdef MS_WIN32
-+int ffi_call(ffi_cif *cif,
-+#else
- void ffi_call(ffi_cif *cif,
-+#endif
- 	      void (*fn)(void),
- 	      void *rvalue,
- 	      void **avalue);
-diff -ru misc/Python-2.7.9/Modules/config.c.in misc/build/Python-2.7.9/Modules/config.c.in
---- misc/Python-2.7.9/Modules/config.c.in	2014-06-29 21:05:42.000000000 -0500
-+++ misc/build/Python-2.7.9/Modules/config.c.in	2016-01-01 17:49:55.237718460 -0500
-@@ -48,6 +48,9 @@
-     {"__builtin__", NULL},
-     {"sys", NULL},
-     {"exceptions", NULL},
-+#ifdef __MINGW32__
-+	{"winmingw32", NULL},
-+#endif
- 
-     /* This lives in gcmodule.c */
-     {"gc", initgc},
-diff -ru misc/Python-2.7.9/Modules/posixmodule.c misc/build/Python-2.7.9/Modules/posixmodule.c
---- misc/Python-2.7.9/Modules/posixmodule.c	2014-06-29 21:05:43.000000000 -0500
-+++ misc/build/Python-2.7.9/Modules/posixmodule.c	2016-01-01 17:49:55.241719248 -0500
-@@ -132,6 +132,15 @@
- #define HAVE_FSYNC      1
- #define fsync _commit
- #else
-+#ifdef __MINGW32__
-+#define HAVE_SPAWNV	1
-+#define HAVE_EXECV      1
-+#define HAVE_GETCWD     1
-+#define HAVE_OPENDIR    1
-+#define HAVE_PIPE       1
-+#define HAVE_POPEN      1
-+#define HAVE_SYSTEM	1
-+#else
- #if defined(PYOS_OS2) && defined(PYCC_GCC) || defined(__VMS)
- /* Everything needed is defined in PC/os2emx/pyconfig.h or vms/pyconfig.h */
- #else                   /* all other compilers */
-@@ -157,6 +166,7 @@
- #define HAVE_WAIT       1
- #define HAVE_TTYNAME    1
- #endif  /* PYOS_OS2 && PYCC_GCC && __VMS */
-+#endif  /* __MINGW32__ */
- #endif  /* _MSC_VER */
- #endif  /* __BORLANDC__ */
- #endif  /* ! __WATCOMC__ || __QNX__ */
-@@ -277,6 +287,14 @@
- #define pclose  _pclose
- #endif /* _MSC_VER */
- 
-+#ifdef __MINGW32__
-+#include "osdefs.h"
-+#include <windows.h>
-+#include <shellapi.h>	/* for ShellExecute() */
-+#define popen	_popen
-+#define pclose	_pclose
-+#endif
-+
- #if defined(PYCC_VACPP) && defined(PYOS_OS2)
- #include <io.h>
- #endif /* OS2 */
-@@ -575,7 +593,7 @@
- */
- #include <crt_externs.h>
- static char **environ;
--#elif !defined(_MSC_VER) && ( !defined(__WATCOMC__) || defined(__QNX__) )
-+#elif !defined(_MSC_VER) && !defined(__MINGW32__) && ( !defined(__WATCOMC__) || defined(__QNX__) )
- extern char **environ;
- #endif /* !_MSC_VER */
- 
-@@ -994,7 +1012,7 @@
-     int st_ctime_nsec;
- };
- 
--static __int64 secs_between_epochs = 11644473600; /* Seconds between 1.1.1601 and 1.1.1970 */
-+static __int64 secs_between_epochs = 11644473600LL; /* Seconds between 1.1.1601 and 1.1.1970 */
- 
- static void
- FILE_TIME_to_time_t_nsec(FILETIME *in_ptr, time_t *time_out, int* nsec_out)
-@@ -1514,7 +1532,7 @@
-     return v;
- }
- 
--#ifdef MS_WINDOWS
-+#if defined(MS_WINDOWS) && !defined(__MINGW32__)
- 
- /* IsUNCRoot -- test whether the supplied path is of the form \\SERVER\SHARE\,
-    where / can be used in place of \ and the trailing slash is optional.
-diff -ru misc/Python-2.7.9/Modules/socketmodule.c misc/build/Python-2.7.9/Modules/socketmodule.c
---- misc/Python-2.7.9/Modules/socketmodule.c	2014-06-29 21:05:43.000000000 -0500
-+++ misc/build/Python-2.7.9/Modules/socketmodule.c	2016-01-01 17:49:55.244718023 -0500
-@@ -317,7 +317,7 @@
-   /* Do not include addrinfo.h for MSVC7 or greater. 'addrinfo' and
-    * EAI_* constants are defined in (the already included) ws2tcpip.h.
-    */
--#else
-+#elif !defined(__MINGW32__)
- #  include "addrinfo.h"
- #endif
- 
-diff -ru misc/Python-2.7.9/PC/_winreg.c misc/build/Python-2.7.9/PC/_winreg.c
---- misc/Python-2.7.9/PC/_winreg.c	2014-06-29 21:05:46.000000000 -0500
-+++ misc/build/Python-2.7.9/PC/_winreg.c	2016-01-01 17:49:55.246717928 -0500
-@@ -1792,6 +1792,9 @@
- }
- 
- #define ADD_KEY(val) inskey(d, #val, val)
-+#ifndef REG_LEGAL_CHANGE_FILTER
-+#define REG_LEGAL_CHANGE_FILTER (REG_NOTIFY_CHANGE_NAME|REG_NOTIFY_CHANGE_ATTRIBUTES|REG_NOTIFY_CHANGE_LAST_SET|REG_NOTIFY_CHANGE_SECURITY)
-+#endif
- 
- PyMODINIT_FUNC init_winreg(void)
- {
-diff -ru misc/Python-2.7.9/Python/dynload_win.c misc/build/Python-2.7.9/Python/dynload_win.c
---- misc/Python-2.7.9/Python/dynload_win.c	2014-06-29 21:05:47.000000000 -0500
-+++ misc/build/Python-2.7.9/Python/dynload_win.c	2016-01-01 17:49:55.246717928 -0500
-@@ -28,6 +28,7 @@
- /* Case insensitive string compare, to avoid any dependencies on particular
-    C RTL implementations */
- 
-+#ifndef __MINGW32__
- static int strcasecmp (char *string1, char *string2)
- {
-     int first, second;
-@@ -41,6 +42,7 @@
- 
-     return (first - second);
- }
-+#endif
- 
- 
- /* Function to return the name of the "python" DLL that the supplied module
-diff -ru misc/Python-2.7.9/Python/frozenmain.c misc/build/Python-2.7.9/Python/frozenmain.c
---- misc/Python-2.7.9/Python/frozenmain.c	2014-06-29 21:05:47.000000000 -0500
-+++ misc/build/Python-2.7.9/Python/frozenmain.c	2016-01-01 17:49:55.247717915 -0500
-@@ -3,7 +3,7 @@
- 
- #include "Python.h"
- 
--#ifdef MS_WINDOWS
-+#if defined(MS_WINDOWS) && !defined(__MINGW32__)
- extern void PyWinFreeze_ExeInit(void);
- extern void PyWinFreeze_ExeTerm(void);
- extern int PyInitFrozenExtensions(void);
-@@ -32,12 +32,12 @@
-         setbuf(stderr, (char *)NULL);
-     }
- 
--#ifdef MS_WINDOWS
-+#ifdef MS_WINDOWS && !defined(__MINGW32__)
-     PyInitFrozenExtensions();
- #endif /* MS_WINDOWS */
-     Py_SetProgramName(argv[0]);
-     Py_Initialize();
--#ifdef MS_WINDOWS
-+#ifdef MS_WINDOWS && !defined(__MINGW32__)
-     PyWinFreeze_ExeInit();
- #endif
- 
-@@ -60,7 +60,7 @@
-     if (inspect && isatty((int)fileno(stdin)))
-         sts = PyRun_AnyFile(stdin, "<stdin>") != 0;
- 
--#ifdef MS_WINDOWS
-+#ifdef MS_WINDOWS && !defined(__MINGW32__)
-     PyWinFreeze_ExeTerm();
- #endif
-     Py_Finalize();
-diff -ru misc/Python-2.7.9/configure misc/build/Python-2.7.9/configure
---- misc/Python-2.7.9/configure	2014-06-29 21:05:48.000000000 -0500
-+++ misc/build/Python-2.7.9/configure	2016-01-01 17:49:55.307717091 -0500
-@@ -638,8 +638,10 @@
- LIBOBJS
- TRUE
- MACHDEP_OBJS
-+GETPATH_OBJS
- DYNLOADFILE
- DLINCLDIR
-+USE_PASSWORD_MODULE
- THREADOBJ
- LDLAST
- USE_THREAD_MODULE
-@@ -3367,6 +3369,13 @@
-         LDFLAGS="$SGI_ABI $LDFLAGS"
-         MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
- fi
-+case $MACHDEP in
-+        *mingw*|*MINGW*|*MinGW*)
-+		MACHDEP="winmingw32"
-+		ac_sys_system=`uname -s`
-+		ac_sys_release=`uname -r`
-+	;;
-+esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACHDEP" >&5
- $as_echo "$MACHDEP" >&6; }
- 
-@@ -5280,7 +5289,7 @@
- if test -z "$enable_shared"
- then
-   case $ac_sys_system in
--  CYGWIN* | atheos*)
-+  CYGWIN* | MINGW* | atheos*)
-     enable_shared="yes";;
-   *)
-     enable_shared="no";;
-@@ -5349,7 +5358,7 @@
-     BeOS*)
-           LDLIBRARY='libpython$(VERSION).so'
-           ;;
--    CYGWIN*)
-+    CYGWIN* | MINGW*)
-           LDLIBRARY='libpython$(VERSION).dll.a'
-           DLLLIBRARY='libpython$(VERSION).dll'
-           ;;
-@@ -5405,7 +5413,7 @@
-   esac
- else # shared is disabled
-   case $ac_sys_system in
--    CYGWIN*)
-+    CYGWIN* | MINGW*)
-           BLDLIBRARY='$(LIBRARY)'
-           LDLIBRARY='libpython$(VERSION).dll.a'
-           ;;
-@@ -7820,6 +7829,10 @@
- 
- 
- 
-+ac_cv_sizeof_off_t=`echo $ac_cv_sizeof_off_t | tr -d '\015'`
-+ac_cv_sizeof_long=`echo $ac_cv_sizeof_long | tr -d '\015'`
-+ac_cv_sizeof_long_long=`echo $ac_cv_sizeof_long_long | tr -d '\015'`
-+ac_cv_sizeof_short=`echo $ac_cv_sizeof_short | tr -d '\015'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable large file support" >&5
- $as_echo_n "checking whether to enable large file support... " >&6; }
- if test "$have_long_long" = yes
-@@ -8136,7 +8149,7 @@
- 	  		*)    SO=.sl;;
- 		esac
- 		;;
--	CYGWIN*)   SO=.dll;;
-+	CYGWIN* | MINGW*)   SO=.dll;;
- 	*)	   SO=.so;;
- 	esac
- else
-@@ -8300,7 +8313,7 @@
- 	SCO_SV*)
- 		LDSHARED='$(CC) -Wl,-G,-Bexport'
- 		LDCXXSHARED='$(CXX) -Wl,-G,-Bexport';;
--	CYGWIN*)
-+	CYGWIN* | MINGW*)
- 		LDSHARED="gcc -shared -Wl,--enable-auto-image-base"
- 		LDCXXSHARED="g++ -shared -Wl,--enable-auto-image-base";;
- 	atheos*)
-@@ -8396,7 +8409,7 @@
- 			LINKFORSHARED="-Xlinker --export-dynamic"
- 		    fi;;
- 		  esac;;
--	CYGWIN*)
-+	CYGWIN* | MINGW*)
- 		if test $enable_shared = "no"
- 		then
- 			LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
-@@ -8420,7 +8433,7 @@
- if test ! "$LIBRARY" = "$LDLIBRARY"
- then
- 	case $ac_sys_system in
--	CYGWIN*)
-+	CYGWIN* | MINGW*)
- 		# Cygwin needs CCSHARED when building extension DLLs
- 		# but not when building the interpreter DLL.
- 		CFLAGSFORSHARED='';;
-@@ -9671,7 +9684,7 @@
- #define HAVE_PTHREAD_SIGMASK 1
- _ACEOF
-  case $ac_sys_system in
--        CYGWIN*)
-+        CYGWIN* | MINGW*)
- 
- $as_echo "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h
- 
-@@ -9694,6 +9707,17 @@
- fi
- 
- 
-+case $MACHDEP in
-+winmingw*)
-+	THREADOBJ="Python/thread.o"
-+	USE_THREAD_MODULE="#"
-+	USE_PASSWORD_MODULE="#"
-+	;;
-+*)
-+	USE_PASSWORD_MODULE=""
-+	;;
-+esac
-+
- # Check for enable-ipv6
- 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-ipv6 is specified" >&5
-@@ -10128,6 +10152,11 @@
- 	# Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
- 	Darwin/[0156]\..*) DYNLOADFILE="dynload_next.o";;
- 	atheos*) DYNLOADFILE="dynload_atheos.o";;
-+	CYGWIN* | MINGW*)
-+		case $MACHDEP in
-+		winmingw*) DYNLOADFILE="dynload_win.o PC/import_nt.o PC/dl_nt.o";;
-+		esac
-+		;;
- 	*)
- 	# use dynload_shlib.c and dlopen() if we have it; otherwise stub
- 	# out any dynamic loading
-@@ -10147,6 +10176,21 @@
- 
- fi
- 
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking GETPATH_OBJS" >&5
-+$as_echo_n "checking GETPATH_OBJS... " >&6; }
-+if test -z "$GETPATH_OBJS"
-+then
-+	case $MACHDEP in
-+	winmingw*)
-+		GETPATH_OBJS='PC/getpathp.o';;
-+	*)
-+		GETPATH_OBJS='Modules/getpath.o';;
-+	esac
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GETPATH_OBJS" >&5
-+$as_echo "$GETPATH_OBJS" >&6; }
-+
- # MACHDEP_OBJS can be set to platform-specific object files needed by Python
- 
- 
-@@ -11745,6 +11789,20 @@
- 
- fi
- 
-+case $MACHDEP in
-+winmingw*)
-+ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default"
-+if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
-+
-+cat >>confdefs.h <<_ACEOF
-+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
-+_ACEOF
-+
-+
-+fi
-+
-+;;
-+*)
- ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default"
- if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
- 
-@@ -11765,6 +11823,8 @@
- fi
- 
- 
-+;;
-+esac
- 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for time.h that defines altzone" >&5
- $as_echo_n "checking for time.h that defines altzone... " >&6; }
-@@ -13148,6 +13208,7 @@
- 
- 
- 
-+ac_cv_sizeof_wchar_t=`echo $ac_cv_sizeof_wchar_t | tr -d '\015'`
- 
- if test "$enable_unicode" = "no"
- then
-diff -ru misc/Python-2.7.9/configure.ac misc/build/Python-2.7.9/configure.ac
---- misc/Python-2.7.9/configure.ac	2014-06-29 21:05:48.000000000 -0500
-+++ misc/build/Python-2.7.9/configure.ac	2016-01-01 17:49:55.310717403 -0500
-@@ -491,6 +491,13 @@
-         LDFLAGS="$SGI_ABI $LDFLAGS"
-         MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
- fi
-+case $MACHDEP in
-+        *mingw*|*MINGW*|*MinGW*)
-+		MACHDEP="winmingw32"
-+		ac_sys_system=`uname -s`
-+		ac_sys_release=`uname -r`
-+	;;
-+esac
- AC_MSG_RESULT($MACHDEP)
- 
- # And add extra plat-mac for darwin
-@@ -824,7 +831,7 @@
- if test -z "$enable_shared"
- then 
-   case $ac_sys_system in
--  CYGWIN* | atheos*)
-+  CYGWIN* | MINGW* | atheos*)
-     enable_shared="yes";;
-   *)
-     enable_shared="no";;
-@@ -876,7 +883,7 @@
-     BeOS*)
-           LDLIBRARY='libpython$(VERSION).so'
-           ;;
--    CYGWIN*)
-+    CYGWIN* | MINGW*)
-           LDLIBRARY='libpython$(VERSION).dll.a'
-           DLLLIBRARY='libpython$(VERSION).dll'
-           ;;
-@@ -932,7 +939,7 @@
-   esac
- else # shared is disabled
-   case $ac_sys_system in
--    CYGWIN*)
-+    CYGWIN* | MINGW*)
-           BLDLIBRARY='$(LIBRARY)'
-           LDLIBRARY='libpython$(VERSION).dll.a'
-           ;;
-@@ -1714,6 +1721,10 @@
- #endif
- ])
- 
-+ac_cv_sizeof_off_t=`echo $ac_cv_sizeof_off_t | tr -d '\015'`
-+ac_cv_sizeof_long=`echo $ac_cv_sizeof_long | tr -d '\015'`
-+ac_cv_sizeof_long_long=`echo $ac_cv_sizeof_long_long | tr -d '\015'`
-+ac_cv_sizeof_short=`echo $ac_cv_sizeof_short | tr -d '\015'`
- AC_MSG_CHECKING(whether to enable large file support)
- if test "$have_long_long" = yes
- then
-@@ -1919,7 +1930,7 @@
- 	  		*)    SO=.sl;;
- 		esac
- 		;;
--	CYGWIN*)   SO=.dll;;
-+	CYGWIN* | MINGW*)   SO=.dll;;
- 	*)	   SO=.so;;
- 	esac
- else
-@@ -2077,7 +2088,7 @@
- 	SCO_SV*)
- 		LDSHARED='$(CC) -Wl,-G,-Bexport'
- 		LDCXXSHARED='$(CXX) -Wl,-G,-Bexport';;
--	CYGWIN*)
-+	CYGWIN* | MINGW*)
- 		LDSHARED="gcc -shared -Wl,--enable-auto-image-base"
- 		LDCXXSHARED="g++ -shared -Wl,--enable-auto-image-base";;
- 	atheos*)
-@@ -2169,7 +2120,7 @@
- 			LINKFORSHARED="-Xlinker --export-dynamic"
- 		    fi;;
- 		  esac;;
--	CYGWIN*)
-+	CYGWIN* | MINGW*)
- 		if test $enable_shared = "no"
- 		then
- 			LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
-@@ -2191,7 +2202,7 @@
- if test ! "$LIBRARY" = "$LDLIBRARY"
- then
- 	case $ac_sys_system in
--	CYGWIN*)
-+	CYGWIN* | MINGW*)
- 		# Cygwin needs CCSHARED when building extension DLLs
- 		# but not when building the interpreter DLL.
- 		CFLAGSFORSHARED='';;
-@@ -2601,7 +2612,7 @@
-       fi
-       AC_CHECK_FUNCS(pthread_sigmask,
-         [case $ac_sys_system in
--        CYGWIN*)
-+        CYGWIN* | MINGW*)
-           AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
-             [Define if pthread_sigmask() does not work on your system.])
-             ;;
-@@ -2609,6 +2620,17 @@
-       AC_CHECK_FUNCS(pthread_atfork)
- fi
- 
-+AC_SUBST(USE_PASSWORD_MODULE)
-+case $MACHDEP in
-+winmingw*)
-+	THREADOBJ="Python/thread.o"
-+	USE_THREAD_MODULE="#"
-+	USE_PASSWORD_MODULE="#"
-+	;;
-+*)
-+	USE_PASSWORD_MODULE=""
-+	;;
-+esac
- 
- # Check for enable-ipv6
- AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
-@@ -2880,6 +2902,11 @@
- 	# Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
- 	Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
- 	atheos*) DYNLOADFILE="dynload_atheos.o";;
-+	CYGWIN* | MINGW*)
-+		case $MACHDEP in
-+		winmingw*) DYNLOADFILE="dynload_win.o PC/import_nt.o PC/dl_nt.o";;
-+		esac
-+		;;
- 	*)
- 	# use dynload_shlib.c and dlopen() if we have it; otherwise stub
- 	# out any dynamic loading
-@@ -2897,6 +2924,19 @@
-         [Defined when any dynamic module loading is enabled.])
- fi
- 
-+AC_SUBST(GETPATH_OBJS)
-+AC_MSG_CHECKING(GETPATH_OBJS)
-+if test -z "$GETPATH_OBJS"
-+then
-+	case $MACHDEP in
-+	winmingw*)
-+		GETPATH_OBJS='PC/getpathp.o';;
-+	*)
-+		GETPATH_OBJS='Modules/getpath.o';;
-+	esac
-+fi
-+AC_MSG_RESULT($GETPATH_OBJS)
-+
- # MACHDEP_OBJS can be set to platform-specific object files needed by Python
- 
- AC_SUBST(MACHDEP_OBJS)
-@@ -3358,7 +3398,14 @@
- AC_CHECK_MEMBERS([struct stat.st_flags])
- AC_CHECK_MEMBERS([struct stat.st_gen])
- AC_CHECK_MEMBERS([struct stat.st_birthtime])
-+case $MACHDEP in
-+winmingw*)
-+AC_CHECK_MEMBERS([struct stat.st_blocks])
-+;;
-+*)
- AC_STRUCT_ST_BLOCKS
-+;;
-+esac
- 
- AC_MSG_CHECKING(for time.h that defines altzone)
- AC_CACHE_VAL(ac_cv_header_time_altzone,[
-@@ -3979,6 +4026,7 @@
- AH_TEMPLATE(PY_UNICODE_TYPE,
-   [Define as the integral type used for Unicode representation.])
- 
-+ac_cv_sizeof_wchar_t=`echo $ac_cv_sizeof_wchar_t | tr -d '\015'`
- AC_SUBST(UNICODE_OBJS)
- if test "$enable_unicode" = "no"
- then
-diff -ru misc/Python-2.7.9/setup.py misc/build/Python-2.7.9/setup.py
---- misc/Python-2.7.9/setup.py	2014-06-29 21:05:48.000000000 -0500
-+++ misc/build/Python-2.7.9/setup.py	2016-01-01 17:49:55.312719892 -0500
-@@ -287,6 +287,18 @@
-             if not self.configure_ctypes(ext):
-                 return
- 
-+        if self.get_platform() == "winmingw":
-+            if ext.name == '_ctypes_test':
-+                ext.libraries.append('oleaut32')
-+            elif ext.name == 'select':
-+                ext.libraries.append('ws2_32')
-+            elif ext.name == '_socket':
-+                ext.libraries.append('ws2_32')
-+            if ext.name == '_ctypes':
-+                ext.libraries.append('uuid')
-+                ext.libraries.append('oleaut32')
-+                ext.libraries.append('ole32')
-+
-         try:
-             build_ext.build_extension(self, ext)
-         except (CCompilerError, DistutilsError), why:
-@@ -316,7 +328,7 @@
- 
-         # Workaround for Cygwin: Cygwin currently has fork issues when many
-         # modules have been imported
--        if host_platform == 'cygwin':
-+        if host_platform in ['cygwin', 'winmingw']:
-             self.announce('WARNING: skipping import check for Cygwin-based "%s"'
-                 % ext.name)
-             return
-@@ -1235,7 +1247,7 @@
- 
-         dbm_order = ['gdbm']
-         # The standard Unix dbm module:
--        if host_platform not in ['cygwin']:
-+        if host_platform not in ['cygwin', 'winmingw']:
-             config_args = [arg.strip("'")
-                            for arg in sysconfig.get_config_var("CONFIG_ARGS").split()]
-             dbm_args = [arg for arg in config_args
-@@ -1327,7 +1339,7 @@
-                 missing.append('resource')
- 
-             # Sun yellow pages. Some systems have the functions in libc.
--            if (host_platform not in ['cygwin', 'atheos', 'qnx6'] and
-+            if (host_platform not in ['cygwin', 'winmingw', 'atheos', 'qnx6'] and
-                 find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None):
-                 if (self.compiler.find_library_file(lib_dirs, 'nsl')):
-                     libs = ['nsl']
-@@ -1549,7 +1561,7 @@
-             macros = dict()
-             libraries = []
- 
--        elif host_platform == 'cygwin':          # Cygwin
-+        elif host_platform == 'cygwin', 'winmingw':          # Cygwin
-             macros = dict()
-             libraries = []
- 
-@@ -1571,7 +1583,7 @@
-             macros = dict()
-             libraries = ['rt']
- 
--        if host_platform == 'win32':
-+        if host_platform in ['win32', 'winmingw']:
-             multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c',
-                                      '_multiprocessing/semaphore.c',
-                                      '_multiprocessing/pipe_connection.c',
-@@ -1590,6 +1602,7 @@
-         if sysconfig.get_config_var('WITH_THREAD'):
-             exts.append ( Extension('_multiprocessing', multiprocessing_srcs,
-                                     define_macros=macros.items(),
-+                                    libraries=libraries,
-                                     include_dirs=["Modules/_multiprocessing"]))
-         else:
-             missing.append('_multiprocessing')
-@@ -1723,6 +1736,10 @@
-                                      '-framework', 'Carbon']) )
- 
- 
-+        if platform == 'winmingw':
-+            exts.append( Extension('_winreg', ['../PC/_winreg.c']) )
-+            exts.append( Extension('winsound', ['../PC/winsound.c'], libraries = ['winmm']) )
-+
-         self.extensions.extend(exts)
- 
-         # Call the method for detecting whether _tkinter can be compiled
-@@ -1932,7 +1949,7 @@
-             added_lib_dirs.append('/usr/X11/lib')
- 
-         # If Cygwin, then verify that X is installed before proceeding
--        if host_platform == 'cygwin':
-+        if host_platform in ['cygwin', 'winmingw']:
-             x11_inc = find_file('X11/Xlib.h', [], include_dirs)
-             if x11_inc is None:
-                 return
-@@ -1955,7 +1972,7 @@
-             libs.append('ld')
- 
-         # Finally, link with the X11 libraries (not appropriate on cygwin)
--        if host_platform != "cygwin":
-+        if not host_platform in ["cygwin", "winmingw"]:
-             libs.append('X11')
- 
-         ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
-@@ -2025,6 +2042,8 @@
-                                if (('--host=' in arg) or ('--build=' in arg))]
-                 if not self.verbose:
-                     config_args.append("-q")
-+                if self.get_platform() == "winmingw":
-+                    config_args.append(" --build=mingw32")
- 
-                 # Pass empty CFLAGS because we'll just append the resulting
-                 # CFLAGS to Python's; -g or -O2 is to be avoided.
diff --git a/python/python-freebsd.patch b/python/python-freebsd.patch
index d13164b..b43b36d 100644
--- a/python/python-freebsd.patch
+++ b/python/python-freebsd.patch
@@ -1,6 +1,6 @@
-diff -ruN misc/Python-2.7.9/Lib/plat-freebsd9/IN.py misc/build/Python-2.7.9/Lib/plat-freebsd9/IN.py
---- misc/Python-2.7.9/Lib/plat-freebsd9/IN.py	1969-12-31 19:00:00.000000000 -0500
-+++ misc/build/Python-2.7.9/Lib/plat-freebsd9/IN.py	2016-01-01 17:38:35.922764464 -0500
+diff -ruN misc/Python-2.7.12/Lib/plat-freebsd9/IN.py misc/build/Python-2.7.12/Lib/plat-freebsd9/IN.py
+--- misc/Python-2.7.12/Lib/plat-freebsd9/IN.py	1969-12-31 19:00:00.000000000 -0500
++++ misc/build/Python-2.7.12/Lib/plat-freebsd9/IN.py	2016-01-01 17:38:35.922764464 -0500
 @@ -0,0 +1,612 @@
 +# Generated by h2py from /usr/include/netinet/in.h
 +
@@ -614,16 +614,16 @@ diff -ruN misc/Python-2.7.9/Lib/plat-freebsd9/IN.py misc/build/Python-2.7.9/Lib/
 +IPV6CTL_NORBIT_RAIF = 49
 +IPV6CTL_RFC6204W3 = 50
 +IPV6CTL_MAXID = 51
-diff -ruN misc/Python-2.7.9/Lib/plat-freebsd9/regen misc/build/Python-2.7.9/Lib/plat-freebsd9/regen

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list