[Libreoffice-commits] core.git: configure.ac download.lst external/Module_external.mk external/python3 external/python33 pyuno/source

David Ostrovsky david at ostrovsky.org
Sun Oct 25 08:30:01 UTC 2015


 configure.ac                                            |   11 
 download.lst                                            |    7 
 external/Module_external.mk                             |    2 
 external/python3/ExternalPackage_python3.mk             |  160 +-
 external/python3/ExternalProject_python3.mk             |    3 
 external/python3/UnpackedTarball_python3.mk             |   12 
 external/python3/i100492-freebsd.patch.1                |   36 
 external/python3/python-3.3.0-darwin.patch.1            |  100 -
 external/python3/python-3.3.0-gcc-4.8.patch.1           |    7 
 external/python3/python-3.3.0-msvc-disable.patch.1      |   22 
 external/python3/python-3.3.0-ssl.patch.1               |  196 --
 external/python3/python-3.3.3-aix.patch.1               |   50 
 external/python3/python-3.3.3-elf-rpath.patch.1         |   13 
 external/python3/python-3.3.3-py17797.patch.1           |   38 
 external/python3/python-3.5.0-tcltk.disable.patch       |   16 
 external/python3/python-3.5.tweak.strip.soabi.patch     |   12 
 external/python3/ubsan.patch.0                          |   49 
 external/python33/ExternalPackage_python3.mk            |  829 ++++++++++
 external/python33/ExternalProject_python3.mk            |  148 +
 external/python33/GeneratedPackage_python3.mk           |   18 
 external/python33/Makefile                              |    7 
 external/python33/Module_python33.mk                    |   24 
 external/python33/README                                |    1 
 external/python33/UnpackedTarball_python3.mk            |   60 
 external/python33/i100492-freebsd.patch.1               |   80 +
 external/python33/python-3.3.0-clang.patch.1            |   13 
 external/python33/python-3.3.0-darwin.patch.1           |   85 +
 external/python33/python-3.3.0-gcc-4.8.patch.1          |   15 
 external/python33/python-3.3.0-i42553.patch.2           |   18 
 external/python33/python-3.3.0-msvc-disable.patch.1     |   47 
 external/python33/python-3.3.0-msvc-x64.patch.1         |  289 +++
 external/python33/python-3.3.0-msvc2012.patch.1         |   72 
 external/python33/python-3.3.0-pythreadstate.patch.1    |   15 
 external/python33/python-3.3.0-ssl.patch.1              |  208 ++
 external/python33/python-3.3.3-aix.patch.1              |  145 +
 external/python33/python-3.3.3-disable-obmalloc.patch.0 |   21 
 external/python33/python-3.3.3-elf-rpath.patch.1        |   13 
 external/python33/python-3.3.3-msvc2012-winxp.patch.1   |  117 +
 external/python33/python-3.3.3-py17797.patch.1          |   45 
 external/python33/python-3.3.5-darwin-gnu-xargs.patch.1 |   12 
 external/python33/python-3.3.5-pyexpat-symbols.patch.1  |   28 
 external/python33/python-3.3.5-vs2013.patch.1           |   14 
 external/python33/python-lsan.patch.0                   |   19 
 external/python33/python-msvc-disable-sse2.patch.1      |   23 
 external/python33/python-vc2013.patch.1                 | 1213 ++++++++++++++++
 external/python33/ubsan.patch.0                         |   79 +
 pyuno/source/module/pyuno.cxx                           |    4 
 47 files changed, 3985 insertions(+), 411 deletions(-)

New commits:
commit 147cb6a2ae63debed3dd500e19b2776cebbc0031
Author: David Ostrovsky <david at ostrovsky.org>
Date:   Sun Jul 26 21:38:38 2015 +0200

    Bump python to 3.5
    
    3.5 release is needed for MSVC 14.0 (aka VS 2015) support. Python 3.5
    removed build toolchain support for MSVC 2013. Because we still need
    to support it, we duplicate the Python directory in externals and
    copy old patches and dispatch to this directory for MSVC 2013. Once
    the support for MSVC 2013 is dropped on master, this directory can be
    removed again.
    
    Change-Id: Idf7bc351239582f583ecbdb53c923cbdcf968089
    Reviewed-on: https://gerrit.libreoffice.org/17352
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Michael Stahl <mstahl at redhat.com>

diff --git a/configure.ac b/configure.ac
index cd3b983..7f81a2e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8055,8 +8055,15 @@ int main(int argc, char **argv) {
 internal)
     SYSTEM_PYTHON=
     PYTHON_VERSION_MAJOR=3
-    PYTHON_VERSION_MINOR=3
-    PYTHON_VERSION=${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.5
+    # On windows we are supporting two different python versions: 3.3 and 3.5.
+    # We msut do it as long as we support MSVC 2013. Python 3.3 can be removed
+    # when MSVC 2013 support was dropped.
+    if test "$COM" = "MSC" -a $VCVER = 120; then
+        PYTHON_VERSION_MINOR=3
+    else
+        PYTHON_VERSION_MINOR=5
+    fi
+    PYTHON_VERSION=${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.0
     AC_DEFINE_UNQUOTED([PYTHON_VERSION_STRING], [L"${PYTHON_VERSION}"])
     BUILD_TYPE="$BUILD_TYPE PYTHON"
     # Embedded Python dies without Home set
diff --git a/download.lst b/download.lst
old mode 100644
new mode 100755
index 62d93da..b1ebb89
--- a/download.lst
+++ b/download.lst
@@ -123,8 +123,15 @@ export PNG_TARBALL := libpng-1.5.18.tar.gz
 export POPPLER_MD5SUM := 35c0660065d023365e9854c13e289d12
 export POPPLER_TARBALL := poppler-0.26.4.tar.gz
 export POSTGRESQL_TARBALL := c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2
+
+ifeq ($(PYTHON_VERSION_MINOR),3)
 export PYTHON_MD5SUM := 803a75927f8f241ca78633890c798021
 export PYTHON_TARBALL := Python-3.3.5.tgz
+else
+export PYTHON_MD5SUM := a56c0c0b45d75a0ec9c6dee933c41c36
+export PYTHON_TARBALL := Python-3.5.0.tgz
+endif
+
 export RAPTOR_TARBALL := 4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz
 export RASQAL_TARBALL := b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz
 export REDLAND_TARBALL := 32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz
diff --git a/external/Module_external.mk b/external/Module_external.mk
index a5dcade..aadb722 100644
--- a/external/Module_external.mk
+++ b/external/Module_external.mk
@@ -85,7 +85,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\
 	$(call gb_Helper_optional,PAGEMAKER,libpagemaker) \
 	$(call gb_Helper_optional,POPPLER,poppler) \
 	$(call gb_Helper_optional,POSTGRESQL,postgresql) \
-	$(call gb_Helper_optional,PYTHON,python3) \
+	$(call gb_Helper_optional,PYTHON,$(if $(filter $(PYTHON_VERSION_MINOR),3),python33,python3)) \
 	$(call gb_Helper_optional,REDLAND,redland) \
 	$(call gb_Helper_optional,REVENGE,librevenge) \
 	$(call gb_Helper_optional,RHINO,rhino) \
diff --git a/external/python3/ExternalPackage_python3.mk b/external/python3/ExternalPackage_python3.mk
index a2f51c1..e132aab 100644
--- a/external/python3/ExternalPackage_python3.mk
+++ b/external/python3/ExternalPackage_python3.mk
@@ -53,60 +53,68 @@ $(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/libpython$(
 # one of these failed to build.
 # Obviously this list should not contain stuff with external dependencies
 # that may not be available on baseline systems.
+
 ifneq ($(OS),AIX)
 $(eval $(call gb_ExternalPackage_add_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/lib-dynload,\
-	LO_lib/array.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/atexit.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/audioop.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/binascii.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_bisect.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/cmath.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_codecs_cn.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_codecs_hk.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_codecs_iso2022.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_codecs_jp.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_codecs_kr.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_codecs_tw.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_crypt.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_csv.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_ctypes.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_ctypes_test.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_datetime.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_decimal.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_elementtree.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/fcntl.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/grp.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/array.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/audioop.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/binascii.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_bisect.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/cmath.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_cn.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_hk.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_iso2022.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_jp.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_kr.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_tw.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_crypt.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_csv.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_ctypes.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_ctypes_test.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_datetime.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_decimal.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_elementtree.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/fcntl.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/grp.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
 	$(if $(DISABLE_OPENSSL),, \
-		LO_lib/_hashlib.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+		LO_lib/_hashlib.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
 	) \
-	LO_lib/_heapq.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_json.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_lsprof.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/math.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/mmap.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_multibytecodec.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_multiprocessing.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/nis.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/ossaudiodev.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/parser.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_pickle.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_posixsubprocess.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/pyexpat.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_random.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/resource.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/select.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_socket.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/spwd.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_heapq.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_json.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_lsprof.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_lzma.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/math.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/mmap.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_multibytecodec.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_multiprocessing.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/nis.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_opcode.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/ossaudiodev.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/parser.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_pickle.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_posixsubprocess.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/pyexpat.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_random.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/readline.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/resource.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/select.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_sha1.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_sha256.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_sha512.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_socket.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/spwd.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
 	$(if $(DISABLE_OPENSSL),, \
-		LO_lib/_ssl.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+		LO_lib/_ssl.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
 	) \
-	LO_lib/_struct.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/syslog.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/termios.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_testbuffer.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/_testcapi.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/time.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
-	LO_lib/zlib.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_struct.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/syslog.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/termios.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_testbuffer.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_testcapi.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_testimportmultiple.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_testmultiphase.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/xxlimited.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/zlib.cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so \
 ))
 endif
 endif
@@ -159,11 +167,16 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	LICENSE \
 	Lib/__future__.py \
 	Lib/__phello__.foo.py \
+	Lib/_bootlocale.py \
+	Lib/_collections_abc.py \
 	Lib/_compat_pickle.py \
+	Lib/_compression.py \
 	Lib/_dummy_thread.py \
 	Lib/_markupbase.py \
 	Lib/_osx_support.py \
+	Lib/_pydecimal.py \
 	Lib/_pyio.py \
+	Lib/_sitebuiltins.py \
 	Lib/_strptime.py \
 	Lib/_threading_local.py \
 	Lib/_weakrefset.py \
@@ -179,7 +192,6 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/binhex.py \
 	Lib/bisect.py \
 	Lib/bz2.py \
-	Lib/cProfile.py \
 	Lib/calendar.py \
 	Lib/cgi.py \
 	Lib/cgitb.py \
@@ -194,6 +206,7 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/contextlib.py \
 	Lib/copy.py \
 	Lib/copyreg.py \
+	Lib/cProfile.py \
 	Lib/crypt.py \
 	Lib/csv.py \
 	Lib/datetime.py \
@@ -202,6 +215,7 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/dis.py \
 	Lib/doctest.py \
 	Lib/dummy_threading.py \
+	Lib/enum.py \
 	Lib/filecmp.py \
 	Lib/fileinput.py \
 	Lib/fnmatch.py \
@@ -240,9 +254,10 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/nturl2path.py \
 	Lib/numbers.py \
 	Lib/opcode.py \
+	Lib/operator.py \
 	Lib/optparse.py \
 	Lib/os.py \
-	Lib/os2emxpath.py \
+	Lib/pathlib.py \
 	Lib/pdb.py \
 	Lib/pickle.py \
 	Lib/pickletools.py \
@@ -256,20 +271,22 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/profile.py \
 	Lib/pstats.py \
 	Lib/pty.py \
-	Lib/py_compile.py \
 	Lib/pyclbr.py \
+	Lib/py_compile.py \
 	Lib/pydoc.py \
 	Lib/queue.py \
 	Lib/quopri.py \
 	Lib/random.py \
-	Lib/re.py \
 	Lib/reprlib.py \
+	Lib/re.py \
 	Lib/rlcompleter.py \
 	Lib/runpy.py \
 	Lib/sched.py \
 	Lib/shelve.py \
+	Lib/selectors.py \
 	Lib/shlex.py \
 	Lib/shutil.py \
+	Lib/signal.py \
 	Lib/site.py \
 	Lib/smtpd.py \
 	Lib/smtplib.py \
@@ -280,9 +297,10 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/sre_constants.py \
 	Lib/sre_parse.py \
 	Lib/ssl.py \
+	Lib/statistics.py \
 	Lib/stat.py \
-	Lib/string.py \
 	Lib/stringprep.py \
+	Lib/string.py \
 	Lib/struct.py \
 	Lib/subprocess.py \
 	Lib/sunau.py \
@@ -297,13 +315,14 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/this.py \
 	Lib/threading.py \
 	Lib/timeit.py \
-	Lib/token.py \
 	Lib/tokenize.py \
-	Lib/trace.py \
+	Lib/token.py \
 	Lib/traceback.py \
+	Lib/trace.py \
 	Lib/tty.py \
 	Lib/turtle.py \
 	Lib/types.py \
+	Lib/typing.py \
 	Lib/uu.py \
 	Lib/uuid.py \
 	Lib/warnings.py \
@@ -351,6 +370,7 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/distutils,\
 	Lib/distutils/README \
 	Lib/distutils/__init__.py \
+	Lib/distutils/_msvccompiler.py \
 	Lib/distutils/archive_util.py \
 	Lib/distutils/bcppcompiler.py \
 	Lib/distutils/ccompiler.py \
@@ -362,7 +382,6 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/distutils/dep_util.py \
 	Lib/distutils/dir_util.py \
 	Lib/distutils/dist.py \
-	Lib/distutils/emxccompiler.py \
 	Lib/distutils/errors.py \
 	Lib/distutils/extension.py \
 	Lib/distutils/fancy_getopt.py \
@@ -394,6 +413,7 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/distutils/command/build_scripts.py \
 	Lib/distutils/command/check.py \
 	Lib/distutils/command/clean.py \
+	Lib/distutils/command/command_template \
 	Lib/distutils/command/config.py \
 	Lib/distutils/command/install_data.py \
 	Lib/distutils/command/install_egg_info.py \
@@ -406,6 +426,8 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/distutils/command/upload.py \
 	Lib/distutils/command/wininst-10.0-amd64.exe \
 	Lib/distutils/command/wininst-10.0.exe \
+	Lib/distutils/command/wininst-14.0-amd64.exe \
+	Lib/distutils/command/wininst-14.0.exe \
 	Lib/distutils/command/wininst-6.0.exe \
 	Lib/distutils/command/wininst-7.1.exe \
 	Lib/distutils/command/wininst-8.0.exe \
@@ -422,6 +444,7 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/email/architecture.rst \
 	Lib/email/base64mime.py \
 	Lib/email/charset.py \
+	Lib/email/contentmanager.py \
 	Lib/email/encoders.py \
 	Lib/email/errors.py \
 	Lib/email/feedparser.py \
@@ -460,6 +483,7 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/encodings/cp037.py \
 	Lib/encodings/cp1006.py \
 	Lib/encodings/cp1026.py \
+	Lib/encodings/cp1125.py \
 	Lib/encodings/cp1140.py \
 	Lib/encodings/cp1250.py \
 	Lib/encodings/cp1251.py \
@@ -531,7 +555,9 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/encodings/iso8859_9.py \
 	Lib/encodings/johab.py \
 	Lib/encodings/koi8_r.py \
+	Lib/encodings/koi8_t.py \
 	Lib/encodings/koi8_u.py \
+	Lib/encodings/kz1048.py \
 	Lib/encodings/latin_1.py \
 	Lib/encodings/mac_arabic.py \
 	Lib/encodings/mac_centeuro.py \
@@ -588,6 +614,7 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/importlib,\
 	Lib/importlib/__init__.py \
 	Lib/importlib/_bootstrap.py \
+	Lib/importlib/_bootstrap_external.py \
 	Lib/importlib/abc.py \
 	Lib/importlib/machinery.py \
 	Lib/importlib/util.py \
@@ -602,10 +629,10 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 ))
 
 $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/lib2to3,\
-	Lib/lib2to3/Grammar.txt \
-	Lib/lib2to3/PatternGrammar.txt \
 	Lib/lib2to3/__init__.py \
 	Lib/lib2to3/__main__.py \
+	Lib/lib2to3/Grammar.txt \
+	Lib/lib2to3/PatternGrammar.txt \
 	Lib/lib2to3/btm_matcher.py \
 	Lib/lib2to3/btm_utils.py \
 	Lib/lib2to3/fixer_base.py \
@@ -620,6 +647,7 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/lib2to3/fixes,\
 	Lib/lib2to3/fixes/__init__.py \
 	Lib/lib2to3/fixes/fix_apply.py \
+	Lib/lib2to3/fixes/fix_asserts.py \
 	Lib/lib2to3/fixes/fix_basestring.py \
 	Lib/lib2to3/fixes/fix_buffer.py \
 	Lib/lib2to3/fixes/fix_callable.py \
@@ -656,6 +684,7 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/lib2to3/fixes/fix_raise.py \
 	Lib/lib2to3/fixes/fix_raw_input.py \
 	Lib/lib2to3/fixes/fix_reduce.py \
+	Lib/lib2to3/fixes/fix_reload.py \
 	Lib/lib2to3/fixes/fix_renames.py \
 	Lib/lib2to3/fixes/fix_repr.py \
 	Lib/lib2to3/fixes/fix_set_literal.py \
@@ -693,14 +722,21 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/multiprocessing,\
 	Lib/multiprocessing/__init__.py \
 	Lib/multiprocessing/connection.py \
-	Lib/multiprocessing/forking.py \
+	Lib/multiprocessing/context.py \
+	Lib/multiprocessing/forkserver.py \
 	Lib/multiprocessing/heap.py \
 	Lib/multiprocessing/managers.py \
-	Lib/multiprocessing/pool.py \
+	Lib/multiprocessing/popen_fork.py \
+	Lib/multiprocessing/popen_forkserver.py \
+	Lib/multiprocessing/popen_spawn_posix.py \
+	Lib/multiprocessing/popen_spawn_win32.py \
 	Lib/multiprocessing/process.py \
 	Lib/multiprocessing/queues.py \
 	Lib/multiprocessing/reduction.py \
+	Lib/multiprocessing/resource_sharer.py \
+	Lib/multiprocessing/semaphore_tracker.py \
 	Lib/multiprocessing/sharedctypes.py \
+	Lib/multiprocessing/spawn.py \
 	Lib/multiprocessing/synchronize.py \
 	Lib/multiprocessing/util.py \
 ))
