mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
Compare commits
247 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9179b3cac0 | |||
| 5be33758ed | |||
| 41a44272d2 | |||
| 6b3f63252f | |||
| c9acc4154b | |||
| d5fed79e86 | |||
| 05edd6b065 | |||
| d96914ab2e | |||
| 4c4e192317 | |||
| 2963d2520b | |||
| 85686805a7 | |||
| eef41088b1 | |||
| f7387427c8 | |||
| 23e1164c93 | |||
| fd4ab23f50 | |||
| c78bf77055 | |||
| 5e212e4db8 | |||
| 9f666cee79 | |||
| 69e9368c2d | |||
| 4513dd7522 | |||
| 8b3e99adb3 | |||
| c5972cdb74 | |||
| 7b9bc848ee | |||
| 921a4c31a8 | |||
| 67063fc34f | |||
| 21dd1782fa | |||
| beb8c70585 | |||
| b46cc0c6da | |||
| 74af94132a | |||
| 24cc273800 | |||
| c0fbb0723a | |||
| 6ab397db10 | |||
| d8623ae454 | |||
| e6d395fa27 | |||
| e77090b6b8 | |||
| c61f907079 | |||
| bd90eecd8c | |||
| 44b2ef0c4e | |||
| 38d73effc1 | |||
| 6f6b75bb1f | |||
| cd90c7d1d8 | |||
| ce3c68538d | |||
| b6adf5223b | |||
| 0818d5428f | |||
| 1d8afb452e | |||
| 1c82d820c9 | |||
| 7cf8712d3c | |||
| 2b62692ab2 | |||
| 9188d94723 | |||
| 2ba3e06f4e | |||
| 6d78f7e3ed | |||
| 1e5ff1f8c9 | |||
| 83538ca6ec | |||
| 619bd638b0 | |||
| 5c359ba0fa | |||
| 27f019105e | |||
| eb572b5ab4 | |||
| 67c3d38a03 | |||
| 8f4ca7f624 | |||
| ce3bdb37ba | |||
| a91e9c2fc1 | |||
| da96cdf21e | |||
| 0b2e4e9b22 | |||
| 129ce5f0df | |||
| 25f7421573 | |||
| 8c654b658c | |||
| ed3691a0aa | |||
| ded2c5156a | |||
| 7c3a6303d1 | |||
| 591ed6b150 | |||
| c1c4f50ef6 | |||
| 2b29e7efeb | |||
| 9f089b18e6 | |||
| 9a1e43b8f2 | |||
| ac1ba4271c | |||
| af77d9baf8 | |||
| 706e6bab4f | |||
| b6fff224dd | |||
| 61d3d9580d | |||
| 69b88cb075 | |||
| a00133892d | |||
| 5eb337b80d | |||
| d6212b46ce | |||
| 3558766ae8 | |||
| 34f4dc43d6 | |||
| 0024336558 | |||
| c60c5321df | |||
| 0ba69875f5 | |||
| c8812c7e15 | |||
| 7d4093795b | |||
| 628ad0cb8b | |||
| 77ddd7c8a6 | |||
| c53d54f203 | |||
| ed6fe287c4 | |||
| 4f5a88a05a | |||
| 347c0eba81 | |||
| 14b482603e | |||
| 58ce002d35 | |||
| 7fd3a047fd | |||
| 26b4bfbab6 | |||
| 9e00de4e56 | |||
| afa8a0f75f | |||
| 52b8ae82b8 | |||
| e6c339ebae | |||
| 3ea0735768 | |||
| 54b930bba3 | |||
| bf202224b7 | |||
| cead16eb57 | |||
| 5c91c81968 | |||
| 42594a47c1 | |||
| 9d20adca1a | |||
| 181c09cfb7 | |||
| 770947d6e6 | |||
| 0a78bd001e | |||
| 5a1ece3955 | |||
| 8266b99d1e | |||
| e27470778c | |||
| 8ef4a006e0 | |||
| 4fdaf14ded | |||
| f1da8d4b5c | |||
| eb9689c0a2 | |||
| 6fe7c6bde0 | |||
| a1b372ac66 | |||
| ddead6457a | |||
| 92b4385890 | |||
| 7074d5cb50 | |||
| 2b1f1182c3 | |||
| 38fc8f4fe7 | |||
| a203495532 | |||
| 33a69d7f52 | |||
| fe3f12c430 | |||
| aeb1a297d3 | |||
| 4c1972c0b9 | |||
| 74f0f319dc | |||
| 683bba59d7 | |||
| f890cdb889 | |||
| b3a98641f5 | |||
| ecbcfff5cb | |||
| 085d295342 | |||
| e842703721 | |||
| c229070c21 | |||
| 67867f1083 | |||
| 91b76c4ca9 | |||
| d2b82441fe | |||
| 532b36f5f7 | |||
| abe34011e5 | |||
| 4b57be0ae1 | |||
| d8a75c56d0 | |||
| 27ce818f3d | |||
| f582b2f4fa | |||
| c46a779ea1 | |||
| 06a7d9e187 | |||
| ca773cf957 | |||
| 26b54b690c | |||
| 871d5b5935 | |||
| 0382c31225 | |||
| 4a856ff5b3 | |||
| e247704dfb | |||
| c8b031fafc | |||
| 68b740cce6 | |||
| e856e787aa | |||
| 7e4159e297 | |||
| d9a73b847e | |||
| 3dbeec8db1 | |||
| 8ec0b5f0dd | |||
| 3c2839147f | |||
| a51c162444 | |||
| 14096e0ca5 | |||
| 2631f5204b | |||
| f3b1e54df4 | |||
| 536b10b249 | |||
| b22aa3b3a7 | |||
| eb395a94f9 | |||
| b2597c45d8 | |||
| 1525c1fb3a | |||
| fd17f5a470 | |||
| ac923205d0 | |||
| 6617a3cac5 | |||
| 64a4f51e1b | |||
| 6305ed415a | |||
| 3dff0d48fe | |||
| 6f94b366f8 | |||
| 6bb89e6693 | |||
| 6252e80aa6 | |||
| b22ef82b4f | |||
| 129bced2dd | |||
| c82415733d | |||
| ee93719b79 | |||
| 361eb53257 | |||
| bf9fe3badf | |||
| 9178962b84 | |||
| 2b4a68c8c8 | |||
| f38eec962f | |||
| a313e66d93 | |||
| c755286323 | |||
| 0d219f5d2e | |||
| 28bdeb6f4b | |||
| 496a1ad7d8 | |||
| 57dec77718 | |||
| 4dc60cb4ca | |||
| f5f67653f8 | |||
| b7fd5915a5 | |||
| 72f7c510b9 | |||
| ac62aa01d5 | |||
| a727daa6ff | |||
| 2187855da2 | |||
| fb1ed99470 | |||
| be68853991 | |||
| c9d794dc76 | |||
| c1cc0910c5 | |||
| 61095f726d | |||
| 721d062421 | |||
| f38c90b1d5 | |||
| 8c0284dbe8 | |||
| f8f4facdca | |||
| e97f13395f | |||
| dc87fca814 | |||
| aafd7caf77 | |||
| ef964bfc1a | |||
| e5ae885ae1 | |||
| 2291255133 | |||
| d48294f940 | |||
| ef87cce5a9 | |||
| 63048e641d | |||
| 91aa427137 | |||
| 811c1ceeb6 | |||
| 8c2e95fb46 | |||
| d47fb9f718 | |||
| 4625eca277 | |||
| b2abb41a38 | |||
| b228d36041 | |||
| 7680aea223 | |||
| 771042a619 | |||
| b1f7713916 | |||
| 7b0c04b95b | |||
| 9f09c934bf | |||
| 88bad450fd | |||
| 7614f77431 | |||
| 761f27958a | |||
| 52347a0c98 | |||
| e2e97b774a | |||
| 4f0f97959f | |||
| 93f4eeb227 | |||
| ec769e00bb | |||
| ade975d48f | |||
| 16a07abd51 | |||
| 3c07ec133e |
@@ -0,0 +1,59 @@
|
|||||||
|
# Python Buildpack Changelog
|
||||||
|
|
||||||
|
## v70 (2015-10-29)
|
||||||
|
|
||||||
|
Improved compatibility with multi and node.js buildpacks.
|
||||||
|
|
||||||
|
## v69 (2015-10-12)
|
||||||
|
|
||||||
|
Revert to v66.
|
||||||
|
|
||||||
|
## v68 (2015-10-12)
|
||||||
|
|
||||||
|
Fixed .heroku/venv error with modern apps.
|
||||||
|
|
||||||
|
## v67 (2015-10-12)
|
||||||
|
|
||||||
|
Further improved cache compatibility with multi and node.js buildpacks.
|
||||||
|
|
||||||
|
## v66 (2015-10-09)
|
||||||
|
|
||||||
|
Improved compatibility with multi and node.js buildpacks.
|
||||||
|
|
||||||
|
## v65 (2015-10-08)
|
||||||
|
|
||||||
|
Reverted v64.
|
||||||
|
|
||||||
|
## v64 (2015-10-08)
|
||||||
|
|
||||||
|
Improved compatibility with multi and node.js buildpacks.
|
||||||
|
|
||||||
|
## v63 (2015-10-08)
|
||||||
|
|
||||||
|
Updated Pip and Setuptools.
|
||||||
|
|
||||||
|
- Setuptools updated to v18.3.2
|
||||||
|
- Pip updated to v7.1.2
|
||||||
|
|
||||||
|
|
||||||
|
## v62 (2015-08-07)
|
||||||
|
|
||||||
|
Updated Pip and Setuptools.
|
||||||
|
|
||||||
|
- Setuptools updated to v18.1
|
||||||
|
- Pip updated to v7.1.0
|
||||||
|
|
||||||
|
## v61 (2015-06-30)
|
||||||
|
|
||||||
|
Updated Pip and Setuptools.
|
||||||
|
|
||||||
|
- Setuptools updated to v18.0.1
|
||||||
|
- Pip updated to v7.0.3
|
||||||
|
|
||||||
|
## v60 (2015-05-27)
|
||||||
|
|
||||||
|
Default Python is now latest 2.7.10. Updated Pip and Distribute.
|
||||||
|
|
||||||
|
- Default Python version is v2.7.10
|
||||||
|
- Setuptools updated to v16.0
|
||||||
|
- Pip updated to v7.0.1
|
||||||
-130
@@ -1,130 +0,0 @@
|
|||||||
## v14
|
|
||||||
|
|
||||||
Features:
|
|
||||||
|
|
||||||
* Full removal of Django settings injection for new apps.
|
|
||||||
* Support for profile.d
|
|
||||||
* Fresh app detection.
|
|
||||||
* Update to Virtualenv v1.7.2
|
|
||||||
* Updated to Pip v1.1 (patched)
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Default pip path exists action.
|
|
||||||
|
|
||||||
## v13
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Fix pip quoting error.
|
|
||||||
* Only talk about collectstatic in buildpack output when it's configured.
|
|
||||||
|
|
||||||
## v12
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Catch database setting corner case.
|
|
||||||
|
|
||||||
## v11
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Cleanup collectstatic output.
|
|
||||||
|
|
||||||
|
|
||||||
## v10
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Check for collectstatic validity with --dry-run instead of --help for Django 1.4.
|
|
||||||
|
|
||||||
## v9
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Unset PYTHONHOME in buildpack for [user_env_compile](http://devcenter.heroku.com/articles/labs-user-env-compile).
|
|
||||||
|
|
||||||
## v8
|
|
||||||
|
|
||||||
Features:
|
|
||||||
|
|
||||||
* Disable Django collectstatic with `$DISABLE_COLLECTSTATIC` + [user_env_compile](http://devcenter.heroku.com/articles/labs-user-env-compile).
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Don't disbable injection for new Django apps.
|
|
||||||
* Inform user of July 1, 2012 deprecation of Django injection.
|
|
||||||
|
|
||||||
## v7
|
|
||||||
|
|
||||||
Features:
|
|
||||||
|
|
||||||
* Full removal of Django setting injection for new apps.
|
|
||||||
* Automatic execution of collectstatic.
|
|
||||||
* Suppress collectstatic errors via env SILENCE_COLLECTSTATIC.
|
|
||||||
* Increase settings.py search depth to 3.
|
|
||||||
* Search recursively from included requirements.txt files.
|
|
||||||
|
|
||||||
|
|
||||||
## v6 (03/23/2012)
|
|
||||||
|
|
||||||
Features:
|
|
||||||
|
|
||||||
* Dist packages (setup.py) support.
|
|
||||||
* Move new virtualenvs to `/app/.heroku/venv`.
|
|
||||||
* Heavily improved Django app detection, accounting for `Django` in `requirements.txt`.
|
|
||||||
* Literate [documentation](http://python-buildpack.herokuapp.com).
|
|
||||||
* Default `$PYTHONHOME`, `$PYTHONPATH`, and `$LANG` configurations.
|
|
||||||
* Disable Django setting injection with `$DISABLE_INJECTION` + [user_env_compile](http://devcenter.heroku.com/articles/labs-user-env-compile).
|
|
||||||
* General code refactor and improved messaging.
|
|
||||||
* Unit tests.
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Django 1.4 startproject template layout support.
|
|
||||||
* Django `manage.py` location can now be independent from `settings.py`.
|
|
||||||
|
|
||||||
## v5 (02/01/2012)
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Git requirements 100% work.
|
|
||||||
|
|
||||||
|
|
||||||
## v4 (01/20/2012)
|
|
||||||
|
|
||||||
Features:
|
|
||||||
|
|
||||||
* Updated to virtualenv v1.7 with patched pip v1.2.
|
|
||||||
* Actually activate created virtualenv within compile process.
|
|
||||||
* Use distribute instead of deprecated setuptools.
|
|
||||||
* Automatically destroy and rebuild corrupt virtualenvs.
|
|
||||||
* Refactor django and pylibmc detection.
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Fixed `package==dev` in requirements with patched pip embedded within virtualenv. Patch upstreamed.
|
|
||||||
* Minor curl/rm flag fixes (thanks, contributors!)
|
|
||||||
|
|
||||||
|
|
||||||
## v3 (12/07/2011)
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Better django setup.py injection.
|
|
||||||
|
|
||||||
|
|
||||||
## v2 (11/15/2011)
|
|
||||||
|
|
||||||
Features:
|
|
||||||
|
|
||||||
* Support for pylibmc and libmemcached +sasl.
|
|
||||||
|
|
||||||
Bugfixes:
|
|
||||||
|
|
||||||
* Detect when virtualenv is checked in and alert user.
|
|
||||||
|
|
||||||
|
|
||||||
## v1 (10/01/2011)
|
|
||||||
|
|
||||||
* Conception.
|
|
||||||
@@ -3,3 +3,8 @@
|
|||||||
|
|
||||||
tests:
|
tests:
|
||||||
./bin/test
|
./bin/test
|
||||||
|
|
||||||
|
tools:
|
||||||
|
git clone https://github.com/kennethreitz/pip-pop.git
|
||||||
|
mv pip-pop/bin/* vendor/pip-pop/
|
||||||
|
rm -fr pip-pop
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
Heroku buildpack: Python
|
# Heroku buildpack: Python
|
||||||
========================
|

|
||||||
|
|
||||||
This is a [Heroku buildpack](http://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](http://www.pip-installer.org/).
|
This is a [Heroku buildpack](http://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](http://www.pip-installer.org/).
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ Example usage:
|
|||||||
$ git push heroku master
|
$ git push heroku master
|
||||||
...
|
...
|
||||||
-----> Python app detected
|
-----> Python app detected
|
||||||
-----> Installing runtime (python-2.7.8)
|
-----> Installing runtime (python-2.7.10)
|
||||||
-----> Installing dependencies using pip
|
-----> Installing dependencies using pip
|
||||||
Downloading/unpacking requests (from -r requirements.txt (line 1))
|
Downloading/unpacking requests (from -r requirements.txt (line 1))
|
||||||
Installing collected packages: requests
|
Installing collected packages: requests
|
||||||
@@ -28,7 +28,7 @@ Example usage:
|
|||||||
|
|
||||||
You can also add it to upcoming builds of an existing application:
|
You can also add it to upcoming builds of an existing application:
|
||||||
|
|
||||||
$ heroku config:add BUILDPACK_URL=git://github.com/heroku/heroku-buildpack-python.git
|
$ heroku buildpacks:set git://github.com/heroku/heroku-buildpack-python.git
|
||||||
|
|
||||||
The buildpack will detect your app as Python if it has the file `requirements.txt` in the root.
|
The buildpack will detect your app as Python if it has the file `requirements.txt` in the root.
|
||||||
|
|
||||||
@@ -40,12 +40,13 @@ Specify a Runtime
|
|||||||
You can also provide arbitrary releases Python with a `runtime.txt` file.
|
You can also provide arbitrary releases Python with a `runtime.txt` file.
|
||||||
|
|
||||||
$ cat runtime.txt
|
$ cat runtime.txt
|
||||||
python-3.4.1
|
python-3.5.0
|
||||||
|
|
||||||
Runtime options include:
|
Runtime options include:
|
||||||
|
|
||||||
- python-2.7.8
|
- python-2.7.10
|
||||||
- python-3.4.1
|
- python-3.5.0
|
||||||
- pypy-1.9 (experimental)
|
- pypy-2.6.1 (unsupported, experimental)
|
||||||
|
- pypy3-2.4.0 (unsupported, experimental)
|
||||||
|
|
||||||
Other [unsupported runtimes](https://github.com/heroku/heroku-buildpack-python/tree/master/builds/runtimes) are available as well.
|
Other [unsupported runtimes](https://github.com/heroku/heroku-buildpack-python/tree/master/builds/runtimes) are available as well.
|
||||||
|
|||||||
+65
-32
@@ -7,6 +7,8 @@
|
|||||||
# Fail fast and fail hard.
|
# Fail fast and fail hard.
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
|
|
||||||
|
[ "$BUILDPACK_XTRACE" ] && set -o xtrace
|
||||||
|
|
||||||
# Prepend proper path for virtualenv hackery. This will be deprecated soon.
|
# Prepend proper path for virtualenv hackery. This will be deprecated soon.
|
||||||
export PATH=:/usr/local/bin:$PATH
|
export PATH=:/usr/local/bin:$PATH
|
||||||
|
|
||||||
@@ -17,19 +19,15 @@ BUILD_DIR=$1
|
|||||||
CACHE_DIR=$2
|
CACHE_DIR=$2
|
||||||
ENV_DIR=$3
|
ENV_DIR=$3
|
||||||
|
|
||||||
|
|
||||||
CACHED_DIRS=".heroku"
|
|
||||||
|
|
||||||
# Static configurations for virtualenv caches.
|
# Static configurations for virtualenv caches.
|
||||||
VIRTUALENV_LOC=".heroku/venv"
|
VIRTUALENV_LOC=".heroku/venv"
|
||||||
LEGACY_TRIGGER="lib/python2.7"
|
LEGACY_TRIGGER="lib/python2.7"
|
||||||
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
|
|
||||||
|
|
||||||
DEFAULT_PYTHON_VERSION="python-2.7.8"
|
DEFAULT_PYTHON_VERSION="python-2.7.10"
|
||||||
DEFAULT_PYTHON_STACK="cedar"
|
DEFAULT_PYTHON_STACK="cedar"
|
||||||
PYTHON_EXE="/app/.heroku/python/bin/python"
|
PYTHON_EXE="/app/.heroku/python/bin/python"
|
||||||
PIP_VERSION="1.5.6"
|
PIP_VERSION="7.1.2"
|
||||||
SETUPTOOLS_VERSION="5.4.1"
|
SETUPTOOLS_VERSION="18.3.2"
|
||||||
|
|
||||||
# Setup bpwatch
|
# Setup bpwatch
|
||||||
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
|
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
|
||||||
@@ -54,10 +52,6 @@ TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
|
|||||||
|
|
||||||
bpwatch start compile
|
bpwatch start compile
|
||||||
|
|
||||||
|
|
||||||
# We'll need to send these statics to other scripts we `source`.
|
|
||||||
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
|
|
||||||
|
|
||||||
# Syntax sugar.
|
# Syntax sugar.
|
||||||
source $BIN_DIR/utils
|
source $BIN_DIR/utils
|
||||||
|
|
||||||
@@ -65,25 +59,37 @@ source $BIN_DIR/utils
|
|||||||
APP_DIR='/app'
|
APP_DIR='/app'
|
||||||
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
|
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
|
||||||
|
|
||||||
# Copy Anvil app dir to temporary storage...
|
# Skip these steps for Docker.
|
||||||
bpwatch start anvil_appdir_stage
|
if [[ ! "$DOCKER_BUILD" ]]; then
|
||||||
|
|
||||||
|
# Copy Anvil app dir to temporary storage...
|
||||||
|
bpwatch start anvil_appdir_stage
|
||||||
if [ "$SLUG_ID" ]; then
|
if [ "$SLUG_ID" ]; then
|
||||||
mkdir -p $TMP_APP_DIR
|
mkdir -p $TMP_APP_DIR
|
||||||
deep-mv $APP_DIR $TMP_APP_DIR
|
deep-mv $APP_DIR $TMP_APP_DIR
|
||||||
else
|
else
|
||||||
deep-rm $APP_DIR
|
deep-rm $APP_DIR
|
||||||
fi
|
fi
|
||||||
bpwatch stop anvil_appdir_stage
|
bpwatch stop anvil_appdir_stage
|
||||||
|
|
||||||
|
# Copy Application code in.
|
||||||
|
bpwatch start appdir_stage
|
||||||
|
deep-cp $BUILD_DIR $APP_DIR
|
||||||
|
bpwatch stop appdir_stage
|
||||||
|
fi
|
||||||
|
|
||||||
# Copy Application code in.
|
|
||||||
bpwatch start appdir_stage
|
|
||||||
deep-mv $BUILD_DIR $APP_DIR
|
|
||||||
bpwatch stop appdir_stage
|
|
||||||
|
|
||||||
# Set new context.
|
# Set new context.
|
||||||
ORIG_BUILD_DIR=$BUILD_DIR
|
ORIG_BUILD_DIR=$BUILD_DIR
|
||||||
BUILD_DIR=$APP_DIR
|
BUILD_DIR=$APP_DIR
|
||||||
|
|
||||||
|
# Set up outputs under new context
|
||||||
|
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
|
||||||
|
WEBCONCURRENCY_PROFILE_PATH="$BUILD_DIR/.profile.d/python.webconcurrency.sh"
|
||||||
|
|
||||||
|
# We'll need to send these statics to other scripts we `source`.
|
||||||
|
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
|
||||||
|
|
||||||
# Prepend proper path buildpack use.
|
# Prepend proper path buildpack use.
|
||||||
export PATH=$BUILD_DIR/.heroku/python/bin:$BUILD_DIR/.heroku/vendor/bin:$PATH
|
export PATH=$BUILD_DIR/.heroku/python/bin:$BUILD_DIR/.heroku/vendor/bin:$PATH
|
||||||
export PYTHONUNBUFFERED=1
|
export PYTHONUNBUFFERED=1
|
||||||
@@ -107,6 +113,7 @@ if [ ! -f requirements.txt ]; then
|
|||||||
echo "-e ." > requirements.txt
|
echo "-e ." > requirements.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Sticky runtimes.
|
# Sticky runtimes.
|
||||||
if [ -f $CACHE_DIR/.heroku/python-version ]; then
|
if [ -f $CACHE_DIR/.heroku/python-version ]; then
|
||||||
DEFAULT_PYTHON_VERSION=$(cat $CACHE_DIR/.heroku/python-version)
|
DEFAULT_PYTHON_VERSION=$(cat $CACHE_DIR/.heroku/python-version)
|
||||||
@@ -135,9 +142,14 @@ bpwatch stop clear_old_venvs
|
|||||||
|
|
||||||
# Restore old artifacts from the cache.
|
# Restore old artifacts from the cache.
|
||||||
bpwatch start restore_cache
|
bpwatch start restore_cache
|
||||||
for dir in $CACHED_DIRS; do
|
mkdir -p .heroku
|
||||||
cp -R $CACHE_DIR/$dir . &> /dev/null || true
|
|
||||||
done
|
cp -R $CACHE_DIR/.heroku/python .heroku/ &> /dev/null || true
|
||||||
|
cp -R $CACHE_DIR/.heroku/python-stack .heroku/ &> /dev/null || true
|
||||||
|
cp -R $CACHE_DIR/.heroku/python-version .heroku/ &> /dev/null || true
|
||||||
|
cp -R $CACHE_DIR/.heroku/vendor .heroku/ &> /dev/null || true
|
||||||
|
cp -R $CACHE_DIR/.heroku/venv .heroku/ &> /dev/null || true
|
||||||
|
|
||||||
bpwatch stop restore_cache
|
bpwatch stop restore_cache
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
@@ -165,6 +177,9 @@ source $BIN_DIR/steps/pylibmc
|
|||||||
# Libffi support.
|
# Libffi support.
|
||||||
source $BIN_DIR/steps/cryptography
|
source $BIN_DIR/steps/cryptography
|
||||||
|
|
||||||
|
# GDAL support.
|
||||||
|
source $BIN_DIR/steps/gdal
|
||||||
|
|
||||||
# Install dependencies with Pip.
|
# Install dependencies with Pip.
|
||||||
source $BIN_DIR/steps/pip-install
|
source $BIN_DIR/steps/pip-install
|
||||||
|
|
||||||
@@ -179,12 +194,15 @@ sub-env $BIN_DIR/steps/collectstatic
|
|||||||
set-env PATH '$HOME/.heroku/python/bin:$PATH'
|
set-env PATH '$HOME/.heroku/python/bin:$PATH'
|
||||||
set-env PYTHONUNBUFFERED true
|
set-env PYTHONUNBUFFERED true
|
||||||
set-env PYTHONHOME /app/.heroku/python
|
set-env PYTHONHOME /app/.heroku/python
|
||||||
set-env LIBRARY_PATH /app/.heroku/vendor/lib:/app/.heroku/python/lib
|
set-env LIBRARY_PATH '/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LIBRARY_PATH'
|
||||||
set-env LD_LIBRARY_PATH '/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LD_LIBRARY_PATH'
|
set-env LD_LIBRARY_PATH '/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LD_LIBRARY_PATH'
|
||||||
set-default-env LANG en_US.UTF-8
|
set-default-env LANG en_US.UTF-8
|
||||||
set-default-env PYTHONHASHSEED random
|
set-default-env PYTHONHASHSEED random
|
||||||
set-default-env PYTHONPATH /app/
|
set-default-env PYTHONPATH /app/
|
||||||
|
|
||||||
|
# Install sane-default script for WEB_CONCURRENCY environment variable.
|
||||||
|
cp $ROOT_DIR/vendor/python.webconcurrency.sh $WEBCONCURRENCY_PROFILE_PATH
|
||||||
|
|
||||||
|
|
||||||
# Experimental post_compile hook.
|
# Experimental post_compile hook.
|
||||||
bpwatch start post_compile
|
bpwatch start post_compile
|
||||||
@@ -193,21 +211,36 @@ bpwatch stop post_compile
|
|||||||
|
|
||||||
# Store new artifacts in cache.
|
# Store new artifacts in cache.
|
||||||
bpwatch start dump_cache
|
bpwatch start dump_cache
|
||||||
for dir in $CACHED_DIRS; do
|
|
||||||
rm -rf $CACHE_DIR/$dir
|
rm -rf $CACHE_DIR/.heroku/python
|
||||||
cp -R $dir $CACHE_DIR/
|
rm -rf $CACHE_DIR/.heroku/python-version
|
||||||
done
|
rm -rf $CACHE_DIR/.heroku/python-stack
|
||||||
|
rm -rf $CACHE_DIR/.heroku/vendor
|
||||||
|
rm -rf $CACHE_DIR/.heroku/venv
|
||||||
|
|
||||||
|
mkdir -p $CACHE_DIR/.heroku
|
||||||
|
cp -R .heroku/python $CACHE_DIR/.heroku/
|
||||||
|
cp -R .heroku/python-version $CACHE_DIR/.heroku/
|
||||||
|
cp -R .heroku/python-stack $CACHE_DIR/.heroku/
|
||||||
|
cp -R .heroku/vendor $CACHE_DIR/.heroku/ &> /dev/null || true
|
||||||
|
cp -R .heroku/venv $CACHE_DIR/.heroku/ &> /dev/null || true
|
||||||
|
|
||||||
bpwatch stop dump_cache
|
bpwatch stop dump_cache
|
||||||
|
|
||||||
# ### Fin.
|
# ### Fin.
|
||||||
bpwatch start appdir_commit
|
if [[ ! "$DOCKER_BUILD" ]]; then
|
||||||
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
|
|
||||||
bpwatch stop appdir_commit
|
|
||||||
|
|
||||||
bpwatch start anvil_appdir_commit
|
bpwatch start appdir_commit
|
||||||
|
deep-rm $ORIG_BUILD_DIR
|
||||||
|
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
|
||||||
|
bpwatch stop appdir_commit
|
||||||
|
|
||||||
|
bpwatch start anvil_appdir_commit
|
||||||
if [ "$SLUG_ID" ]; then
|
if [ "$SLUG_ID" ]; then
|
||||||
deep-mv $TMP_APP_DIR $APP_DIR
|
deep-mv $TMP_APP_DIR $APP_DIR
|
||||||
fi
|
fi
|
||||||
|
|
||||||
bpwatch stop anvil_appdir_commit
|
bpwatch stop anvil_appdir_commit
|
||||||
bpwatch stop compile
|
bpwatch stop compile
|
||||||
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
source $BIN_DIR/utils
|
source $BIN_DIR/utils
|
||||||
|
|
||||||
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' | head -1)
|
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1)
|
||||||
MANAGE_FILE=${MANAGE_FILE:-fakepath}
|
MANAGE_FILE=${MANAGE_FILE:-fakepath}
|
||||||
|
|
||||||
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
|
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
|
||||||
@@ -33,4 +33,4 @@ if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ]; then
|
|||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
bpwatch stop collectstatic
|
bpwatch stop collectstatic
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
# This script is invoked by [`bin/compile`](/).
|
# This script is invoked by [`bin/compile`](/).
|
||||||
|
|
||||||
# The location of the pre-compiled cryptography binary.
|
# The location of the pre-compiled cryptography binary.
|
||||||
VENDORED_LIBFFI="http://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libffi.tar.gz"
|
VENDORED_LIBFFI="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libffi.tar.gz"
|
||||||
|
|
||||||
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
|
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ source $BIN_DIR/utils
|
|||||||
bpwatch start libffi_install
|
bpwatch start libffi_install
|
||||||
|
|
||||||
# If pylibmc exists within requirements, use vendored cryptography.
|
# If pylibmc exists within requirements, use vendored cryptography.
|
||||||
if (pip-grep -s requirements.txt cffi crytography &> /dev/null) then
|
if (pip-grep -s requirements.txt bcrypt cffi cryptography pyOpenSSL PyOpenSSL requests[security] &> /dev/null) then
|
||||||
|
|
||||||
if [ -d ".heroku/vendor/lib/libffi-3.1.1" ]; then
|
if [ -d ".heroku/vendor/lib/libffi-3.1.1" ]; then
|
||||||
export LIBFFI=$(pwd)/vendor
|
export LIBFFI=$(pwd)/vendor
|
||||||
|
|||||||
Executable
+37
@@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# This script serves as the GDAL build step of the
|
||||||
|
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
|
||||||
|
# compiler.
|
||||||
|
#
|
||||||
|
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an
|
||||||
|
# adapter between a Python application and Heroku's runtime.
|
||||||
|
#
|
||||||
|
# This script is invoked by [`bin/compile`](/).
|
||||||
|
|
||||||
|
# The location of the pre-compiled cryptography binary.
|
||||||
|
VENDORED_GDAL="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/gdal.tar.gz"
|
||||||
|
|
||||||
|
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
|
||||||
|
# Syntax sugar.
|
||||||
|
source $BIN_DIR/utils
|
||||||
|
|
||||||
|
bpwatch start gdal_install
|
||||||
|
|
||||||
|
# If GDAL exists within requirements, use vendored gdal.
|
||||||
|
if (pip-grep -s requirements.txt GDAL &> /dev/null) then
|
||||||
|
|
||||||
|
if [ -f ".heroku/vendor/bin/gdalserver" ]; then
|
||||||
|
export GDAL=$(pwd)/vendor
|
||||||
|
else
|
||||||
|
echo "-----> Noticed GDAL. Bootstrapping gdal."
|
||||||
|
mkdir -p .heroku/vendor
|
||||||
|
# Download and extract cryptography into target vendor directory.
|
||||||
|
curl $VENDORED_GDAL -s | tar zxv -C .heroku/vendor &> /dev/null
|
||||||
|
|
||||||
|
export GDAL=$(pwd)/vendor
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
bpwatch stop gdal_install
|
||||||
@@ -4,7 +4,7 @@ puts-step "Installing dependencies with pip"
|
|||||||
[ ! "$FRESH_PYTHON" ] && bpwatch start pip_install
|
[ ! "$FRESH_PYTHON" ] && bpwatch start pip_install
|
||||||
[ "$FRESH_PYTHON" ] && bpwatch start pip_install_first
|
[ "$FRESH_PYTHON" ] && bpwatch start pip_install_first
|
||||||
|
|
||||||
/app/.heroku/python/bin/pip install -r requirements.txt --exists-action=w --src=./.heroku/src --allow-all-external | cleanup | indent
|
/app/.heroku/python/bin/pip install -r requirements.txt --exists-action=w --src=./.heroku/src --allow-all-external --disable-pip-version-check --no-cache-dir | cleanup | indent
|
||||||
|
|
||||||
# Smart Requirements handling
|
# Smart Requirements handling
|
||||||
cp requirements.txt .heroku/python/requirements-declared.txt
|
cp requirements.txt .heroku/python/requirements-declared.txt
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ if [[ -f .heroku/python/requirements-declared.txt ]]; then
|
|||||||
|
|
||||||
cp .heroku/python/requirements-declared.txt requirements-declared.txt
|
cp .heroku/python/requirements-declared.txt requirements-declared.txt
|
||||||
|
|
||||||
pip-diff --stale requirements-declared.txt requirements.txt > .heroku/python/requirements-stale.txt
|
pip-diff --stale requirements-declared.txt requirements.txt --exclude setuptools pip > .heroku/python/requirements-stale.txt
|
||||||
|
|
||||||
rm -fr requirements-declared.txt
|
rm -fr requirements-declared.txt
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@
|
|||||||
# This script is invoked by [`bin/compile`](/).
|
# This script is invoked by [`bin/compile`](/).
|
||||||
|
|
||||||
# The location of the pre-compiled libmemcached binary.
|
# The location of the pre-compiled libmemcached binary.
|
||||||
VENDORED_MEMCACHED="http://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libmemcache.tar.gz"
|
VENDORED_MEMCACHED="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libmemcache.tar.gz"
|
||||||
|
|
||||||
# Syntax sugar.
|
# Syntax sugar.
|
||||||
source $BIN_DIR/utils
|
source $BIN_DIR/utils
|
||||||
|
|||||||
+10
-11
@@ -15,8 +15,7 @@ fi
|
|||||||
|
|
||||||
if [ ! $STACK = $CACHED_PYTHON_STACK ]; then
|
if [ ! $STACK = $CACHED_PYTHON_STACK ]; then
|
||||||
bpwatch start uninstall_python
|
bpwatch start uninstall_python
|
||||||
puts-step "Stack changed, re-installing runtime"
|
rm -fr .heroku/python .heroku/python-stack .heroku/vendor
|
||||||
rm -fr .heroku/python
|
|
||||||
unset SKIP_INSTALL
|
unset SKIP_INSTALL
|
||||||
bpwatch stop uninstall_python
|
bpwatch stop uninstall_python
|
||||||
fi
|
fi
|
||||||
@@ -29,7 +28,7 @@ if [ ! "$SKIP_INSTALL" ]; then
|
|||||||
# Prepare destination directory.
|
# Prepare destination directory.
|
||||||
mkdir -p .heroku/python
|
mkdir -p .heroku/python
|
||||||
|
|
||||||
curl http://lang-python.s3.amazonaws.com/$STACK/runtimes/$PYTHON_VERSION.tar.gz -s | tar zxv -C .heroku/python &> /dev/null
|
curl https://lang-python.s3.amazonaws.com/$STACK/runtimes/$PYTHON_VERSION.tar.gz -s | tar zxv -C .heroku/python &> /dev/null
|
||||||
if [[ $? != 0 ]] ; then
|
if [[ $? != 0 ]] ; then
|
||||||
puts-warn "Requested runtime ($PYTHON_VERSION) is not available for this stack ($STACK)."
|
puts-warn "Requested runtime ($PYTHON_VERSION) is not available for this stack ($STACK)."
|
||||||
puts-warn "Aborting. More info: https://devcenter.heroku.com/articles/python-support"
|
puts-warn "Aborting. More info: https://devcenter.heroku.com/articles/python-support"
|
||||||
@@ -52,22 +51,22 @@ if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
|
|||||||
|
|
||||||
bpwatch start prepare_environment
|
bpwatch start prepare_environment
|
||||||
|
|
||||||
|
TMPTARDIR=$(mktemp -d)
|
||||||
|
trap "rm -rf $TMPTARDIR" RETURN
|
||||||
|
|
||||||
bpwatch start install_setuptools
|
bpwatch start install_setuptools
|
||||||
# Prepare it for the real world
|
# Prepare it for the real world
|
||||||
# puts-step "Installing Setuptools ($SETUPTOOLS_VERSION)"
|
# puts-step "Installing Setuptools ($SETUPTOOLS_VERSION)"
|
||||||
cd $ROOT_DIR/vendor/
|
tar zxf $ROOT_DIR/vendor/setuptools-$SETUPTOOLS_VERSION.tar.gz -C $TMPTARDIR
|
||||||
tar zxf setuptools-$SETUPTOOLS_VERSION.tar.gz
|
cd $TMPTARDIR/setuptools-$SETUPTOOLS_VERSION/
|
||||||
cd $ROOT_DIR/vendor/setuptools-$SETUPTOOLS_VERSION/
|
|
||||||
python setup.py install &> /dev/null
|
python setup.py install &> /dev/null
|
||||||
cd $WORKING_DIR
|
cd $WORKING_DIR
|
||||||
bpwatch stop install_setuptoools
|
bpwatch stop install_setuptoools
|
||||||
|
|
||||||
bpwatch start install_pip
|
bpwatch start install_pip
|
||||||
# puts-step "Installing Pip ($PIP_VERSION)"
|
# puts-step "Installing Pip ($PIP_VERSION)"
|
||||||
|
tar zxf $ROOT_DIR/vendor/pip-$PIP_VERSION.tar.gz -C $TMPTARDIR
|
||||||
cd $ROOT_DIR/vendor/
|
cd $TMPTARDIR/pip-$PIP_VERSION/
|
||||||
tar zxf pip-$PIP_VERSION.tar.gz
|
|
||||||
cd $ROOT_DIR/vendor/pip-$PIP_VERSION/
|
|
||||||
python setup.py install &> /dev/null
|
python setup.py install &> /dev/null
|
||||||
cd $WORKING_DIR
|
cd $WORKING_DIR
|
||||||
|
|
||||||
@@ -76,4 +75,4 @@ if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
hash -r
|
hash -r
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ set-default-env() {
|
|||||||
echo "export $1=\${$1:-$2}" >> $PROFILE_PATH
|
echo "export $1=\${$1:-$2}" >> $PROFILE_PATH
|
||||||
}
|
}
|
||||||
|
|
||||||
# Usage: $ set-default-env key value
|
# Usage: $ un-set-env key
|
||||||
un-set-env() {
|
un-set-env() {
|
||||||
echo "unset $1" >> $PROFILE_PATH
|
echo "unset $1" >> $PROFILE_PATH
|
||||||
}
|
}
|
||||||
@@ -68,7 +68,7 @@ deep-rm() {
|
|||||||
# subshell to avoid surprising caller with shopts.
|
# subshell to avoid surprising caller with shopts.
|
||||||
(
|
(
|
||||||
shopt -s dotglob
|
shopt -s dotglob
|
||||||
rm -rf "$1"/!(tmp|.|..)
|
rm -rf "$1"/!(.curlrc|.netrc|tmp|.|..)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ OUT_PREFIX=$1
|
|||||||
echo "Building autoconf..."
|
echo "Building autoconf..."
|
||||||
|
|
||||||
|
|
||||||
SOURCE_TARBALL='http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz'
|
SOURCE_TARBALL='https://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
|
||||||
cd autoconf-2.68
|
cd autoconf-2.68
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ hash -r
|
|||||||
|
|
||||||
echo "Building libffi..."
|
echo "Building libffi..."
|
||||||
|
|
||||||
SOURCE_TARBALL='http://cl.ly/2s1t1u3v0N0I/download/libffi-3.1.tar'
|
SOURCE_TARBALL='https://cl.ly/2s1t1u3v0N0I/download/libffi-3.1.tar'
|
||||||
|
|
||||||
curl -L $SOURCE_TARBALL | tar x
|
curl -L $SOURCE_TARBALL | tar x
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ OUT_PREFIX=$1
|
|||||||
echo "Building SQLite..."
|
echo "Building SQLite..."
|
||||||
|
|
||||||
|
|
||||||
SOURCE_TARBALL='http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz'
|
SOURCE_TARBALL='https://www.sqlite.org/sqlite-autoconf-3070900.tar.gz'
|
||||||
|
|
||||||
curl $SOURCE_TARBALL | tar xz
|
curl $SOURCE_TARBALL | tar xz
|
||||||
# jx
|
# jx
|
||||||
|
|||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/vendor/
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Use new path, containing autoconf.
|
||||||
|
export PATH="/app/.heroku/python/bin/:$PATH"
|
||||||
|
hash -r
|
||||||
|
|
||||||
|
|
||||||
|
echo "Building gdal..."
|
||||||
|
|
||||||
|
SOURCE_TARBALL='http://download.osgeo.org/gdal/1.11.0/gdal-1.11.0.tar.gz'
|
||||||
|
|
||||||
|
curl -L $SOURCE_TARBALL | tar zx
|
||||||
|
|
||||||
|
cd gdal-1.11.0
|
||||||
|
./configure --prefix=$OUT_PREFIX &&
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd ..
|
||||||
Vendored
+2
-1
@@ -22,7 +22,8 @@ curl -LO ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-2.1.26.tar.gz
|
|||||||
tar xzf cyrus-sasl-2.1.26.tar.gz
|
tar xzf cyrus-sasl-2.1.26.tar.gz
|
||||||
|
|
||||||
pushd cyrus-sasl-2.1.26
|
pushd cyrus-sasl-2.1.26
|
||||||
./configure --prefix=${OUT_PREFIX}
|
./configure --prefix=${OUT_PREFIX} --with-plugindir=${OUT_PREFIX}lib/sasl2 --with-configdir=${OUT_PREFIX}lib/sasl2
|
||||||
|
|
||||||
make -s -j 9
|
make -s -j 9
|
||||||
make install -s
|
make install -s
|
||||||
popd
|
popd
|
||||||
|
|||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.4.0-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy-2.4.0-linux64/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.0-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy-2.5.0-linux64/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy-2.5.1-linux64/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy-2.6.0-linux64/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy-2.6.1-linux64/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy-4.0.0-linux64/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy3-2.4.0-linux64/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy3 $OUT_PREFIX/bin/python
|
||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.4.4/Python-2.4.4.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.4.4/Python-2.4.4.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.4.4 src
|
mv Python-2.4.4 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.4.5/Python-2.4.5.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.4.5/Python-2.4.5.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.4.5 src
|
mv Python-2.4.5 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.4.6/Python-2.4.6.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.4.6/Python-2.4.6.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.4.6 src
|
mv Python-2.4.6 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.5/Python-2.5.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.5/Python-2.5.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.5 src
|
mv Python-2.5 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.5.1/Python-2.5.1.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.5.1/Python-2.5.1.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.5.1 src
|
mv Python-2.5.1 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.5.2/Python-2.5.2.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.5.2/Python-2.5.2.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.5.2 src
|
mv Python-2.5.2 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.5.3/Python-2.5.3.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.5.3/Python-2.5.3.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.5.3 src
|
mv Python-2.5.3 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.5.4/Python-2.5.4.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.5.4/Python-2.5.4.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.5.4 src
|
mv Python-2.5.4 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.5.5/Python-2.5.5.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.5.5/Python-2.5.5.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.5.5 src
|
mv Python-2.5.5 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.5.6/Python-2.5.6.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.5.6/Python-2.5.6.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.5.6 src
|
mv Python-2.5.6 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://www.python.org/ftp/python/2.6/Python-2.6.tar.bz2'
|
SOURCE_TARBALL='https://www.python.org/ftp/python/2.6/Python-2.6.tar.bz2'
|
||||||
curl -L $SOURCE_TARBALL | tar jx
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
mv Python-2.6 src
|
mv Python-2.6 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.6.1/Python-2.6.1.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.6.1/Python-2.6.1.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.6.1 src
|
mv Python-2.6.1 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.6.2/Python-2.6.2.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.6.2/Python-2.6.2.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.6.2 src
|
mv Python-2.6.2 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.6.3/Python-2.6.3.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.6.3/Python-2.6.3.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.6.3 src
|
mv Python-2.6.3 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.6.4/Python-2.6.4.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.6.4/Python-2.6.4.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.6.4 src
|
mv Python-2.6.4 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.6.5/Python-2.6.5.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.6.5/Python-2.6.5.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.6.5 src
|
mv Python-2.6.5 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.6.6/Python-2.6.6.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.6.6 src
|
mv Python-2.6.6 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.6.7/Python-2.6.7.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.6.7/Python-2.6.7.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.6.7 src
|
mv Python-2.6.7 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.6.8/Python-2.6.8.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.6.8/Python-2.6.8.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.6.8 src
|
mv Python-2.6.8 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
|
|||||||
unset LANG PYTHONHOME PYTHONPATH
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.6.9/Python-2.6.9.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.6.9 src
|
mv Python-2.6.9 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7/Python-2.7.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7/Python-2.7.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7 src
|
mv Python-2.7 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.1/Python-2.7.1.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.1 src
|
mv Python-2.7.1 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.10/Python-2.7.10.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.10 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
|
||||||
|
make
|
||||||
|
make install
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.2/Python-2.7.2.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.2 src
|
mv Python-2.7.2 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.3/Python-2.7.3.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.3 src
|
mv Python-2.7.3 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.4/Python-2.7.4.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.4 src
|
mv Python-2.7.4 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.5/Python-2.7.5.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.5 src
|
mv Python-2.7.5 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.6/Python-2.7.6.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.6 src
|
mv Python-2.7.6 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.7 src
|
mv Python-2.7.7 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.7 src
|
mv Python-2.7.7 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.8 src
|
mv Python-2.7.8 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-2.7.8 src
|
mv Python-2.7.8 src
|
||||||
cd src
|
cd src
|
||||||
|
|
||||||
./configure --prefix=$OUT_PREFIX
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='https://python.org/ftp/python/2.7.9/Python-2.7.9.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.9 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
|
||||||
|
make
|
||||||
|
make install
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.1/Python-3.1.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.1/Python-3.1.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.1 src
|
mv Python-3.1 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.1.1/Python-3.1.1.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.1.1/Python-3.1.1.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.1.1 src
|
mv Python-3.1.1 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.1.2/Python-3.1.2.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.1.2/Python-3.1.2.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.1.2 src
|
mv Python-3.1.2 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.1.3/Python-3.1.3.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.1.3/Python-3.1.3.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.1.3 src
|
mv Python-3.1.3 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.1.4/Python-3.1.4.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.1.4/Python-3.1.4.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.1.4 src
|
mv Python-3.1.4 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.1.5/Python-3.1.5.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.1.5/Python-3.1.5.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.1.5 src
|
mv Python-3.1.5 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.2/Python-3.2.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.2/Python-3.2.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.2 src
|
mv Python-3.2 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.2.1/Python-3.2.1.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.2.1/Python-3.2.1.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.2.1 src
|
mv Python-3.2.1 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.2.2/Python-3.2.2.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.2.2/Python-3.2.2.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.2.2 src
|
mv Python-3.2.2 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.2.3/Python-3.2.3.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.2.3/Python-3.2.3.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.2.3 src
|
mv Python-3.2.3 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.2.4/Python-3.2.4.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.2.4/Python-3.2.4.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.2.4 src
|
mv Python-3.2.4 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.2.5/Python-3.2.5.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.2.5/Python-3.2.5.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.2.5 src
|
mv Python-3.2.5 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.3.0/Python-3.3.0.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.3.0 src
|
mv Python-3.3.0 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.3.1/Python-3.3.1.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.3.1 src
|
mv Python-3.3.1 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.3.2/Python-3.3.2.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.3.2/Python-3.3.2.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.3.2 src
|
mv Python-3.3.2 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.3.3/Python-3.3.3.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.3.3/Python-3.3.3.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.3.3 src
|
mv Python-3.3.3 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.3.4/Python-3.3.4.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.3.4/Python-3.3.4.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.3.4 src
|
mv Python-3.3.4 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.3.5/Python-3.3.5.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.3.5/Python-3.3.5.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.3.5 src
|
mv Python-3.3.5 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='https://python.org/ftp/python/3.3.6/Python-3.3.6.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.3.6 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.4.0/Python-3.4.0.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.4.0/Python-3.4.0.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.4.0 src
|
mv Python-3.4.0 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
OUT_PREFIX=$1
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
echo "Building Python..."
|
echo "Building Python..."
|
||||||
SOURCE_TARBALL='http://python.org/ftp/python/3.4.1/Python-3.4.1.tgz'
|
SOURCE_TARBALL='https://python.org/ftp/python/3.4.1/Python-3.4.1.tgz'
|
||||||
curl -L $SOURCE_TARBALL | tar xz
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
mv Python-3.4.1 src
|
mv Python-3.4.1 src
|
||||||
cd src
|
cd src
|
||||||
|
|||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='https://python.org/ftp/python/3.4.2/Python-3.4.2.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.4.2 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --with-ensurepip=no --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
|
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='https://python.org/ftp/python/3.4.3/Python-3.4.3.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.4.3 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --with-ensurepip=no --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
|
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='https://python.org/ftp/python/3.5.0/Python-3.5.0.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.5.0 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --with-ensurepip=no --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
|
|
||||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Vendored
+16
-9
@@ -2,7 +2,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
"""Usage:
|
"""Usage:
|
||||||
pip-diff (--fresh | --stale) <reqfile1> <reqfile2>
|
pip-diff (--fresh | --stale) <reqfile1> <reqfile2> [--exclude <package>...]
|
||||||
pip-diff (-h | --help)
|
pip-diff (-h | --help)
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
@@ -13,6 +13,10 @@ Options:
|
|||||||
import os
|
import os
|
||||||
from docopt import docopt
|
from docopt import docopt
|
||||||
from pip.req import parse_requirements
|
from pip.req import parse_requirements
|
||||||
|
from pip.index import PackageFinder
|
||||||
|
from pip._vendor.requests import session
|
||||||
|
|
||||||
|
requests = session()
|
||||||
|
|
||||||
class Requirements(object):
|
class Requirements(object):
|
||||||
def __init__(self, reqfile=None):
|
def __init__(self, reqfile=None):
|
||||||
@@ -31,12 +35,13 @@ class Requirements(object):
|
|||||||
if not os.path.exists(reqfile):
|
if not os.path.exists(reqfile):
|
||||||
raise ValueError('The given requirements file does not exist.')
|
raise ValueError('The given requirements file does not exist.')
|
||||||
|
|
||||||
for requirement in parse_requirements(reqfile):
|
finder = PackageFinder([], [], session=requests)
|
||||||
|
for requirement in parse_requirements(reqfile, finder=finder, session=requests):
|
||||||
if requirement.req:
|
if requirement.req:
|
||||||
self.requirements.append(requirement.req)
|
self.requirements.append(requirement.req)
|
||||||
|
|
||||||
|
|
||||||
def diff(self, requirements, ignore_versions=False):
|
def diff(self, requirements, ignore_versions=False, excludes=None):
|
||||||
r1 = self
|
r1 = self
|
||||||
r2 = requirements
|
r2 = requirements
|
||||||
results = {'fresh': [], 'stale': []}
|
results = {'fresh': [], 'stale': []}
|
||||||
@@ -50,7 +55,7 @@ class Requirements(object):
|
|||||||
for req in r2.requirements:
|
for req in r2.requirements:
|
||||||
r = req.project_name if ignore_versions else req
|
r = req.project_name if ignore_versions else req
|
||||||
|
|
||||||
if r not in other_reqs:
|
if r not in other_reqs and r not in excludes:
|
||||||
results['fresh'].append(req)
|
results['fresh'].append(req)
|
||||||
|
|
||||||
# Generate stale packages.
|
# Generate stale packages.
|
||||||
@@ -62,7 +67,7 @@ class Requirements(object):
|
|||||||
for req in r1.requirements:
|
for req in r1.requirements:
|
||||||
r = req.project_name if ignore_versions else req
|
r = req.project_name if ignore_versions else req
|
||||||
|
|
||||||
if r not in other_reqs:
|
if r not in other_reqs and r not in excludes:
|
||||||
results['stale'].append(req)
|
results['stale'].append(req)
|
||||||
|
|
||||||
return results
|
return results
|
||||||
@@ -71,9 +76,10 @@ class Requirements(object):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def diff(r1, r2, include_fresh=False, include_stale=False):
|
def diff(r1, r2, include_fresh=False, include_stale=False, excludes=None):
|
||||||
|
|
||||||
include_versions = True if include_stale else False
|
include_versions = True if include_stale else False
|
||||||
|
excludes = excludes if len(excludes) else []
|
||||||
|
|
||||||
try:
|
try:
|
||||||
r1 = Requirements(r1)
|
r1 = Requirements(r1)
|
||||||
@@ -82,7 +88,7 @@ def diff(r1, r2, include_fresh=False, include_stale=False):
|
|||||||
print('There was a problem loading the given requirements files.')
|
print('There was a problem loading the given requirements files.')
|
||||||
exit(os.EX_NOINPUT)
|
exit(os.EX_NOINPUT)
|
||||||
|
|
||||||
results = r1.diff(r2, ignore_versions=True)
|
results = r1.diff(r2, ignore_versions=True, excludes=excludes)
|
||||||
|
|
||||||
if include_fresh:
|
if include_fresh:
|
||||||
for line in results['fresh']:
|
for line in results['fresh']:
|
||||||
@@ -101,7 +107,8 @@ def main():
|
|||||||
'r1': args['<reqfile1>'],
|
'r1': args['<reqfile1>'],
|
||||||
'r2': args['<reqfile2>'],
|
'r2': args['<reqfile2>'],
|
||||||
'include_fresh': args['--fresh'],
|
'include_fresh': args['--fresh'],
|
||||||
'include_stale': args['--stale']
|
'include_stale': args['--stale'],
|
||||||
|
'excludes': args['<package>']
|
||||||
}
|
}
|
||||||
|
|
||||||
diff(**kwargs)
|
diff(**kwargs)
|
||||||
@@ -109,4 +116,4 @@ def main():
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|||||||
Vendored
+7
-2
@@ -10,6 +10,10 @@ Options:
|
|||||||
import os
|
import os
|
||||||
from docopt import docopt
|
from docopt import docopt
|
||||||
from pip.req import parse_requirements
|
from pip.req import parse_requirements
|
||||||
|
from pip.index import PackageFinder
|
||||||
|
from pip._vendor.requests import session
|
||||||
|
|
||||||
|
requests = session()
|
||||||
|
|
||||||
class Requirements(object):
|
class Requirements(object):
|
||||||
def __init__(self, reqfile=None):
|
def __init__(self, reqfile=None):
|
||||||
@@ -28,7 +32,8 @@ class Requirements(object):
|
|||||||
if not os.path.exists(reqfile):
|
if not os.path.exists(reqfile):
|
||||||
raise ValueError('The given requirements file does not exist.')
|
raise ValueError('The given requirements file does not exist.')
|
||||||
|
|
||||||
for requirement in parse_requirements(reqfile):
|
finder = PackageFinder([], [], session=requests)
|
||||||
|
for requirement in parse_requirements(reqfile, finder=finder, session=requests):
|
||||||
self.requirements.append(requirement)
|
self.requirements.append(requirement)
|
||||||
|
|
||||||
|
|
||||||
@@ -73,4 +78,4 @@ def main():
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
case $(ulimit -u) in
|
||||||
|
|
||||||
|
# 1X DYNO
|
||||||
|
256)
|
||||||
|
export DYNO_RAM=512
|
||||||
|
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-2}
|
||||||
|
;;
|
||||||
|
|
||||||
|
# 2X DYNO
|
||||||
|
512)
|
||||||
|
export DYNO_RAM=1024
|
||||||
|
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-4}
|
||||||
|
;;
|
||||||
|
|
||||||
|
# IX DYNO
|
||||||
|
16384)
|
||||||
|
export DYNO_RAM=2560
|
||||||
|
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-8}
|
||||||
|
;;
|
||||||
|
|
||||||
|
# PX DYNO
|
||||||
|
32768)
|
||||||
|
export DYNO_RAM=6656
|
||||||
|
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-11}
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Reference in New Issue
Block a user