From 78767e71996ddde2de5fdb84fc1e0291cc5fe4e3 Mon Sep 17 00:00:00 2001
From: Ed Morley <edmorley@users.noreply.github.com>
Date: Mon, 17 Jul 2017 18:00:47 +0100
Subject: [PATCH] Exclude Python's test suite from generated Python archives
 (#425)

This copies the official Docker Python images approach of stripping
the Python test suite after building from source.

For Python 3.6.2 this reduces the output from 184MB to 121MB and
removes the following directories:
```
.heroku/python/lib/python3.6/tkinter/test
.heroku/python/lib/python3.6/ctypes/test
.heroku/python/lib/python3.6/unittest/test
.heroku/python/lib/python3.6/distutils/tests
.heroku/python/lib/python3.6/sqlite3/test
.heroku/python/lib/python3.6/lib2to3/tests
.heroku/python/lib/python3.6/test
```

For Python 2.7.13 this reduces the output from 127MB to 91MB and
removes the following directories:
```
.heroku/python/lib/python2.7/ctypes/test
.heroku/python/lib/python2.7/unittest/test
.heroku/python/lib/python2.7/distutils/tests
.heroku/python/lib/python2.7/bsddb/test
.heroku/python/lib/python2.7/lib-tk/test
.heroku/python/lib/python2.7/sqlite3/test
.heroku/python/lib/python2.7/lib2to3/tests
.heroku/python/lib/python2.7/json/tests
.heroku/python/lib/python2.7/email/test
.heroku/python/lib/python2.7/test
```

Fixes #424.
---
 builds/runtimes/python-2.7.13 | 4 ++++
 builds/runtimes/python-3.6.2  | 5 ++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/builds/runtimes/python-2.7.13 b/builds/runtimes/python-2.7.13
index 85af1a9e..3f34aad6 100755
--- a/builds/runtimes/python-2.7.13
+++ b/builds/runtimes/python-2.7.13
@@ -13,3 +13,7 @@ cd src
 ./configure --prefix=$OUT_PREFIX  --enable-unicode=ucs4 --with-ensurepip=no
 make
 make install
+
+# Remove unneeded test directories, similar to the official Docker Python images:
+# https://github.com/docker-library/python
+find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
diff --git a/builds/runtimes/python-3.6.2 b/builds/runtimes/python-3.6.2
index c4dd8dbb..d23d4913 100755
--- a/builds/runtimes/python-3.6.2
+++ b/builds/runtimes/python-3.6.2
@@ -14,5 +14,8 @@ cd src
 make
 make install
 
-ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
+# Remove unneeded test directories, similar to the official Docker Python images:
+# https://github.com/docker-library/python
+find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
 
+ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-- 
GitLab