@@ -732,6 +768,8 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 
 $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/unittest/test,\
 	Lib/unittest/test/__init__.py \
+	Lib/unittest/test/__main__.py \
+	Lib/unittest/test/_test_warnings.py \
 	Lib/unittest/test/dummy.py \
 	Lib/unittest/test/support.py \
 	Lib/unittest/test/test_assertions.py \
@@ -746,11 +784,11 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 	Lib/unittest/test/test_setups.py \
 	Lib/unittest/test/test_skipping.py \
 	Lib/unittest/test/test_suite.py \
-	Lib/unittest/test/_test_warnings.py \
 ))
 
 $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/unittest/test/testmock,\
 	Lib/unittest/test/testmock/__init__.py \
+	Lib/unittest/test/testmock/__main__.py \
 	Lib/unittest/test/testmock/support.py \
 	Lib/unittest/test/testmock/testcallable.py \
 	Lib/unittest/test/testmock/testhelpers.py \
diff --git a/external/python3/ExternalProject_python3.mk b/external/python3/ExternalProject_python3.mk
index 098b1ea..72afab7 100644
--- a/external/python3/ExternalProject_python3.mk
+++ b/external/python3/ExternalProject_python3.mk
@@ -136,8 +136,7 @@ $(call gb_ExternalProject_get_state_target,python3,fixinstallnames) : $(call gb_
 $(call gb_ExternalProject_get_state_target,python3,executables) : $(call gb_ExternalProject_get_state_target,python3,build)
 	cd $(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin ; \
 	for file in python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) \
-	            python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m \
-	            pythonw$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) ; do \
+	            python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m ; do \
 	$(INSTALL_NAME_TOOL) -change \
 		$(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/LibreOfficePython \
 		@executable_path/../LibreOfficePython $$file ; done
diff --git a/external/python3/UnpackedTarball_python3.mk b/external/python3/UnpackedTarball_python3.mk
index b091bfc..37b05c9 100644
--- a/external/python3/UnpackedTarball_python3.mk
+++ b/external/python3/UnpackedTarball_python3.mk
@@ -17,24 +17,20 @@ $(eval $(call gb_UnpackedTarball_fix_end_of_line,python3,\
 
 $(eval $(call gb_UnpackedTarball_add_patches,python3,\
 	external/python3/i100492-freebsd.patch.1 \
-	external/python3/python-3.3.0-i42553.patch.2 \
 	external/python3/python-3.3.3-aix.patch.1 \
 	external/python3/python-3.3.0-darwin.patch.1 \
-	external/python3/python-3.3.0-msvc2012.patch.1 \
 	external/python3/python-3.3.0-msvc-disable.patch.1 \
-	external/python3/python-3.3.0-msvc-x64.patch.1 \
 	external/python3/python-3.3.0-ssl.patch.1 \
-	external/python3/python-3.3.0-gcc-4.8.patch.1 \
+	external/python3/python-3.3.3-py17797.patch.1 \
+	external/python3/python-3.3.0-i42553.patch.2 \
 	external/python3/python-3.3.0-pythreadstate.patch.1 \
 	external/python3/python-3.3.0-clang.patch.1 \
-	external/python3/python-3.3.3-py17797.patch.1 \
-	external/python3/python-3.3.3-msvc2012-winxp.patch.1 \
 	external/python3/python-3.3.5-pyexpat-symbols.patch.1 \
 	external/python3/python-3.3.5-vs2013.patch.1 \
-	external/python3/python-3.3.5-darwin-gnu-xargs.patch.1 \
-	external/python3/python-msvc-disable-sse2.patch.1 \
 	external/python3/python-lsan.patch.0 \
 	external/python3/ubsan.patch.0 \
+	external/python3/python-3.5.tweak.strip.soabi.patch \
+	external/python3/python-3.5.0-tcltk.disable.patch \
 ))
 
 ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD SOLARIS,$(OS)),)
diff --git a/external/python3/i100492-freebsd.patch.1 b/external/python3/i100492-freebsd.patch.1
index 7189a7e..9b4b337 100644
--- a/external/python3/i100492-freebsd.patch.1
+++ b/external/python3/i100492-freebsd.patch.1
@@ -1,30 +1,18 @@
 FreeBSD porting fixes, patch by maho at openoffice.org
 
---- Python-3.3.0/configure	2012-11-28 09:00:41.094955090 +0000
-+++ Python-3.3.0/configure	2012-11-28 09:01:13.033329526 +0000
-@@ -5545,11 +5545,6 @@
- 	  LDLIBRARY='libpython$(LDVERSION).so'
- 	  BLDLIBRARY='-L. -lpython$(LDVERSION)'
- 	  RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
--	  case $ac_sys_system in
--	      FreeBSD*)
--		SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
--		;;
--	  esac
- 	  INSTSONAME="$LDLIBRARY".$SOVERSION
- 	  if test "$with_pydebug" != yes
-           then
---- Python-3.3.0/Lib/test/test_threading.py	2012-11-28 09:00:41.292957412 +0000
-+++ Python-3.3.0/Lib/test/test_threading.py	2012-11-28 09:01:13.017329339 +0000
-@@ -451,7 +451,7 @@
-     # #12316 and #11870), and fork() from a worker thread is known to trigger
-     # problems with some operating systems (issue #3863): skip problematic tests
-     # on platforms known to behave badly.
--    platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'netbsd5',
-+    platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'netbsd5',
-                          'os2emx', 'hp-ux11')
+--- python3.orig/Lib/test/test_threading.py	2015-07-05 18:50:07.000000000 +0200
++++ python3/Lib/test/test_threading.py	2015-07-26 17:03:55.935367820 +0200
+@@ -24,8 +24,8 @@
+ # #12316 and #11870), and fork() from a worker thread is known to trigger
+ # problems with some operating systems (issue #3863): skip problematic tests
+ # on platforms known to behave badly.
+-platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'netbsd5',
+-                     'hp-ux11')
++platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'netbsd5',
++                     'os2emx', 'hp-ux11')
  
-     def _run_and_join(self, script):
+ 
+ # A trivial mutable counter.
 --- Python-3.3.0/Python/thread_pthread.h	2012-11-28 09:00:41.097955124 +0000
 +++ Python-3.3.0/Python/thread_pthread.h	2012-11-28 09:01:13.018329351 +0000
 @@ -42,6 +42,10 @@
diff --git a/external/python3/python-3.3.0-darwin.patch.1 b/external/python3/python-3.3.0-darwin.patch.1
index a709473..2cf5bbb 100644
--- a/external/python3/python-3.3.0-darwin.patch.1
+++ b/external/python3/python-3.3.0-darwin.patch.1
@@ -2,14 +2,14 @@
 
 LO needs to build both against MacOSX SDK and not produce universal binaries.
 
-diff -ru python3.old_/configure python3/configure
---- python3.old_/configure	2012-09-29 10:00:50.000000000 +0200
-+++ python3/configure	2012-11-13 16:37:26.030013256 +0100
-@@ -6353,7 +6353,19 @@
- 	    if test "${enable_universalsdk}"; then
- 		UNIVERSAL_ARCH_FLAGS=""
- 	        if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
--		   UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
+diff -ru python3.orig/configure python3/configure
+--- python3.orig/configure	2015-07-26 17:36:11.808497783 +0200
++++ python3/configure	2015-07-26 17:38:49.016508337 +0200
+@@ -6794,7 +6794,20 @@
+         then
+             case "$UNIVERSAL_ARCHS" in
+             32-bit)
+-               UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
 +           # LO does not use Universal Binaries (but the only way to set a SDK
 +           # here implies that, so de-universalize here...)
 +           case `/usr/bin/arch` in
@@ -23,36 +23,16 @@ diff -ru python3.old_/configure python3/configure
 +               as_fn_error $? "Unexpected output of 'arch' on OSX" "$LINENO" 5
 +               ;;
 +           esac
- 		   ARCH_RUN_32BIT=""
- 		   LIPO_32BIT_FLAGS=""
- 	         elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
-
-On OS X avoid /usr/local/lib and include like the plague, we don't
-want to accidentally get some MacPorts etc stuff.
-
-On OS X, always run the compiler (which is Clang, not gcc) to find out
-what the include paths are. On a clean modern installation, there is
-no /usr/include.
-
---- python3/setup.py
-+++ python3/setup.py
-@@ -460,11 +460,11 @@
-         # Ensure that /usr/local is always used, but the local build
-         # directories (i.e. '.' and 'Include') must be first.  See issue
-         # 10520.
--        if not cross_compiling:
-+        if not cross_compiling and host_platform != 'darwin':
-             add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
-             add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
-         # only change this for cross builds for 3.3, issues on Mageia
--        if cross_compiling:
-+        if cross_compiling or host_platform == 'darwin':
-             self.add_gcc_paths()
-         self.add_multiarch_paths()
- 
---- python3/Mac/Makefile.in.orig	2013-09-13 20:16:50.558137603 +0200
-+++ python3/Mac/Makefile.in	2013-09-13 21:57:14.790962423 +0200
-@@ -39,7 +39,7 @@
++
+                LIPO_32BIT_FLAGS=""
+                ARCH_RUN_32BIT=""
+                ;;
+Only in python3: .#configure
+Only in python3: #configure#
+diff -ru python3.orig/Mac/Makefile.in python3/Mac/Makefile.in
+--- python3.orig/Mac/Makefile.in	2015-07-05 18:50:07.000000000 +0200
++++ python3/Mac/Makefile.in	2015-07-26 17:40:14.860514100 +0200
+@@ -43,7 +43,7 @@
  INSTALL_SCRIPT= @INSTALL_SCRIPT@
  INSTALL_DATA=@INSTALL_DATA@
  LN=@LN@
@@ -61,8 +41,21 @@ no /usr/include.
  CPMAC=CpMac
  
  APPTEMPLATE=$(srcdir)/Resources/app
---- python3/Mac/Resources/framework/Info.plist.in
-+++ python3/Mac/Resources/framework/Info.plist.in
+diff -ru python3.orig/Mac/Resources/app/Info.plist.in python3/Mac/Resources/app/Info.plist.in
+--- python3.orig/Mac/Resources/app/Info.plist.in	2015-07-05 18:50:07.000000000 +0200
++++ python3/Mac/Resources/app/Info.plist.in	2015-07-26 17:42:00.974521224 +0200
+@@ -18,7 +18,7 @@
+ 		</dict>
+ 	</array>
+ 	<key>CFBundleExecutable</key>
+-	<string>Python</string>
++	<string>LibreOfficePython</string>
+ 	<key>CFBundleGetInfoString</key>
+ 	<string>%version%, (c) 2001-2015 Python Software Foundation.</string>
+ 	<key>CFBundleHelpBookFolder</key>
+diff -ru python3.orig/Mac/Resources/framework/Info.plist.in python3/Mac/Resources/framework/Info.plist.in
+--- python3.orig/Mac/Resources/framework/Info.plist.in	2015-07-05 18:50:07.000000000 +0200
++++ python3/Mac/Resources/framework/Info.plist.in	2015-07-26 17:41:15.996518204 +0200
 @@ -5,7 +5,7 @@
  	<key>CFBundleDevelopmentRegion</key>
  	<string>English</string>
@@ -72,14 +65,19 @@ no /usr/include.
  	<key>CFBundleGetInfoString</key>
  	<string>Python Runtime and Library</string>
  	<key>CFBundleIdentifier</key>
---- python3/Mac/Resources/app/Info.plist.in
-+++ python3/Mac/Resources/app/Info.plist.in
-@@ -18,7 +18,7 @@
- 		</dict>
- 	</array>
- 	<key>CFBundleExecutable</key>
--	<string>Python</string>
-+	<string>LibreOfficePython</string>
- 	<key>CFBundleGetInfoString</key>
- 	<string>%version%, (c) 2004-2014 Python Software Foundation.</string>
- 	<key>CFBundleHelpBookFolder</key>
+diff -ru python3.orig/setup.py python3/setup.py
+--- python3.orig/setup.py	2015-07-26 17:36:11.804497783 +0200
++++ python3/setup.py	2015-07-26 17:39:48.599512337 +0200
+@@ -468,11 +468,11 @@
+         # Ensure that /usr/local is always used, but the local build
+         # directories (i.e. '.' and 'Include') must be first.  See issue
+         # 10520.
+-        if not cross_compiling:
++        if not cross_compiling and host_platform != 'darwin':
+             add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
+             add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+         # only change this for cross builds for 3.3, issues on Mageia
+-        if cross_compiling:
++        if cross_compiling or host_platform == 'darwin':
+             self.add_gcc_paths()
+         self.add_multiarch_paths()
diff --git a/external/python3/python-3.3.0-gcc-4.8.patch.1 b/external/python3/python-3.3.0-gcc-4.8.patch.1
index 8fb7107..6af06b3 100644
--- a/external/python3/python-3.3.0-gcc-4.8.patch.1
+++ b/external/python3/python-3.3.0-gcc-4.8.patch.1
@@ -1,10 +1,11 @@
---- Python-3.3.0/Include/modsupport.h	2012-09-29 10:00:26.000000000 +0200
-+++ Python-3.3.0/Include/modsupport.h	2013-03-08 10:46:28.671938738 +0100
+diff -ru python3.orig/Include/modsupport.h python3/Include/modsupport.h
+--- python3.orig/Include/modsupport.h	2015-07-05 18:50:06.000000000 +0200
++++ python3/Include/modsupport.h	2015-07-26 18:21:30.717680314 +0200
 @@ -26,7 +26,11 @@
  /* Due to a glitch in 3.2, the _SizeT versions weren't exported from the DLL. */
  #if !defined(PY_SSIZE_T_CLEAN) || !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
  PyAPI_FUNC(int) PyArg_Parse(PyObject *, const char *, ...);
--PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...) Py_FORMAT_PARSETUPLE(PyArg_ParseTuple, 2, 3);
+-PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...);
 +PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...)
 +#ifdef PY_SSIZE_T_CLEAN
 +    Py_FORMAT_PARSETUPLE(PyArg_ParseTuple, 2, 3)
diff --git a/external/python3/python-3.3.0-msvc-disable.patch.1 b/external/python3/python-3.3.0-msvc-disable.patch.1
index 6a6a950..bb0a57f 100644
--- a/external/python3/python-3.3.0-msvc-disable.patch.1
+++ b/external/python3/python-3.3.0-msvc-disable.patch.1
@@ -1,20 +1,18 @@
 Disable some stuff LO does not need, especially stuff with external dependencies
 
-diff -ru python3/PCbuild/pcbuild.sln python3.new/PCbuild/pcbuild.sln
---- python3/PCbuild/pcbuild.sln	2012-09-29 10:00:48.000000000 +0200
-+++ python3.new/PCbuild/pcbuild.sln	2012-11-12 22:13:49.445159668 +0100
-@@ -12,10 +12,6 @@
+diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln
+--- python3.orig/PCbuild/pcbuild.sln	2015-07-26 17:43:52.262528695 +0200
++++ python3/PCbuild/pcbuild.sln	2015-07-26 18:00:18.438594901 +0200
+@@ -12,8 +12,6 @@
  EndProject
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcxproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}"
  EndProject
 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcxproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}"
 -EndProject
--Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcxproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}"
--EndProject
- Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcxproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}"
- EndProject
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcxproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}"
-@@ -32,30 +28,16 @@
+ EndProject
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_decimal", "_decimal.vcxproj", "{0E9791DB-593A-465F-98BC-681011311617}"
+@@ -28,32 +26,18 @@
  EndProject
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcxproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}"
  EndProject
@@ -24,6 +22,8 @@ diff -ru python3/PCbuild/pcbuild.sln python3.new/PCbuild/pcbuild.sln
  EndProject
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcxproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}"
  EndProject
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testimportmultiple", "_testimportmultiple.vcxproj", "{36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}"
+ EndProject
 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcxproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}"
 -EndProject
 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bz2", "_bz2.vcxproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}"
@@ -36,7 +36,7 @@ diff -ru python3/PCbuild/pcbuild.sln python3.new/PCbuild/pcbuild.sln
  EndProject
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcxproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}"
  EndProject
--Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "bdist_wininst.vcxproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "..\PC\bdist_wininst\bdist_wininst.vcxproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
 -EndProject
 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcxproj", "{447F05A8-F581-4CAC-A466-5AC7936E207E}"
 -EndProject
@@ -44,4 +44,4 @@ diff -ru python3/PCbuild/pcbuild.sln python3.new/PCbuild/pcbuild.sln
 -EndProject
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcxproj", "{9E48B300-37D1-11DD-8C41-005056C00008}"
  EndProject
- Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl", "ssl.vcxproj", "{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}"
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python3dll", "python3dll.vcxproj", "{885D4898-D08D-4091-9C40-C700CFE3FC5A}"
diff --git a/external/python3/python-3.3.0-ssl.patch.1 b/external/python3/python-3.3.0-ssl.patch.1
index b85fe07..e43a7b3 100644
--- a/external/python3/python-3.3.0-ssl.patch.1
+++ b/external/python3/python-3.3.0-ssl.patch.1
@@ -2,186 +2,55 @@
 
 Tweak SSL build to find OpenSSL in solver & not build it itself in "ssl.vcproj" etc.
 
-diff -ru python3.old_/Modules/Setup.dist python3/Modules/Setup.dist
---- python3.old_/Modules/Setup.dist	2012-09-29 10:00:42.000000000 +0200
-+++ python3/Modules/Setup.dist	2012-11-13 14:19:01.994158111 +0100
-@@ -236,14 +236,14 @@
- # The _md5 module implements the RSA Data Security, Inc. MD5
- # Message-Digest Algorithm, described in RFC 1321.
- 
--#_md5 md5module.c
-+_md5 md5module.c
- 
- 
- # The _sha module implements the SHA checksum algorithms.
- # (NIST's Secure Hash Algorithms.)
--#_sha1 sha1module.c
--#_sha256 sha256module.c
--#_sha512 sha512module.c
-+_sha1 sha1module.c
-+_sha256 sha256module.c
-+_sha512 sha512module.c
- 
- 
- # The _tkinter module.
-diff -ru python3.old_/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln
---- python3.old_/PCbuild/pcbuild.sln	2012-09-29 10:00:48.000000000 +0200
-+++ python3/PCbuild/pcbuild.sln	2012-11-13 14:50:39.220142472 +0100
-@@ -58,8 +58,6 @@
+diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln
+--- python3.orig/PCbuild/pcbuild.sln	2015-08-22 18:57:16.653719900 +0200
++++ python3/PCbuild/pcbuild.sln	2015-08-22 19:03:06.062853000 +0200
+@@ -64,10 +64,6 @@
  EndProject
- Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcxproj", "{9E48B300-37D1-11DD-8C41-005056C00008}"
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tk", "tk.vcxproj", "{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}"
  EndProject
--Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl", "ssl.vcxproj", "{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}"
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeay", "libeay.vcxproj", "{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}"
 -EndProject
- Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kill_python", "kill_python.vcxproj", "{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}"
- EndProject
- Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python3dll", "python3dll.vcxproj", "{885D4898-D08D-4091-9C40-C700CFE3FC5A}"
-diff -ru python3.old_/PCbuild/_ssl.vcxproj python3/PCbuild/_ssl.vcxproj
---- python3.old_/PCbuild/_ssl.vcxproj	2012-09-29 10:00:48.000000000 +0200
-+++ python3/PCbuild/_ssl.vcxproj	2012-11-13 14:55:50.298137715 +0100
-@@ -151,14 +151,14 @@
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay", "ssleay.vcxproj", "{10615B24-73BF-4EFA-93AA-236916321317}"
+-EndProject
+ Global
+ 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ 		Debug|Win32 = Debug|Win32
+diff -ru python3.orig/PCbuild/_ssl.vcxproj python3/PCbuild/_ssl.vcxproj
+--- python3.orig/PCbuild/_ssl.vcxproj   2015-08-11 02:52:36.000000000 +0200
++++ python3/PCbuild/_ssl.vcxproj        2015-08-22 18:19:20.744299000 +0200
+@@ -61,10 +61,10 @@
    </PropertyGroup>
-   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-     <ClCompile>
--      <AdditionalIncludeDirectories>$(opensslDir)\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <AdditionalIncludeDirectories>$(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-     </ClCompile>
-     <PreLinkEvent>
-       <Command>
-       </Command>
-     </PreLinkEvent>
-     <Link>
--      <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalDependencies>ws2_32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-     </Link>
-   </ItemDefinitionGroup>
-   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-@@ -166,26 +166,26 @@
-       <TargetEnvironment>X64</TargetEnvironment>
-     </Midl>
-     <ClCompile>
--      <AdditionalIncludeDirectories>$(opensslDir)\inc64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <AdditionalIncludeDirectories>$(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-     </ClCompile>
-     <PreLinkEvent>
-       <Command>
-       </Command>
-     </PreLinkEvent>
-     <Link>
--      <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalDependencies>ws2_32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-     </Link>
-   </ItemDefinitionGroup>
-   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-     <ClCompile>
--      <AdditionalIncludeDirectories>$(opensslDir)\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <AdditionalIncludeDirectories>$(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-     </ClCompile>
-     <PreLinkEvent>
-       <Command>
-       </Command>
-     </PreLinkEvent>
-     <Link>
--      <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalDependencies>ws2_32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-     </Link>
-   </ItemDefinitionGroup>
-   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-@@ -193,26 +193,26 @@
-       <TargetEnvironment>X64</TargetEnvironment>
-     </Midl>
-     <ClCompile>
--      <AdditionalIncludeDirectories>$(opensslDir)\inc64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <AdditionalIncludeDirectories>$(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-     </ClCompile>
-     <PreLinkEvent>
-       <Command>
-       </Command>
-     </PreLinkEvent>
-     <Link>
--      <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalDependencies>ws2_32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-     </Link>
-   </ItemDefinitionGroup>
-   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">
-     <ClCompile>
--      <AdditionalIncludeDirectories>$(opensslDir)\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <AdditionalIncludeDirectories>$(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-     </ClCompile>
-     <PreLinkEvent>
-       <Command>
-       </Command>
-     </PreLinkEvent>
-     <Link>
--      <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalDependencies>ws2_32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-     </Link>
-   </ItemDefinitionGroup>
-   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">
-@@ -220,27 +220,27 @@
-       <TargetEnvironment>X64</TargetEnvironment>
-     </Midl>
-     <ClCompile>
--      <AdditionalIncludeDirectories>$(opensslDir)\inc64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <AdditionalIncludeDirectories>$(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-     </ClCompile>
-     <PreLinkEvent>
-       <Command>
-       </Command>
-     </PreLinkEvent>
-     <Link>
--      <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalDependencies>ws2_32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-       <TargetMachine>MachineX64</TargetMachine>
-     </Link>
-   </ItemDefinitionGroup>
-   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">
-     <ClCompile>
--      <AdditionalIncludeDirectories>$(opensslDir)\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <AdditionalIncludeDirectories>$(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-     </ClCompile>
-     <PreLinkEvent>
-       <Command>
-       </Command>
-     </PreLinkEvent>
-     <Link>
--      <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalDependencies>ws2_32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-     </Link>
-   </ItemDefinitionGroup>
-   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'">
-@@ -248,14 +248,14 @@
-       <TargetEnvironment>X64</TargetEnvironment>
-     </Midl>
+   <ItemDefinitionGroup>
      <ClCompile>
--      <AdditionalIncludeDirectories>$(opensslDir)\inc64;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+-      <AdditionalIncludeDirectories>$(opensslDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories>$(WORKDIR)/UnpackedTarball/openssl/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      </ClCompile>
-     <PreLinkEvent>
-       <Command>
-       </Command>
-     </PreLinkEvent>
      <Link>
--      <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalDependencies>ws2_32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-       <TargetMachine>MachineX64</TargetMachine>
+-      <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(OutDir)libeay$(PyDebugExt).lib;$(OutDir)ssleay$(PyDebugExt).lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\libeay32.lib;$(WORKDIR)\UnpackedTarball\openssl\out32dll\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
      </Link>
    </ItemDefinitionGroup>
-@@ -271,10 +271,6 @@
+   <ItemGroup>
+@@ -75,14 +75,6 @@
        <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
        <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
      </ProjectReference>
--    <ProjectReference Include="ssl.vcxproj">
+-    <ProjectReference Include="libeay.vcxproj">
 -      <Project>{e5b04cc0-eb4c-42ab-b4dc-18ef95f864b0}</Project>
 -      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
 -    </ProjectReference>
+-    <ProjectReference Include="ssleay.vcxproj">
+-      <Project>{10615b24-73bf-4efa-93aa-236916321317}</Project>
+-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+-    </ProjectReference>
      <ProjectReference Include="_socket.vcxproj">
        <Project>{86937f53-c189-40ef-8ce8-8759d8e7d480}</Project>
        <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-diff -ru python3.old_/setup.py python3/setup.py
---- python3.old_/setup.py	2012-09-29 10:00:50.000000000 +0200
-+++ python3/setup.py	2012-11-13 14:18:23.484158149 +0100
-@@ -757,7 +757,10 @@
+diff -ru python3.orig/setup.py python3/setup.py
+--- python3.orig/setup.py       2015-08-22 18:16:15.825267200 +0200
++++ python3/setup.py    2015-08-22 18:22:44.162757900 +0200
+@@ -778,7 +778,10 @@
          exts.append( Extension('_socket', ['socketmodule.c'],
                                 depends = ['socketmodule.h']) )
          # Detect SSL support for the socket module (via _ssl)
@@ -192,7 +61,7 @@ diff -ru python3.old_/setup.py python3/setup.py
                                '/usr/local/ssl/include',
                                '/usr/contrib/ssl/include/'
                               ]
-@@ -769,8 +774,12 @@
+@@ -790,8 +793,12 @@
                                 ['/usr/kerberos/include'])
              if krb5_h:
                  ssl_incs += krb5_h
@@ -205,4 +74,5 @@ diff -ru python3.old_/setup.py python3/setup.py
 +                                      '/usr/local/ssl/lib',
                                        '/usr/contrib/ssl/lib/'
                                       ] )
- 
+
+
diff --git a/external/python3/python-3.3.3-aix.patch.1 b/external/python3/python-3.3.3-aix.patch.1
index f510a81..1387e9c 100644
--- a/external/python3/python-3.3.3-aix.patch.1
+++ b/external/python3/python-3.3.3-aix.patch.1
@@ -1,8 +1,9 @@
 build with GCC on AIX
 
---- Python-3.3.3/configure	2012-11-28 09:05:45.990529603 +0000
-+++ Python-3.3.3/configure	2012-11-28 09:06:23.037963934 +0000
-@@ -3426,8 +3426,6 @@
+diff -ru python3.orig/configure python3/configure
+--- python3.orig/configure	2015-07-26 17:10:18.218393484 +0200
++++ python3/configure	2015-07-26 17:29:44.460471779 +0200
+@@ -3534,8 +3534,6 @@
  else
  
  	case $ac_sys_system in
@@ -11,7 +12,7 @@ build with GCC on AIX
  	*)	without_gcc=no;;
  	esac
  fi
-@@ -5541,10 +5539,18 @@
+@@ -5787,10 +5785,18 @@
  	      PY3LIBRARY=libpython3.so
  	  fi
            ;;
@@ -19,7 +20,7 @@ build with GCC on AIX
 +    Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|AIX*)
  	  LDLIBRARY='libpython$(LDVERSION).so'
 -	  BLDLIBRARY='-L. -lpython$(LDVERSION)'
--	  RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
+-	  RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
 +	  case $ac_sys_system in
 +	    AIX*)
 +	      BLDLIBRARY='-Wl,-brtl -L. -lpython$(LDVERSION)'
@@ -33,7 +34,7 @@ build with GCC on AIX
  	  INSTSONAME="$LDLIBRARY".$SOVERSION
  	  if test "$with_pydebug" != yes
            then
-@@ -8301,8 +8307,13 @@
+@@ -8789,8 +8795,13 @@
  then
  	case $ac_sys_system/$ac_sys_release in
  	AIX*)
@@ -49,9 +50,10 @@ build with GCC on AIX
  		;;
  	IRIX/5*) LDSHARED="ld -shared";;
  	IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
---- Python-3.3.3/configure.ac	2012-11-28 09:05:45.990529603 +0000
-+++ Python-3.3.3/configure.ac	2012-11-28 09:06:23.038963946 +0000
-@@ -545,8 +545,6 @@
+diff -ru python3.orig/configure.ac python3/configure.ac
+--- python3.orig/configure.ac	2015-07-05 18:50:08.000000000 +0200
++++ python3/configure.ac	2015-07-26 17:32:10.445481579 +0200
+@@ -587,8 +587,6 @@
  		without_gcc=$withval;;
  	esac], [
  	case $ac_sys_system in
@@ -60,15 +62,15 @@ build with GCC on AIX
  	*)	without_gcc=no;;
  	esac])
  AC_MSG_RESULT($without_gcc)
-@@ -910,10 +908,18 @@
+@@ -1090,10 +1088,18 @@
  	      PY3LIBRARY=libpython3.so
  	  fi
            ;;
 -    Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
-+    Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|AIX*)
++    Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|AIX*)Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
  	  LDLIBRARY='libpython$(LDVERSION).so'
 -	  BLDLIBRARY='-L. -lpython$(LDVERSION)'
--	  RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
+-	  RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
 +	  case $ac_sys_system in
 +	    AIX*)
 +	      BLDLIBRARY='-Wl,-brtl -L. -lpython$(LDVERSION)'
@@ -79,10 +81,10 @@ build with GCC on AIX
 +	      RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
 +	      ;;
 +	  esac
- 	  case $ac_sys_system in
- 	      FreeBSD*)
- 		SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
-@@ -1866,8 +1872,13 @@
+ 	  INSTSONAME="$LDLIBRARY".$SOVERSION
+ 	  if test "$with_pydebug" != yes
+           then
+@@ -2164,8 +2170,13 @@
  then
  	case $ac_sys_system/$ac_sys_release in
  	AIX*)
@@ -98,9 +100,10 @@ build with GCC on AIX
  		;;
  	IRIX/5*) LDSHARED="ld -shared";;
  	IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
---- Python-3.3.3/Makefile.pre.in	2012-11-28 09:05:45.861528086 +0000
-+++ Python-3.3.3/Makefile.pre.in	2012-11-28 09:06:23.046964040 +0000
-@@ -493,14 +493,20 @@
+diff -ru python3.orig/Makefile.pre.in python3/Makefile.pre.in
+--- python3.orig/Makefile.pre.in	2015-07-05 18:50:07.000000000 +0200
++++ python3/Makefile.pre.in	2015-07-26 17:34:00.386488960 +0200
+@@ -598,14 +598,20 @@
  
  libpython$(LDVERSION).so: $(LIBRARY_OBJS)
  	if test $(INSTSONAME) != $(LDLIBRARY); then \
@@ -123,7 +126,7 @@ build with GCC on AIX
  
  libpython$(LDVERSION).dylib: $(LIBRARY_OBJS)
  	 $(CC) -dynamiclib -Wl,-single_module $(PY_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
-@@ -1106,6 +1112,8 @@
+@@ -1299,6 +1305,8 @@
  	export PATH; PATH="`pwd`:$$PATH"; \
  	export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \
  	export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
@@ -132,9 +135,10 @@ build with GCC on AIX
  	export EXE; EXE="$(BUILDEXE)"; \
  	if [ -n "$(MULTIARCH)" ]; then export MULTIARCH; MULTIARCH=$(MULTIARCH); fi; \
  	export PYTHON_FOR_BUILD; \
---- Python-3.3.3/Modules/Setup.dist	2012-11-28 09:05:45.935528957 +0000
-+++ Python-3.3.3/Modules/Setup.dist	2012-11-28 09:06:23.052964111 +0000
-@@ -177,7 +177,7 @@
+diff -ru python3.orig/Modules/Setup.dist python3/Modules/Setup.dist
+--- python3.orig/Modules/Setup.dist	2015-07-05 18:50:07.000000000 +0200
++++ python3/Modules/Setup.dist	2015-07-26 17:34:27.951490811 +0200
+@@ -181,7 +181,7 @@
  #_bisect _bisectmodule.c	# Bisection algorithms
  #_heapq _heapqmodule.c	# Heap queue algorithm
  
diff --git a/external/python3/python-3.3.3-elf-rpath.patch.1 b/external/python3/python-3.3.3-elf-rpath.patch.1
index 33de913..945f7a5 100644
--- a/external/python3/python-3.3.3-elf-rpath.patch.1
+++ b/external/python3/python-3.3.3-elf-rpath.patch.1
@@ -1,13 +1,14 @@
 set RPATH (only to be used on ELF platforms)
 
---- python3/Makefile.pre.in	2013-04-19 15:08:43.637715422 +0200
-+++ python3/Makefile.pre.in	2013-04-19 15:07:32.685711138 +0200
-@@ -464,7 +464,7 @@
+diff -ru python3.orig/Makefile.pre.in python3/Makefile.pre.in
+--- python3.orig/Makefile.pre.in	2015-07-26 20:29:07.126194320 +0200
++++ python3/Makefile.pre.in	2015-07-26 20:37:21.814227530 +0200
+@@ -550,7 +550,7 @@
  
  # Build the interpreter
- $(BUILDPYTHON):	Modules/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
--	$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Modules/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-+	$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Modules/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) -Wl,-rpath,\$$ORIGIN
+ $(BUILDPYTHON):	Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
+-	$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
++	$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) -Wl,-rpath,\$$ORIGIN
  
  platform: $(BUILDPYTHON) pybuilddir.txt
  	$(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print(get_platform()+"-"+sys.version[0:3])' >platform
diff --git a/external/python3/python-3.3.3-py17797.patch.1 b/external/python3/python-3.3.3-py17797.patch.1
index 8fcb703..0365717 100644
--- a/external/python3/python-3.3.3-py17797.patch.1
+++ b/external/python3/python-3.3.3-py17797.patch.1
@@ -1,27 +1,29 @@
 http://bugs.python.org/issue17797
 http://connect.microsoft.com/VisualStudio/feedback/details/785119/
 
-Visual Studio 2012 changed return value for fileno function that breaks
+Visual Studio 2013 changed return value for fileno function that breaks
 when python tries to check/setup stdin/out/err
 GetStdHandle on Windows XP behaves contrary to the documentation...
+MSVC 14.0 fixed this bug.
 
-diff --git a/Python/pythonrun.c b/Python/pythonrun.c
-index 91d56b7..d28ffc7 100644
---- a/Python/pythonrun.c
-+++ b/Python/pythonrun.c
-@@ -1015,13 +1015,28 @@ error:
+diff -ru python3.orig/Python/pylifecycle.c python3/Python/pylifecycle.c
+--- python3.orig/Python/pylifecycle.c	2015-07-05 18:50:08.000000000 +0200
++++ python3/Python/pylifecycle.c	2015-07-26 20:01:23.563082638 +0200
+@@ -1065,15 +1065,30 @@
  static int
  is_valid_fd(int fd)
  {
 -    int dummy_fd;
      if (fd < 0 || !_PyVerify_fd(fd))
          return 0;
+-    _Py_BEGIN_SUPPRESS_IPH
 -    dummy_fd = dup(fd);
--    if (dummy_fd < 0)
--        return 0;
--    close(dummy_fd);
+-    if (dummy_fd >= 0)
+-        close(dummy_fd);
+-    _Py_END_SUPPRESS_IPH
+-    return dummy_fd >= 0;
 +
-+#if defined(MS_WINDOWS) && defined(HAVE_FSTAT)
++#if defined(MS_WINDOWS) && defined(HAVE_FSTAT) && defined(_MSC_VER) && (_MSC_VER >= 1700 && _MSC_VER < 1900)
 +    /* dup (DuplicateHandle) doesn't say fd is a valid *file* handle.
 +     * It could be a current thread pseudo-handle.
 +     */
@@ -29,17 +31,19 @@ index 91d56b7..d28ffc7 100644
 +        struct stat buf;
 +        if (fstat(fd, &buf) < 0 && (errno == EBADF || errno == ENOENT))
 +            return 0;
++        else
++	    return 1;
 +    }
 +#else
 +    {
-+        int dummy_fd;
-+        dummy_fd = dup(fd);
-+        if (dummy_fd < 0)
-+            return 0;
-+        close(dummy_fd);
++        int dummy_fd = dup(fd);
++        _Py_BEGIN_SUPPRESS_IPH
++        if (dummy_fd >= 0)
++            close(dummy_fd);
++        _Py_END_SUPPRESS_IPH
++        return dummy_fd >= 0;
 +    }
 +#endif
-+
-     return 1;
  }
  
+ /* Initialize sys.stdin, stdout, stderr and builtins.open */
diff --git a/external/python3/python-3.5.0-tcltk.disable.patch b/external/python3/python-3.5.0-tcltk.disable.patch
new file mode 100755
index 0000000..3aeebec
--- /dev/null
+++ b/external/python3/python-3.5.0-tcltk.disable.patch
@@ -0,0 +1,16 @@
+diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln
+--- foo/python3.orig/PCbuild/pcbuild.sln	2015-08-22 19:12:48.508338400 +0200
++++ foo/python3/PCbuild/pcbuild.sln	2015-08-22 19:15:50.130169800 +0200
+@@ -58,12 +58,6 @@
+ EndProject
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testmultiphase", "_testmultiphase.vcxproj", "{16BFE6F0-22EF-40B5-B831-7E937119EF10}"
+ EndProject
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcl", "tcl.vcxproj", "{B5FD6F1D-129E-4BFF-9340-03606FAC7283}"
+-EndProject
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tix", "tix.vcxproj", "{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}"
+-EndProject
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tk", "tk.vcxproj", "{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}"
+-EndProject
+ Global
+ 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ 		Debug|Win32 = Debug|Win32
diff --git a/external/python3/python-3.5.tweak.strip.soabi.patch b/external/python3/python-3.5.tweak.strip.soabi.patch
new file mode 100644
index 0000000..48ac7f8
--- /dev/null
+++ b/external/python3/python-3.5.tweak.strip.soabi.patch
@@ -0,0 +1,12 @@
+diff -ru python3.orig/configure python3/configure
+--- misc/python3.orig/configure	2015-07-26 21:14:31.127377193 +0200
++++ misc/python3/configure	2015-07-26 21:21:34.975405648 +0200
+@@ -14388,7 +14388,7 @@
+ $as_echo "$ABIFLAGS" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5
+ $as_echo_n "checking SOABI... " >&6; }
+-SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
++SOABI='cpython-'`echo $VERSION$ABIFLAGS`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5
+ $as_echo "$SOABI" >&6; }
+ 
diff --git a/external/python3/ubsan.patch.0 b/external/python3/ubsan.patch.0
index e379817..700f43b 100644
--- a/external/python3/ubsan.patch.0
+++ b/external/python3/ubsan.patch.0
@@ -1,6 +1,7 @@
---- Modules/_ctypes/libffi/src/x86/ffi64.c
-+++ Modules/_ctypes/libffi/src/x86/ffi64.c
-@@ -545,11 +545,15 @@
+diff -ru python3.orig/Modules/_ctypes/libffi/src/x86/ffi64.c python3/Modules/_ctypes/libffi/src/x86/ffi64.c
+--- Modules/_ctypes/libffi/src/x86/ffi64.c	2015-07-05 18:50:07.000000000 +0200
++++ Modules/_ctypes/libffi/src/x86/ffi64.c	2015-07-26 20:18:56.457153323 +0200
+@@ -548,11 +548,15 @@
    tramp = (volatile unsigned short *) &closure->tramp[0];
  
    tramp[0] = 0xbb49;		/* mov <code>, %r11	*/
@@ -20,19 +21,9 @@
  
    /* Set the carry bit iff the function uses any sse registers.
       This is clc or stc, together with the first byte of the jmp.  */
---- Objects/bytearrayobject.c
-+++ Objects/bytearrayobject.c
-@@ -294,7 +294,7 @@
-         PyBuffer_Release(&vo);
-         return NULL;
-     }
--    memcpy(self->ob_bytes + mysize, vo.buf, vo.len);
-+    if (vo.len != 0) memcpy(self->ob_bytes + mysize, vo.buf, vo.len);
-     PyBuffer_Release(&vo);
-     Py_INCREF(self);
-     return (PyObject *)self;
---- Objects/listobject.c
-+++ Objects/listobject.c
+diff -ru python3.orig/Objects/listobject.c python3/Objects/listobject.c
+--- Objects/listobject.c	2015-07-05 18:50:08.000000000 +0200
++++ Objects/listobject.c	2015-07-26 20:22:30.539167695 +0200
 @@ -641,7 +641,7 @@
              goto Error;
          }
@@ -41,32 +32,12 @@
 +    if (s != 0) memcpy(recycle, &item[ilow], s);
  
      if (d < 0) { /* Delete -d items */
-         memmove(&item[ihigh+d], &item[ihigh],
-@@ -2036,7 +2036,7 @@
-     if (keys != NULL) {
-         for (i = 0; i < saved_ob_size; i++)
-             Py_DECREF(keys[i]);
--        if (keys != &ms.temparray[saved_ob_size+1])
-+        if (keys != ((char *) ms.temparray) + (saved_ob_size+1) * sizeof (PyObject *))
-             PyMem_FREE(keys);
-     }
- 
---- Objects/longobject.c
-+++ Objects/longobject.c
-@@ -36,7 +36,7 @@
- static PyObject *
- get_small_int(sdigit ival)
- {
--    PyObject *v = (PyObject*)(small_ints + ival + NSMALLNEGINTS);
-+    PyObject *v = (PyObject*)(small_ints + (ival + NSMALLNEGINTS));
-     Py_INCREF(v);
- #ifdef COUNT_ALLOCS
-     if (ival >= 0)
+         Py_ssize_t tail;
 --- Modules/_ctypes/_ctypes.c
 +++ Modules/_ctypes/_ctypes.c
-@@ -1328,8 +1328,10 @@
-     if (stgdict->shape == NULL)
+@@ -1358,8 +1358,10 @@
          goto error;
+     }
      stgdict->shape[0] = length;
 -    memmove(&stgdict->shape[1], itemdict->shape,
 -        sizeof(Py_ssize_t) * (stgdict->ndim - 1));
diff --git a/external/python33/ExternalPackage_python3.mk b/external/python33/ExternalPackage_python3.mk
new file mode 100644
index 0000000..a2f51c1
--- /dev/null
+++ b/external/python33/ExternalPackage_python3.mk
@@ -0,0 +1,829 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalPackage_ExternalPackage,python3,python3))
+
+$(eval $(call gb_ExternalPackage_use_external_project,python3,python3))
+
+ifeq ($(OS)-$(COM),WNT-MSC)
+ifeq ($(CPUNAME),X86_64)
+python_arch_subdir=amd64/
+endif
+$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/bin/python.exe,PCbuild/$(python_arch_subdir)python$(if $(MSVC_USE_DEBUG_RUNTIME),_d).exe))
+$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)$(if $(MSVC_USE_DEBUG_RUNTIME),_d).dll,PCbuild/$(python_arch_subdir)python$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)$(if $(MSVC_USE_DEBUG_RUNTIME),_d).dll))
+ifeq ($(MSVC_USE_DEBUG_RUNTIME),)
+$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python$(PYTHON_VERSION_MAJOR).dll,PCbuild/$(python_arch_subdir)python$(PYTHON_VERSION_MAJOR).dll))
+endif
+$(eval $(call gb_ExternalPackage_add_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib,\
+	PCbuild/$(python_arch_subdir)_ctypes$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)_ctypes_test$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)_decimal$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)_elementtree$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)_msi$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)_multiprocessing$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)_socket$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)_ssl$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)_testbuffer$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)_testcapi$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)pyexpat$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)select$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)unicodedata$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+	PCbuild/$(python_arch_subdir)winsound$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
+))
+else ifeq ($(OS),WNT) # MinGW
+# TODO how are C modules called on this platform?
+$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/bin/python.exe,python.exe))
+$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python$(PYTHON_VERSION_MAJOR).dll,python$(PYTHON_VERSION_MAJOR).dll))
+else
+$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python.bin,python))
+$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/libpython$(PYTHON_VERSION_MAJOR).so,libpython$(PYTHON_VERSION_MAJOR).so))
+$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so,libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so))
+$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so-gdb.py,Tools/gdb/libpython.py))
+# versioned lib/libpython3.3m.so.1.0 appears to be unnecessary?
+
+# Unfortunately the python build system does not allow to explicitly enable or
+# disable these, it just tries to build them and then prints which did not
+# build successfully without stopping; so the build will break on delivering if
+# one of these failed to build.
+# Obviously this list should not contain stuff with external dependencies
+# that may not be available on baseline systems.
+ifneq ($(OS),AIX)
+$(eval $(call gb_ExternalPackage_add_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/lib-dynload,\
+	LO_lib/array.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/atexit.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/audioop.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/binascii.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_bisect.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/cmath.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_cn.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_hk.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_iso2022.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_jp.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_kr.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_codecs_tw.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_crypt.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_csv.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_ctypes.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_ctypes_test.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_datetime.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_decimal.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_elementtree.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/fcntl.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/grp.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	$(if $(DISABLE_OPENSSL),, \
+		LO_lib/_hashlib.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	) \
+	LO_lib/_heapq.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_json.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_lsprof.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/math.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/mmap.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_multibytecodec.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_multiprocessing.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/nis.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/ossaudiodev.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/parser.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_pickle.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_posixsubprocess.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/pyexpat.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_random.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/resource.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/select.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_socket.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/spwd.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	$(if $(DISABLE_OPENSSL),, \
+		LO_lib/_ssl.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	) \
+	LO_lib/_struct.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/syslog.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/termios.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_testbuffer.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/_testcapi.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/time.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+	LO_lib/zlib.cpython-$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)m.so \
+))
+endif
+endif
+
+# headers are not delivered, but used from unpacked dir Include/
+# (+ toplevel for pyconfig.h)
+
+# that one is generated...
+ifneq ($(OS)-$(COM),WNT-MSC)
+$(eval $(call gb_ExternalPackage_add_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib,\
+	LO_lib/_sysconfigdata.py \
+))
+endif
+
+# packages not shipped:
+# dbm, sqlite3 - need some database stuff
+# curses - need curses to build the C module
+# idlelib, tkinter, turtledemo - need Tk to build the C module
+# test - probably unnecessary? was explicitly removed #i116738#
+# venv - why would we need virtual environments
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/plat-linux,\
+	Lib/plat-linux/regen \
+	Lib/plat-linux/CDROM.py \
+	Lib/plat-linux/DLFCN.py \
+	Lib/plat-linux/IN.py \
+	Lib/plat-linux/TYPES.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/plat-darwin,\
+	Lib/plat-darwin/IN.py \
+	Lib/plat-darwin/regen \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/plat-sunos5,\
+	Lib/plat-sunos5/regen \
+	Lib/plat-sunos5/CDIO.py \
+	Lib/plat-sunos5/DLFCN.py \
+	Lib/plat-sunos5/IN.py \
+	Lib/plat-sunos5/STROPTS.py \
+	Lib/plat-sunos5/TYPES.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/plat-aix4,\
+	Lib/plat-aix4/regen \
+	Lib/plat-aix4/IN.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib,\
+	LICENSE \
+	Lib/__future__.py \
+	Lib/__phello__.foo.py \
+	Lib/_compat_pickle.py \
+	Lib/_dummy_thread.py \
+	Lib/_markupbase.py \
+	Lib/_osx_support.py \
+	Lib/_pyio.py \
+	Lib/_strptime.py \
+	Lib/_threading_local.py \
+	Lib/_weakrefset.py \
+	Lib/abc.py \
+	Lib/aifc.py \
+	Lib/antigravity.py \
+	Lib/argparse.py \
+	Lib/ast.py \
+	Lib/asynchat.py \
+	Lib/asyncore.py \
+	Lib/base64.py \
+	Lib/bdb.py \
+	Lib/binhex.py \
+	Lib/bisect.py \
+	Lib/bz2.py \
+	Lib/cProfile.py \
+	Lib/calendar.py \
+	Lib/cgi.py \
+	Lib/cgitb.py \
+	Lib/chunk.py \
+	Lib/cmd.py \
+	Lib/code.py \
+	Lib/codecs.py \
+	Lib/codeop.py \
+	Lib/colorsys.py \
+	Lib/compileall.py \
+	Lib/configparser.py \
+	Lib/contextlib.py \
+	Lib/copy.py \
+	Lib/copyreg.py \
+	Lib/crypt.py \
+	Lib/csv.py \
+	Lib/datetime.py \
+	Lib/decimal.py \
+	Lib/difflib.py \
+	Lib/dis.py \
+	Lib/doctest.py \
+	Lib/dummy_threading.py \
+	Lib/filecmp.py \
+	Lib/fileinput.py \
+	Lib/fnmatch.py \
+	Lib/formatter.py \
+	Lib/fractions.py \
+	Lib/ftplib.py \
+	Lib/functools.py \
+	Lib/genericpath.py \
+	Lib/getopt.py \
+	Lib/getpass.py \
+	Lib/gettext.py \
+	Lib/glob.py \
+	Lib/gzip.py \
+	Lib/hashlib.py \
+	Lib/heapq.py \
+	Lib/hmac.py \
+	Lib/imaplib.py \
+	Lib/imghdr.py \
+	Lib/imp.py \
+	Lib/inspect.py \
+	Lib/io.py \
+	Lib/ipaddress.py \
+	Lib/keyword.py \
+	Lib/linecache.py \
+	Lib/locale.py \
+	Lib/lzma.py \
+	Lib/macpath.py \
+	Lib/macurl2path.py \
+	Lib/mailbox.py \
+	Lib/mailcap.py \
+	Lib/mimetypes.py \
+	Lib/modulefinder.py \
+	Lib/netrc.py \
+	Lib/nntplib.py \
+	Lib/ntpath.py \
+	Lib/nturl2path.py \
+	Lib/numbers.py \
+	Lib/opcode.py \
+	Lib/optparse.py \
+	Lib/os.py \
+	Lib/os2emxpath.py \
+	Lib/pdb.py \
+	Lib/pickle.py \
+	Lib/pickletools.py \
+	Lib/pipes.py \
+	Lib/pkgutil.py \
+	Lib/platform.py \
+	Lib/plistlib.py \
+	Lib/poplib.py \
+	Lib/posixpath.py \
+	Lib/pprint.py \
+	Lib/profile.py \
+	Lib/pstats.py \
+	Lib/pty.py \
+	Lib/py_compile.py \
+	Lib/pyclbr.py \
+	Lib/pydoc.py \
+	Lib/queue.py \
+	Lib/quopri.py \
+	Lib/random.py \
+	Lib/re.py \
+	Lib/reprlib.py \
+	Lib/rlcompleter.py \
+	Lib/runpy.py \
+	Lib/sched.py \
+	Lib/shelve.py \
+	Lib/shlex.py \
+	Lib/shutil.py \
+	Lib/site.py \
+	Lib/smtpd.py \
+	Lib/smtplib.py \
+	Lib/sndhdr.py \
+	Lib/socket.py \
+	Lib/socketserver.py \
+	Lib/sre_compile.py \
+	Lib/sre_constants.py \
+	Lib/sre_parse.py \
+	Lib/ssl.py \
+	Lib/stat.py \
+	Lib/string.py \
+	Lib/stringprep.py \
+	Lib/struct.py \
+	Lib/subprocess.py \
+	Lib/sunau.py \
+	Lib/symbol.py \
+	Lib/symtable.py \
+	Lib/sysconfig.py \
+	Lib/tabnanny.py \
+	Lib/tarfile.py \
+	Lib/telnetlib.py \
+	Lib/tempfile.py \
+	Lib/textwrap.py \
+	Lib/this.py \
+	Lib/threading.py \
+	Lib/timeit.py \
+	Lib/token.py \
+	Lib/tokenize.py \
+	Lib/trace.py \
+	Lib/traceback.py \
+	Lib/tty.py \
+	Lib/turtle.py \
+	Lib/types.py \
+	Lib/uu.py \
+	Lib/uuid.py \
+	Lib/warnings.py \
+	Lib/wave.py \
+	Lib/weakref.py \
+	Lib/webbrowser.py \
+	Lib/xdrlib.py \
+	Lib/zipfile.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/collections,\
+	Lib/collections/__init__.py \
+	Lib/collections/__main__.py \
+	Lib/collections/abc.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/concurrent,\
+	Lib/concurrent/__init__.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/concurrent/futures,\
+	Lib/concurrent/futures/__init__.py \
+	Lib/concurrent/futures/_base.py \
+	Lib/concurrent/futures/process.py \
+	Lib/concurrent/futures/thread.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/ctypes,\
+	Lib/ctypes/__init__.py \
+	Lib/ctypes/_endian.py \
+	Lib/ctypes/util.py \
+	Lib/ctypes/wintypes.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/ctypes/macholib,\
+	Lib/ctypes/macholib/README.ctypes \
+	Lib/ctypes/macholib/fetch_macholib \
+	Lib/ctypes/macholib/fetch_macholib.bat \
+	Lib/ctypes/macholib/__init__.py \
+	Lib/ctypes/macholib/dyld.py \
+	Lib/ctypes/macholib/dylib.py \
+	Lib/ctypes/macholib/framework.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/distutils,\
+	Lib/distutils/README \
+	Lib/distutils/__init__.py \
+	Lib/distutils/archive_util.py \
+	Lib/distutils/bcppcompiler.py \
+	Lib/distutils/ccompiler.py \
+	Lib/distutils/cmd.py \
+	Lib/distutils/config.py \
+	Lib/distutils/core.py \
+	Lib/distutils/cygwinccompiler.py \
+	Lib/distutils/debug.py \
+	Lib/distutils/dep_util.py \
+	Lib/distutils/dir_util.py \
+	Lib/distutils/dist.py \
+	Lib/distutils/emxccompiler.py \
+	Lib/distutils/errors.py \
+	Lib/distutils/extension.py \
+	Lib/distutils/fancy_getopt.py \
+	Lib/distutils/filelist.py \
+	Lib/distutils/file_util.py \
+	Lib/distutils/log.py \
+	Lib/distutils/msvc9compiler.py \
+	Lib/distutils/msvccompiler.py \
+	Lib/distutils/spawn.py \
+	Lib/distutils/sysconfig.py \
+	Lib/distutils/text_file.py \
+	Lib/distutils/unixccompiler.py \
+	Lib/distutils/util.py \
+	Lib/distutils/versionpredicate.py \
+	Lib/distutils/version.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/distutils/command,\
+	Lib/distutils/command/__init__.py \
+	Lib/distutils/command/bdist_dumb.py \
+	Lib/distutils/command/bdist_msi.py \
+	Lib/distutils/command/bdist.py \
+	Lib/distutils/command/bdist_rpm.py \
+	Lib/distutils/command/bdist_wininst.py \
+	Lib/distutils/command/build_clib.py \
+	Lib/distutils/command/build_ext.py \
+	Lib/distutils/command/build.py \
+	Lib/distutils/command/build_py.py \
+	Lib/distutils/command/build_scripts.py \
+	Lib/distutils/command/check.py \
+	Lib/distutils/command/clean.py \
+	Lib/distutils/command/config.py \
+	Lib/distutils/command/install_data.py \
+	Lib/distutils/command/install_egg_info.py \
+	Lib/distutils/command/install_headers.py \
+	Lib/distutils/command/install_lib.py \
+	Lib/distutils/command/install.py \
+	Lib/distutils/command/install_scripts.py \
+	Lib/distutils/command/register.py \
+	Lib/distutils/command/sdist.py \
+	Lib/distutils/command/upload.py \
+	Lib/distutils/command/wininst-10.0-amd64.exe \
+	Lib/distutils/command/wininst-10.0.exe \
+	Lib/distutils/command/wininst-6.0.exe \
+	Lib/distutils/command/wininst-7.1.exe \
+	Lib/distutils/command/wininst-8.0.exe \
+	Lib/distutils/command/wininst-9.0-amd64.exe \
+	Lib/distutils/command/wininst-9.0.exe \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/email,\
+	Lib/email/__init__.py \
+	Lib/email/_encoded_words.py \
+	Lib/email/_header_value_parser.py \
+	Lib/email/_parseaddr.py \
+	Lib/email/_policybase.py \
+	Lib/email/architecture.rst \
+	Lib/email/base64mime.py \
+	Lib/email/charset.py \
+	Lib/email/encoders.py \
+	Lib/email/errors.py \
+	Lib/email/feedparser.py \
+	Lib/email/generator.py \
+	Lib/email/header.py \
+	Lib/email/headerregistry.py \
+	Lib/email/iterators.py \
+	Lib/email/message.py \
+	Lib/email/parser.py \
+	Lib/email/policy.py \
+	Lib/email/quoprimime.py \
+	Lib/email/utils.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/email/mime,\
+	Lib/email/mime/__init__.py \
+	Lib/email/mime/application.py \
+	Lib/email/mime/audio.py \
+	Lib/email/mime/base.py \
+	Lib/email/mime/image.py \
+	Lib/email/mime/message.py \
+	Lib/email/mime/multipart.py \
+	Lib/email/mime/nonmultipart.py \
+	Lib/email/mime/text.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/encodings,\
+	Lib/encodings/__init__.py \
+	Lib/encodings/aliases.py \
+	Lib/encodings/ascii.py \
+	Lib/encodings/base64_codec.py \
+	Lib/encodings/big5hkscs.py \
+	Lib/encodings/big5.py \
+	Lib/encodings/bz2_codec.py \
+	Lib/encodings/charmap.py \
+	Lib/encodings/cp037.py \
+	Lib/encodings/cp1006.py \
+	Lib/encodings/cp1026.py \
+	Lib/encodings/cp1140.py \
+	Lib/encodings/cp1250.py \
+	Lib/encodings/cp1251.py \
+	Lib/encodings/cp1252.py \
+	Lib/encodings/cp1253.py \
+	Lib/encodings/cp1254.py \
+	Lib/encodings/cp1255.py \
+	Lib/encodings/cp1256.py \
+	Lib/encodings/cp1257.py \
+	Lib/encodings/cp1258.py \
+	Lib/encodings/cp424.py \
+	Lib/encodings/cp437.py \
+	Lib/encodings/cp500.py \
+	Lib/encodings/cp65001.py \
+	Lib/encodings/cp720.py \
+	Lib/encodings/cp737.py \
+	Lib/encodings/cp775.py \
+	Lib/encodings/cp850.py \
+	Lib/encodings/cp852.py \
+	Lib/encodings/cp855.py \
+	Lib/encodings/cp856.py \
+	Lib/encodings/cp857.py \
+	Lib/encodings/cp858.py \
+	Lib/encodings/cp860.py \
+	Lib/encodings/cp861.py \
+	Lib/encodings/cp862.py \
+	Lib/encodings/cp863.py \
+	Lib/encodings/cp864.py \
+	Lib/encodings/cp865.py \
+	Lib/encodings/cp866.py \
+	Lib/encodings/cp869.py \
+	Lib/encodings/cp874.py \
+	Lib/encodings/cp875.py \
+	Lib/encodings/cp932.py \
+	Lib/encodings/cp949.py \
+	Lib/encodings/cp950.py \
+	Lib/encodings/euc_jis_2004.py \
+	Lib/encodings/euc_jisx0213.py \
+	Lib/encodings/euc_jp.py \
+	Lib/encodings/euc_kr.py \
+	Lib/encodings/gb18030.py \
+	Lib/encodings/gb2312.py \
+	Lib/encodings/gbk.py \
+	Lib/encodings/hex_codec.py \
+	Lib/encodings/hp_roman8.py \
+	Lib/encodings/hz.py \
+	Lib/encodings/idna.py \
+	Lib/encodings/iso2022_jp_1.py \
+	Lib/encodings/iso2022_jp_2004.py \
+	Lib/encodings/iso2022_jp_2.py \
+	Lib/encodings/iso2022_jp_3.py \
+	Lib/encodings/iso2022_jp_ext.py \
+	Lib/encodings/iso2022_jp.py \
+	Lib/encodings/iso2022_kr.py \
+	Lib/encodings/iso8859_10.py \
+	Lib/encodings/iso8859_11.py \
+	Lib/encodings/iso8859_13.py \
+	Lib/encodings/iso8859_14.py \
+	Lib/encodings/iso8859_15.py \
+	Lib/encodings/iso8859_16.py \
+	Lib/encodings/iso8859_1.py \
+	Lib/encodings/iso8859_2.py \
+	Lib/encodings/iso8859_3.py \
+	Lib/encodings/iso8859_4.py \
+	Lib/encodings/iso8859_5.py \
+	Lib/encodings/iso8859_6.py \
+	Lib/encodings/iso8859_7.py \
+	Lib/encodings/iso8859_8.py \
+	Lib/encodings/iso8859_9.py \
+	Lib/encodings/johab.py \
+	Lib/encodings/koi8_r.py \
+	Lib/encodings/koi8_u.py \
+	Lib/encodings/latin_1.py \
+	Lib/encodings/mac_arabic.py \
+	Lib/encodings/mac_centeuro.py \
+	Lib/encodings/mac_croatian.py \
+	Lib/encodings/mac_cyrillic.py \
+	Lib/encodings/mac_farsi.py \
+	Lib/encodings/mac_greek.py \
+	Lib/encodings/mac_iceland.py \
+	Lib/encodings/mac_latin2.py \
+	Lib/encodings/mac_romanian.py \
+	Lib/encodings/mac_roman.py \
+	Lib/encodings/mac_turkish.py \
+	Lib/encodings/mbcs.py \
+	Lib/encodings/palmos.py \
+	Lib/encodings/ptcp154.py \
+	Lib/encodings/punycode.py \
+	Lib/encodings/quopri_codec.py \
+	Lib/encodings/raw_unicode_escape.py \
+	Lib/encodings/rot_13.py \
+	Lib/encodings/shift_jis_2004.py \
+	Lib/encodings/shift_jis.py \
+	Lib/encodings/shift_jisx0213.py \
+	Lib/encodings/tis_620.py \
+	Lib/encodings/undefined.py \
+	Lib/encodings/unicode_escape.py \
+	Lib/encodings/unicode_internal.py \
+	Lib/encodings/utf_16_be.py \
+	Lib/encodings/utf_16_le.py \
+	Lib/encodings/utf_16.py \
+	Lib/encodings/utf_32_be.py \
+	Lib/encodings/utf_32_le.py \
+	Lib/encodings/utf_32.py \
+	Lib/encodings/utf_7.py \
+	Lib/encodings/utf_8.py \
+	Lib/encodings/utf_8_sig.py \
+	Lib/encodings/uu_codec.py \
+	Lib/encodings/zlib_codec.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/html,\
+	Lib/html/__init__.py \
+	Lib/html/entities.py \
+	Lib/html/parser.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/http,\
+	Lib/http/__init__.py \
+	Lib/http/client.py \
+	Lib/http/cookiejar.py \
+	Lib/http/cookies.py \
+	Lib/http/server.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/importlib,\
+	Lib/importlib/__init__.py \
+	Lib/importlib/_bootstrap.py \
+	Lib/importlib/abc.py \
+	Lib/importlib/machinery.py \
+	Lib/importlib/util.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/json,\
+	Lib/json/__init__.py \
+	Lib/json/decoder.py \
+	Lib/json/encoder.py \
+	Lib/json/scanner.py \
+	Lib/json/tool.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/lib2to3,\
+	Lib/lib2to3/Grammar.txt \
+	Lib/lib2to3/PatternGrammar.txt \
+	Lib/lib2to3/__init__.py \
+	Lib/lib2to3/__main__.py \
+	Lib/lib2to3/btm_matcher.py \
+	Lib/lib2to3/btm_utils.py \
+	Lib/lib2to3/fixer_base.py \
+	Lib/lib2to3/fixer_util.py \
+	Lib/lib2to3/main.py \
+	Lib/lib2to3/patcomp.py \
+	Lib/lib2to3/pygram.py \
+	Lib/lib2to3/pytree.py \
+	Lib/lib2to3/refactor.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/lib2to3/fixes,\
+	Lib/lib2to3/fixes/__init__.py \
+	Lib/lib2to3/fixes/fix_apply.py \
+	Lib/lib2to3/fixes/fix_basestring.py \
+	Lib/lib2to3/fixes/fix_buffer.py \
+	Lib/lib2to3/fixes/fix_callable.py \
+	Lib/lib2to3/fixes/fix_dict.py \
+	Lib/lib2to3/fixes/fix_except.py \
+	Lib/lib2to3/fixes/fix_execfile.py \
+	Lib/lib2to3/fixes/fix_exec.py \
+	Lib/lib2to3/fixes/fix_exitfunc.py \
+	Lib/lib2to3/fixes/fix_filter.py \
+	Lib/lib2to3/fixes/fix_funcattrs.py \
+	Lib/lib2to3/fixes/fix_future.py \
+	Lib/lib2to3/fixes/fix_getcwdu.py \
+	Lib/lib2to3/fixes/fix_has_key.py \
+	Lib/lib2to3/fixes/fix_idioms.py \
+	Lib/lib2to3/fixes/fix_import.py \
+	Lib/lib2to3/fixes/fix_imports2.py \
+	Lib/lib2to3/fixes/fix_imports.py \
+	Lib/lib2to3/fixes/fix_input.py \
+	Lib/lib2to3/fixes/fix_intern.py \
+	Lib/lib2to3/fixes/fix_isinstance.py \
+	Lib/lib2to3/fixes/fix_itertools_imports.py \
+	Lib/lib2to3/fixes/fix_itertools.py \
+	Lib/lib2to3/fixes/fix_long.py \
+	Lib/lib2to3/fixes/fix_map.py \
+	Lib/lib2to3/fixes/fix_metaclass.py \
+	Lib/lib2to3/fixes/fix_methodattrs.py \
+	Lib/lib2to3/fixes/fix_ne.py \
+	Lib/lib2to3/fixes/fix_next.py \
+	Lib/lib2to3/fixes/fix_nonzero.py \
+	Lib/lib2to3/fixes/fix_numliterals.py \
+	Lib/lib2to3/fixes/fix_operator.py \
+	Lib/lib2to3/fixes/fix_paren.py \
+	Lib/lib2to3/fixes/fix_print.py \
+	Lib/lib2to3/fixes/fix_raise.py \
+	Lib/lib2to3/fixes/fix_raw_input.py \
+	Lib/lib2to3/fixes/fix_reduce.py \
+	Lib/lib2to3/fixes/fix_renames.py \
+	Lib/lib2to3/fixes/fix_repr.py \
+	Lib/lib2to3/fixes/fix_set_literal.py \
+	Lib/lib2to3/fixes/fix_standarderror.py \
+	Lib/lib2to3/fixes/fix_sys_exc.py \
+	Lib/lib2to3/fixes/fix_throw.py \
+	Lib/lib2to3/fixes/fix_tuple_params.py \
+	Lib/lib2to3/fixes/fix_types.py \
+	Lib/lib2to3/fixes/fix_unicode.py \
+	Lib/lib2to3/fixes/fix_urllib.py \
+	Lib/lib2to3/fixes/fix_ws_comma.py \
+	Lib/lib2to3/fixes/fix_xrange.py \
+	Lib/lib2to3/fixes/fix_xreadlines.py \
+	Lib/lib2to3/fixes/fix_zip.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pgen2,\
+	Lib/lib2to3/pgen2/__init__.py \
+	Lib/lib2to3/pgen2/conv.py \
+	Lib/lib2to3/pgen2/driver.py \
+	Lib/lib2to3/pgen2/grammar.py \
+	Lib/lib2to3/pgen2/literals.py \
+	Lib/lib2to3/pgen2/parse.py \
+	Lib/lib2to3/pgen2/pgen.py \
+	Lib/lib2to3/pgen2/tokenize.py \
+	Lib/lib2to3/pgen2/token.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/logging,\
+	Lib/logging/__init__.py \
+	Lib/logging/config.py \
+	Lib/logging/handlers.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/multiprocessing,\
+	Lib/multiprocessing/__init__.py \
+	Lib/multiprocessing/connection.py \
+	Lib/multiprocessing/forking.py \
+	Lib/multiprocessing/heap.py \
+	Lib/multiprocessing/managers.py \
+	Lib/multiprocessing/pool.py \
+	Lib/multiprocessing/process.py \
+	Lib/multiprocessing/queues.py \
+	Lib/multiprocessing/reduction.py \
+	Lib/multiprocessing/sharedctypes.py \
+	Lib/multiprocessing/synchronize.py \
+	Lib/multiprocessing/util.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/multiprocessing/dummy,\
+	Lib/multiprocessing/dummy/__init__.py \
+	Lib/multiprocessing/dummy/connection.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pydoc_data,\
+	Lib/pydoc_data/__init__.py \
+	Lib/pydoc_data/_pydoc.css \
+	Lib/pydoc_data/topics.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/unittest,\
+	Lib/unittest/__init__.py \
+	Lib/unittest/__main__.py \
+	Lib/unittest/case.py \
+	Lib/unittest/loader.py \
+	Lib/unittest/main.py \
+	Lib/unittest/mock.py \
+	Lib/unittest/result.py \
+	Lib/unittest/runner.py \
+	Lib/unittest/signals.py \
+	Lib/unittest/suite.py \
+	Lib/unittest/util.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/unittest/test,\
+	Lib/unittest/test/__init__.py \
+	Lib/unittest/test/dummy.py \
+	Lib/unittest/test/support.py \
+	Lib/unittest/test/test_assertions.py \
+	Lib/unittest/test/test_break.py \
+	Lib/unittest/test/test_case.py \
+	Lib/unittest/test/test_discovery.py \
+	Lib/unittest/test/test_functiontestcase.py \
+	Lib/unittest/test/test_loader.py \
+	Lib/unittest/test/test_program.py \
+	Lib/unittest/test/test_result.py \
+	Lib/unittest/test/test_runner.py \
+	Lib/unittest/test/test_setups.py \
+	Lib/unittest/test/test_skipping.py \
+	Lib/unittest/test/test_suite.py \
+	Lib/unittest/test/_test_warnings.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/unittest/test/testmock,\
+	Lib/unittest/test/testmock/__init__.py \
+	Lib/unittest/test/testmock/support.py \
+	Lib/unittest/test/testmock/testcallable.py \
+	Lib/unittest/test/testmock/testhelpers.py \
+	Lib/unittest/test/testmock/testmagicmethods.py \
+	Lib/unittest/test/testmock/testmock.py \
+	Lib/unittest/test/testmock/testpatch.py \
+	Lib/unittest/test/testmock/testsentinel.py \
+	Lib/unittest/test/testmock/testwith.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/urllib,\
+	Lib/urllib/__init__.py \
+	Lib/urllib/error.py \
+	Lib/urllib/parse.py \
+	Lib/urllib/request.py \
+	Lib/urllib/response.py \
+	Lib/urllib/robotparser.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/wsgiref,\
+	Lib/wsgiref/__init__.py \
+	Lib/wsgiref/handlers.py \
+	Lib/wsgiref/headers.py \
+	Lib/wsgiref/simple_server.py \
+	Lib/wsgiref/util.py \
+	Lib/wsgiref/validate.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/xml,\
+	Lib/xml/__init__.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/xml/dom,\
+	Lib/xml/dom/__init__.py \
+	Lib/xml/dom/NodeFilter.py \
+	Lib/xml/dom/domreg.py \
+	Lib/xml/dom/expatbuilder.py \
+	Lib/xml/dom/minicompat.py \
+	Lib/xml/dom/minidom.py \
+	Lib/xml/dom/pulldom.py \
+	Lib/xml/dom/xmlbuilder.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/xml/etree,\
+	Lib/xml/etree/__init__.py \
+	Lib/xml/etree/ElementInclude.py \
+	Lib/xml/etree/ElementPath.py \
+	Lib/xml/etree/ElementTree.py \
+	Lib/xml/etree/cElementTree.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/xml/parsers,\
+	Lib/xml/parsers/__init__.py \
+	Lib/xml/parsers/expat.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/xml/sax,\
+	Lib/xml/sax/__init__.py \
+	Lib/xml/sax/_exceptions.py \
+	Lib/xml/sax/expatreader.py \
+	Lib/xml/sax/handler.py \
+	Lib/xml/sax/saxutils.py \
+	Lib/xml/sax/xmlreader.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/xmlrpc,\
+	Lib/xmlrpc/__init__.py \
+	Lib/xmlrpc/client.py \
+	Lib/xmlrpc/server.py \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/site-packages,\
+	Lib/site-packages/README \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/python33/ExternalProject_python3.mk b/external/python33/ExternalProject_python3.mk
new file mode 100644
index 0000000..098b1ea
--- /dev/null
+++ b/external/python33/ExternalProject_python3.mk
@@ -0,0 +1,148 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalProject_ExternalProject,python3))
+
+$(eval $(call gb_ExternalProject_use_externals,python3,\
+	expat \
+	openssl \
+	zlib \
+))
+
+$(eval $(call gb_ExternalProject_register_targets,python3,\
+	build \
+	$(if $(filter MACOSX,$(OS)),\
+		fixscripts \
+		fixinstallnames \
+		executables \
+	) \
+))
+
+ifeq ($(OS)$(COM),WNTMSC)
+
+# TODO: using Debug configuration and related mangling of pyconfig.h
+
+# at least for MSVC 2008 it is necessary to clear MAKEFLAGS because
+# nmake is invoked
+$(call gb_ExternalProject_get_state_target,python3,build) :
+	$(call gb_ExternalProject_run,build,\
+		MAKEFLAGS= MSBuild.exe pcbuild.sln /t:Build \
+			/p:Configuration=$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
+			/p:Platform=$(if $(filter INTEL,$(CPUNAME)),Win32,x64) \
+			$(if $(filter 120,$(VCVER)),/p:PlatformToolset=v120 \
+				/p:VisualStudioVersion=12.0 /ToolsVersion:12.0) \
+	,PCBuild)
+
+else
+
+# this was added in 2004, hopefully is obsolete now (and why only intel anyway)? $(if $(filter SOLARIS-INTEL,$(OS)$(CPUNAME)),--disable-ipv6)
+
+# --with-system-expat: this should find the one in the solver (or system)
+
+# create a symlink "LO_lib" because the .so are in a directory with platform
+# specific name like build/lib.linux-x86_64-3.3
+
+python3_cflags = $(ZLIB_CFLAGS)
+ifneq (,$(ENABLE_VALGRIND))
+    python3_cflags += $(VALGRIND_CFLAGS)
+endif
+
+$(call gb_ExternalProject_get_state_target,python3,build) :
+	$(call gb_ExternalProject_run,build,\
+		./configure \
+		$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
+		$(if $(ENABLE_VALGRIND),--with-valgrind) \
+		--prefix=/python-inst \
+		$(if $(filter MACOSX,$(OS)),,--with-system-expat) \
+		$(if $(filter AIX,$(OS)), \
+			--disable-ipv6 --with-threads OPT="-g0 -fwrapv -O3 -Wall", \
+			$(if $(gb_Module_CURRENTMODULE_DEBUG_ENABLED), \
+				OPT="$(gb_COMPILERNOOPTFLAGS) $(gb_DEBUG_CFLAGS)")) \
+		$(if $(filter WNT-GCC,$(OS)-$(COM)),--with-threads ac_cv_printf_zd_format=no) \
+		$(if $(filter MACOSX,$(OS)), \
+			$(if $(filter INTEL,$(CPUNAME)),--enable-universalsdk=$(MACOSX_SDK_PATH) \
+                                --with-universal-archs=intel \
+            ) \
+			--enable-framework=/@__________________________________________________OOO --with-framework-name=LibreOfficePython, \
+			--enable-shared \
+		) \
+		CC="$(strip $(CC) \
+			$(if $(SYSTEM_OPENSSL),,-I$(call gb_UnpackedTarball_get_dir,openssl)/include \
+				$(if $(DISABLE_OPENSSL),,-I$(call gb_UnpackedTarball_get_dir,openssl)/include)) \
+			$(if $(SYSTEM_EXPAT),,-I$(call gb_UnpackedTarball_get_dir,expat)/lib) \
+			$(if $(SYSBASE), -I$(SYSBASE)/usr/include) \
+			)" \
+		$(if $(python3_cflags),CFLAGS='$(python3_cflags)') \
+		$(if $(filter -fsanitize=%,$(CC)),LINKCC="$(CXX)") \
+		LDFLAGS="$(strip $(LDFLAGS) \
+			$(if $(SYSTEM_OPENSSL),,-L$(call gb_UnpackedTarball_get_dir,openssl)) \
+			$(if $(SYSTEM_EXPAT),,-L$(gb_StaticLibrary_WORKDIR)) \
+			$(if $(SYSBASE), -L$(SYSBASE)/usr/lib) \
+			$(if $(filter WNT-GCC,$(OS)-$(COM)), -shared-libgcc \
+				$(if $(MINGW_SHARED_GCCLIB),-Wl$(COMMA)--enable-runtime-pseudo-reloc-v2 -Wl$(COMMA)--export-all-symbols)) \
+			$(gb_LTOFLAGS) \
+			)" \
+		&& MAKEFLAGS= $(MAKE) \
+			$(if $(filter MACOSX,$(OS)),DESTDIR=$(EXTERNAL_WORKDIR)/python-inst install) \
+		&& ln -s build/lib.* LO_lib \
+	)
+
+endif
+
+ifeq ($(OS),MACOSX)
+
+python3_fw_prefix=$(call gb_UnpackedTarball_get_dir,python3)/python-inst/@__________________________________________________OOO/LibreOfficePython.framework
+
+# rule to allow relocating the whole framework, removing reference to buildinstallation directory
+$(call gb_ExternalProject_get_state_target,python3,fixscripts) : $(call gb_ExternalProject_get_state_target,python3,build)
+	$(call gb_Output_announce,python3 - remove reference to installroot from scripts,build,CUS,5)
+	$(COMMAND_ECHO)for file in \
+			$(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin/2to3 \
+			$(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin/2to3-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) \
+			$(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin/idle$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) \
+			$(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin/pydoc$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) \
+			$(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)-config \
+			$(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m-config \
+			$(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/bin/pyvenv-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR) ; do \
+	{ rm "$$file" && $(gb_AWK) '\
+		BEGIN {print "#!/bin/bash\n\
+origpath=$$(pwd)\n\
+bindir=$$(cd $$(dirname \"$$0\") ; pwd)\n\
+cd \"$$origpath\"\n\
+\"$$bindir/../Resources/Python.app/Contents/MacOS/LibreOfficePython\" - $$@ <<EOF"} \
+		FNR==1{next} \
+		      {print} \
+		END   {print "EOF"}' > "$$file" ; } < "$$file" ; chmod +x "$$file" ; done
+	touch $@
+
+$(call gb_ExternalProject_get_state_target,python3,fixinstallnames) : $(call gb_ExternalProject_get_state_target,python3,build)
+	$(INSTALL_NAME_TOOL) -change \
+		$(python3_fw_prefix)/Versions/$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/LibreOfficePython \

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list