Compare commits

...

266 Commits

Author SHA1 Message Date
kennethreitz 99dae0f671 v92 2016-12-19 22:16:11 -05:00
kennethreitz f54dfff8a9 fix permission denied 2016-12-19 22:12:57 -05:00
kennethreitz c9760ae0ee fix deep-cp 2016-12-19 22:09:51 -05:00
kennethreitz 98ff1670b3 cleanup 2016-12-19 22:05:28 -05:00
kennethreitz bdd466f838 cleanup pip install steps, caching src 2016-12-19 22:04:51 -05:00
kennethreitz 324ebc9223 attempted fix 2016-12-19 18:03:13 -05:00
kennethreitz 42ec6d8701 remove extra stuff 2016-12-19 17:59:02 -05:00
kennethreitz 19513067bb Merge branch 'dash-e'
# Conflicts:
#	bin/compile
2016-12-19 17:58:02 -05:00
kennethreitz 753c912ecc changelog 2016-12-19 17:53:01 -05:00
kennethreitz 4e8c469ec7 deep copy 2016-12-19 17:50:31 -05:00
kennethreitz 852723f867 find all *.pth files for sed replacement 2016-12-19 16:58:31 -05:00
David Zuelke 94514a8179 fix egg links containing refs to /tmp 2016-12-19 22:52:46 +01:00
kennethreitz 7d57744c0a v90 2016-12-19 16:49:24 -05:00
kennethreitz a41ddf6bd1 skip set if no path-links are found 2016-12-19 16:48:30 -05:00
kennethreitz 197b7bae3f Merge branch 'egg-links' 2016-12-19 16:45:16 -05:00
kennethreitz f468739cfb v89 2016-12-19 16:45:04 -05:00
kennethreitz 555d5bd2be cp the cache 2016-12-19 16:42:33 -05:00
kennethreitz 0a4d32c8a5 cache src 2016-12-19 16:39:34 -05:00
kennethreitz 1a1cedfc21 symlink eggs 2016-12-19 16:37:03 -05:00
kennethreitz d35ee2c14c Squashed commit of the following:
commit 554a8bbae6
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:26:18 2016 -0500

    comment out debugging line

commit 6572ad3d44
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:21:03 2016 -0500

    test

commit 35cabaeebc
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:09:21 2016 -0500

    try .

commit 300285a92d
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:05:22 2016 -0500

    find

commit 7a6f1eb010
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:02:24 2016 -0500

    find

commit 66d754978e
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 15:55:04 2016 -0500

    fix xargs

commit 9c222a9350
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 15:53:04 2016 -0500

    copy src

commit 7f4273f47f
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 15:45:20 2016 -0500

    new replace script

commit dd707c21e3
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 15:40:35 2016 -0500

    re-write egg-links
2016-12-19 16:31:29 -05:00
kennethreitz 554a8bbae6 comment out debugging line 2016-12-19 16:26:18 -05:00
kennethreitz 6572ad3d44 test 2016-12-19 16:21:03 -05:00
kennethreitz 35cabaeebc try . 2016-12-19 16:09:21 -05:00
kennethreitz 300285a92d find 2016-12-19 16:05:22 -05:00
kennethreitz 7a6f1eb010 find 2016-12-19 16:02:24 -05:00
kennethreitz 66d754978e fix xargs 2016-12-19 15:55:04 -05:00
kennethreitz 9c222a9350 copy src 2016-12-19 15:53:04 -05:00
kennethreitz 7f4273f47f new replace script 2016-12-19 15:45:20 -05:00
kennethreitz dd707c21e3 re-write egg-links 2016-12-19 15:40:35 -05:00
kennethreitz 7833743f96 don't change to /app 2016-12-19 15:19:32 -05:00
kennethreitz 5a9155e311 build dir for pip 2016-12-19 15:04:57 -05:00
kennethreitz 857c47ad66 /app for pip 2016-12-19 15:02:14 -05:00
kennethreitz 87cf6073dc add note about /app/.heroku/src 2016-12-18 13:58:22 -05:00
kennethreitz 36dd089808 cleanup indentation 2016-12-18 13:57:30 -05:00
kennethreitz c58f52e06e remove purging of old virtualenvs
since old stacks aren't supported
2016-12-18 13:56:16 -05:00
kennethreitz 265a95d3b6 v88 2016-12-18 13:53:09 -05:00
kennethreitz 290c1377fb Revert "see if symlink works now"
This reverts commit 8e42040d01.
2016-12-18 13:51:03 -05:00
kennethreitz 8e42040d01 see if symlink works now 2016-12-18 13:48:48 -05:00
kennethreitz d8755e6791 be specific in pip install directory 2016-12-18 13:44:10 -05:00
kennethreitz 364a1fafd9 -e fixings 2016-12-18 13:31:22 -05:00
kennethreitz 251b7f7960 copy the -e directory instead of symlinking 2016-12-18 13:26:47 -05:00
kennethreitz 6d491f9f2b fix for -e 2016-12-18 13:16:49 -05:00
kennethreitz 7cfbce82fd remove bunk autoconf 2016-12-17 21:15:28 -05:00
kennethreitz d520ca4291 new pypys 2016-12-17 19:21:39 -05:00
kennethreitz bf252422fc attempted fix for pypy 2016-12-17 19:12:18 -05:00
kennethreitz d7874d583b move v87 notes 2016-12-17 18:59:44 -05:00
kennethreitz d32dc82e1c v87 2016-12-17 18:58:58 -05:00
kennethreitz bd048d50b5 update default python to 2.7.13 2016-12-17 18:58:51 -05:00
kennethreitz 26b2eeee20 update setuptools to v31.1.0 2016-12-17 18:58:32 -05:00
kennethreitz e527457ba3 Merge branch 'master' of heroku.com:python-builder-cedar-14 2016-12-17 18:48:19 -05:00
kennethreitz 1b7bd02bf2 Merge branch 'master' into docker-builds 2016-12-16 20:25:00 -05:00
kennethreitz de9b0b9383 v86 2016-12-16 20:24:07 -05:00
David Zülke 991f4126d7 Greatly simplify code copying (#340)
* drop duplicate mkdir for .heroku

* simplify linking and moving of python and source

* steps/python needs its own symlink setup

* fix symlink destinations for vendor and venv

* always symlink python
2016-12-16 17:13:57 -08:00
kennethreitz 076a457ad9 changes 2016-12-16 11:08:49 -05:00
kennethreitz 264f74d159 skip binaries for heroku-16 2016-12-15 16:10:37 -05:00
kennethreitz 9f89c4e744 bob-builder==0.0.5 2016-12-15 13:52:53 -05:00
kennethreitz 8d2788094b python-2.7.13 with UCS-4 2016-12-15 13:20:51 -05:00
kennethreitz e2f4fd442a dockerfile for bob-builder 2016-12-14 16:00:32 -05:00
kennethreitz 1bccc03b30 Update CHANGELOG.md 2016-11-18 15:45:17 -05:00
kennethreitz adac27fa9c Merge pull request #334 from cclauss/patch-3
Upgrade to pip-9.0.1 and setuptools-28.8.0
2016-11-15 09:39:41 -05:00
kennethreitz d1c30fd24b updated pip and setuptools 2016-11-15 09:39:29 -05:00
kennethreitz a1cfa41cb2 Merge pull request #328 from joshfriend/pypy-5.4
Add PyPy2 v5.6.0
2016-11-14 14:26:48 -05:00
cclauss 57e9bb0054 Upgrade to pip-9.0.1 and setuptools-28.8.0
This would REQUIRE that the latest versions are placed into:
https://github.com/heroku/heroku-buildpack-python/tree/master/vendor

https://pypi.python.org/pypi/pip
https://pypi.python.org/pypi/setuptools
2016-11-13 10:48:32 +01:00
Josh Friend 8e34179b1c Fix pypy2 v5.3.1 download url 2016-11-12 15:45:28 -05:00
Josh Friend c03cb26961 Add pypy2 v5.4.1 2016-11-12 15:45:28 -05:00
kennethreitz 127ff904d6 update changelog 2016-11-08 19:18:05 -05:00
kennethreitz 6c53bd1cd6 fix typo 2016-11-08 13:10:00 -05:00
kennethreitz d8307c29ba fix for requirements.txt 2016-11-02 14:24:20 -04:00
kennethreitz f526673903 no debug statement 2016-11-02 14:08:28 -04:00
kennethreitz 85f10b7d59 Merge branch 'ci' 2016-11-02 14:08:04 -04:00
kennethreitz bbbadc83e4 is /app 2016-11-02 14:06:50 -04:00
kennethreitz 9c2b033042 proper debug 2016-11-02 14:04:39 -04:00
kennethreitz e427d5111e debug 2016-11-02 14:00:07 -04:00
kennethreitz ab724138c1 another approach 2016-11-02 13:59:33 -04:00
kennethreitz e36b580615 Merge remote-tracking branch 'origin/master' 2016-11-02 13:54:53 -04:00
kennethreitz f8a1761165 export path fix 2016-11-02 11:20:09 -04:00
kennethreitz 521bb00247 export functionality 2016-11-01 13:18:53 -04:00
kennethreitz 5cd4245412 Skip copying the code if we're already in the right spot 2016-11-01 12:45:27 -04:00
kennethreitz 40daa84ccc syntax sugar and test-requirements.txt 2016-11-01 12:41:17 -04:00
kennethreitz f0ea766900 basic test-compile script 2016-11-01 12:35:25 -04:00
kennethreitz 89125df805 remove deprecated test script 2016-11-01 12:33:55 -04:00
kennethreitz 83ee7d90d7 update python3 2016-10-26 13:51:31 -04:00
kennethreitz bb87f5ed56 remove deprecated runtimes 2016-10-26 13:51:21 -04:00
kennethreitz 424e1c351d Merge branch 'master' of https://git.staging.herokudev.com/python-builder-cedar-16 2016-10-26 13:46:35 -04:00
kennethreitz 83bde7ccea Update README.md 2016-10-26 13:46:10 -04:00
kennethreitz 7fab8ce2c2 Update README.md 2016-10-26 13:44:50 -04:00
kennethreitz d4326fad0f Update README.md 2016-10-26 13:31:33 -04:00
kennethreitz a0d4da00e6 update pypy 2016-10-26 13:16:25 -04:00
kennethreitz f72c34a5dd Merge branch 'master' of https://git.staging.herokudev.com/python-builder-cedar-16 2016-10-26 12:29:59 -04:00
kennethreitz 2bc41d20b8 dummy change 2016-10-26 12:27:46 -04:00
kennethreitz 3cce589cec newline 2016-10-05 14:49:57 -04:00
kennethreitz 70758edd49 dummy procfile entry 2016-09-28 14:51:59 -04:00
kennethreitz ba7a9cd565 Update CHANGELOG.md 2016-09-16 14:23:20 -04:00
kennethreitz 37a7afbe2d Merge pull request #329 from jambonrose/add-argon2-to-cryptography-step
Add argon2 to crypotgraphy step
2016-09-16 14:22:36 -04:00
Andrew Pinkham b0138c26e6 Add argon2 to crypotgraphy step
- Add argon2-cffi
- Add django[argon2] option from Django docs:
  https://docs.djangoproject.com/en/1.10/topics/auth/passwords/#argon2-usage
2016-09-16 10:57:09 -04:00
kennethreitz d653377faf fix history 2016-08-24 16:11:23 -04:00
kennethreitz 0b87419166 changelog entry 2016-08-19 09:02:59 -04:00
kennethreitz d832b7425e update pypy formula 2016-08-19 09:02:59 -04:00
kennethreitz 2991dce623 pypi workaround 2016-08-19 09:02:59 -04:00
kennethreitz 28b67dd208 update pypy formula 2016-08-19 08:57:19 -04:00
kennethreitz 24f73fbc2d pypi workaround 2016-08-19 08:54:24 -04:00
Troels Thomsen ffd0bb57ee Revert "Merge branch 'apt'"
This reverts commit 75870dd412, reversing
changes made to 0cf2e2849d.
2016-08-17 11:19:11 +02:00
kennethreitz 75870dd412 Merge branch 'apt' 2016-08-17 02:07:01 -04:00
kennethreitz 831d73e302 cleanup debugging 2016-08-17 02:06:36 -04:00
kennethreitz 0cf2e2849d updated setuptools vendor 2016-08-17 02:01:39 -04:00
kennethreitz 6ba8d47927 Merge pull request #323 from cclauss/patch-2
Update setuptools
2016-08-17 02:01:16 -04:00
kennethreitz af940b5390 v81 2016-08-17 02:00:49 -04:00
kennethreitz 819bc2da5b Merge pull request #326 from tvuotila/hotfix/preserve-environment-variables
Preserve environment variables
2016-08-17 01:59:55 -04:00
Tero Vuotila 2dad2e73f3 Preserve environment variables
Preserve LIBRARY_PATH and LD_LIBRARY_PATH.
Related heroku/heroku-buildpack-python#287
2016-08-16 10:34:49 +03:00
cclauss e550b32ea8 setuptools v25.2.0 2016-08-13 09:28:17 +02:00
cclauss 6af8d81086 Update setuptools
Update setuptools from 23.x.x to 25.x.x.
2016-08-09 18:42:46 +02:00
kennethreitz 0ed4089cb9 Merge pull request #308 from edmorley/fix-pip8-support
Switch pip-pop back to using pip 8
2016-08-02 20:54:16 -04:00
kennethreitz f09191ec8b Merge pull request #319 from edmorley/library-vendoring-cleanup
Fixes to the library vendoring's 'already exists' checks
2016-08-02 20:04:28 -04:00
Ed Morley aef7b65b95 Don't skip the geo-libs vendoring step if only gdalserver present
Since if someone previously had `GDAL` in their requirements file, they
would already have the gdalserver binary present from `bin/steps/gdal`
but be missing the proj and geos vendor files. By checking for `proj`
instead, we ensure that the vendoring isn't incorrectly skipped in this
case.
2016-08-02 14:28:24 +01:00
Ed Morley 5438aab121 Make libffi vendoring check for existing directory in correct location
For both the cedar and cedar-14 stacks, the libffi directory is named
`libffi-3.1` not `libffi-3.1.1`, so the existing library wouldn't be
detected, causing it to be re-downloaded during every compile.
2016-08-02 14:28:19 +01:00
Ed Morley a259143c0b Avoid repetition of vendor library environment variable setting
Since we need to set it regardless of whether the vendored library
existed previously or not.
2016-08-02 14:13:20 +01:00
Ed Morley 0896d6a0c4 Fix files without blank newline 2016-08-02 14:12:31 +01:00
Ed Morley 39f2efe296 Remove vendored pip since pip-pop is now compatible with pip v8
This means pip-pop will use the buildpack-installed pip 8, which doesn't
fail when encountering requirements files that use the new hash syntax.

Fixes #302.
2016-07-11 10:48:49 +01:00
Ed Morley d047f26ad4 Import upstream pip-pop fix for pip 8 support
Is the fix from kennethreitz/pip-pop#12.
2016-07-11 10:48:49 +01:00
kennethreitz 998f996a32 proper setuptools version 2016-06-28 14:44:45 -04:00
kennethreitz c620980e5a Merge pull request #313 from cclauss/Python-3.5.2
Add Python 2.7.12, Python 3.5.2, Pypy 5.3.1, Pip 8.1.2, Setuptools 23.1.0 and remove release candidate
2016-06-28 14:43:10 -04:00
cclauss 2983fcfbea Update README.md to current versions of Python 2, Python 3, Pypy, and Requests 2016-06-28 11:27:53 +02:00
cclauss e3511e7202 Update and rename pypy-5.3.0 to pypy-5.3.1 2016-06-28 11:17:37 +02:00
cclauss 692f040618 Update default Python plus Pip and Setuptools
* $ curl
https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb0
3c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz -o pip-8.1.2.tar.gz
* $ curl
https://pypi.python.org/packages/9f/7c/0a33c528164f1b7ff8cf0684cf88c2e73
3c8ae0119ceca4a3955c7fc059d/setuptools-23.1.0.tar.gz -o
setuptools-23.1.0.tar.gz
* $ ls
* $ rm pip-8.1.1.tar.gz
* $ rm setuptools-20.4.tar.gz
2016-06-28 10:56:09 +02:00
cclauss 8645a965aa Add Python 2.7.12 and remove the release candidate 2016-06-28 09:07:38 +02:00
cclauss 3a483865e8 Python 3.5.2
https://www.python.org/downloads/release/python-352/
2016-06-27 06:36:44 +02:00
kennethreitz 6ea6a0ccaf debug 2016-06-24 15:51:28 -04:00
kennethreitz 6bc94eaf6e dont unset library path 2016-06-24 15:46:27 -04:00
kennethreitz 49e409cb64 try soft links 2016-06-24 15:42:55 -04:00
kennethreitz 2693de45c7 attempt to ln 2016-06-24 15:40:57 -04:00
kennethreitz 88f711b6e7 before sanitization 2016-06-24 15:24:31 -04:00
kennethreitz a7976fc177 Merge remote-tracking branch 'origin/master' 2016-06-24 15:18:09 -04:00
cclauss 8a837a23e7 Back to rc11 2016-06-20 23:56:41 +02:00
cclauss f37597ad9d Runtimes: Added pypy-5.3.0, mv python-2.7.11rc1 python-2.7.12rc1
Runtimes:
* Added pypy-5.3.0
* Moved python-2.7.11rc1 to python-2.7.12rc1
2016-06-16 19:32:22 +02:00
kennethreitz 928a664544 yes 2016-06-15 04:35:28 -04:00
kennethreitz 9fb715ef1c no 2016-06-15 04:33:01 -04:00
kennethreitz 3cff2e39fe Merge pull request #298 from whit537/preen-pip-grep
clean up pip-grep in the `not silent` case
2016-06-10 12:58:57 -07:00
kennethreitz 653a5be104 Merge pull request #297 from whit537/comment
remove Pylibmc reference in cryptography comment
2016-06-10 12:56:34 -07:00
kennethreitz 67ade52e95 Merge pull request #304 from tt/use-travis
Use Travis
2016-06-10 12:40:27 -07:00
Troels Thomsen ab3e365ff6 Show build status in readme 2016-05-25 10:37:34 +02:00
Troels Thomsen 902672e934 Add Travis configuration 2016-05-25 10:37:25 +02:00
Troels Thomsen 6207b3506b Rename readme file 2016-05-25 10:37:03 +02:00
kennethreitz 5446d448fd Merge pull request #301 from alex/patch-1
Added another package that relies on cffi
2016-05-13 13:25:49 -04:00
Alex Gaynor 366def6c16 Added another package that relies on cffi 2016-05-13 13:17:03 -04:00
Chad Whitacre a84fc7a248 clean up pip-pop in the not silent case
The extraneous `format` call is harmless in itself, but it's possible for `requirement.req` to be `None` here, which results in `AttributeError: 'NoneType' object has no attribute 'project_name'`.
2016-05-10 07:31:25 -04:00
Chad Whitacre e4aa40216b remove Pylibmc reference in cryptography comment 2016-05-10 07:12:55 -04:00
kennethreitz 87d03e62d7 Merge branch 'master' of heroku.com:python-builder-cedar-14 2016-05-05 16:32:09 -04:00
kennethreitz 92b4f5e8aa pypy v5.1.0 v5.1.1 2016-05-05 16:31:25 -04:00
kennethreitz 19cd447b83 Merge pull request #296 from edmorley/libffi-PyNaCl
Add PyNaCl to the list of packages that trigger libffi bootstrapping
2016-04-21 16:26:03 -04:00
Ed Morley 570182b6b7 Add PyNaCl to the list of packages that trigger libffi bootstrapping
To reduce confusion for users who have not explicitly listed cffi as a
dependency.

Fixes #142.
2016-04-21 10:37:45 +01:00
kennethreitz 0a6ed0de43 v80 2016-04-05 17:10:49 -04:00
kennethreitz 0b7a1fc14e use older pip for pip-pop 2016-03-31 18:08:49 -04:00
kennethreitz 2c69e3b98f setuptools v20.4 2016-03-30 18:20:04 -04:00
kennethreitz 86f43fa02a v79 2016-03-22 19:41:02 -04:00
kennethreitz 03b95247c3 chmod +x (grr) 2016-03-22 19:39:48 -04:00
kennethreitz 0e8a11b836 Update Readme.md 2016-03-22 19:36:40 -04:00
kennethreitz 4c9de740d2 chmod +x (grr) 2016-03-22 19:26:58 -04:00
kennethreitz 9b45baa41c pypy-5.0.0 2016-03-22 19:22:49 -04:00
kennethreitz ecfaeb2fd2 Merge pull request #288 from joshfriend/pypy
Add PyPy 5.0.1
2016-03-22 19:21:56 -04:00
kennethreitz cef0b1703a Merge pull request #287 from ABASystems/master
Keep pre-existing environment variables.
2016-03-22 19:19:37 -04:00
Josh Friend 18317ef606 Add pypy-5.0.1 2016-03-21 08:28:25 -04:00
Luke Hodkinson 4896396a51 Removing debugging calls. 2016-03-21 18:29:07 +11:00
Luke Hodkinson be4f207aac Print out all the information as we install. 2016-03-21 18:19:49 +11:00
Luke Hodkinson af15be61b8 Don't stomp on pre-existing environment values, in particular the
`PKG_CONFIG_PATH` variable.
2016-03-21 17:26:51 +11:00
kennethreitz 39d64c5fd1 updated changelog 2016-03-17 23:41:14 -04:00
kennethreitz 645cf5e338 updated stuptools 2016-03-17 23:41:09 -04:00
kennethreitz 7430c48b72 pip v8.1.1 2016-03-17 23:18:54 -04:00
kennethreitz 783d9e4b12 no shared for python-3.5.1 2016-03-15 14:22:31 -04:00
kennethreitz eab957c8c9 BUILD_WITH_GEO_LIBRARIES 2016-03-11 14:58:33 -05:00
kennethreitz 6e80c391a8 Merge pull request #284 from edmorley/update-pip-setuptools
Update pip and setuptools
2016-03-11 14:53:37 -05:00
kennethreitz 58bae65a28 Merge pull request #285 from heroku/mattgraham-patch-2
Update buildpack image to align with marketing
2016-03-11 14:53:22 -05:00
Matt Graham 70d8c7a625 Update Readme.md 2016-03-11 14:15:41 -05:00
Ed Morley 66611ca21a Update setuptools to 20.2.2
https://pythonhosted.org/setuptools/history.html
https://bitbucket.org/pypa/setuptools/branches/compare/20.2.2%0D19.6

The release on PyPI isn't signed, though the MD5 of this archive matches
that on the PyPI package page:

$ md5sum setuptools-20.2.2.tar.gz
bf37191cb4c1472fb61e6f933d2006b1 *setuptools-20.2.2.tar.gz
2016-03-08 14:34:29 +00:00
Ed Morley 20fe371ac7 Update pip to 8.1.0
https://pip.pypa.io/en/stable/news/
https://github.com/pypa/pip/compare/8.0.2...8.1.0

Archive verified via:
https://pypi.python.org/packages/source/p/pip/pip-8.1.0.tar.gz.asc

And Donald's key from:
https://pypi.python.org/security

$ gpg --verify pip-8.1.0.tar.gz.asc pip-8.1.0.tar.gz
gpg: Signature made Sat, Mar  5, 2016  4:57:30 PM GMT using RSA key ID 3372DCFA
gpg: Good signature from "Donald Stufft (dstufft) <donald@stufft.io>"
gpg:                 aka "Donald Stufft (dstufft) <donald@python.org>"
...
Primary key fingerprint: 7C6B 7C5D 5E2B 6356 A926  F04F 6E3C BCE9 3372 DCFA
2016-03-08 14:34:28 +00:00
Ed Morley d23143b801 Update changelog for unreleased changes since v77
https://github.com/heroku/heroku-buildpack-python/compare/v77...c98615cdd00f7525e98524a40a59cf18d7f7a0b6
2016-03-08 14:34:18 +00:00
kennethreitz c98615cdd0 pygdal 2016-03-04 14:37:21 -05:00
kennethreitz 0749a04773 flexible caps for gdal 2016-03-04 14:18:25 -05:00
kennethreitz a4f072714d vendored geos and proj steps for GDAL 2016-03-04 14:14:41 -05:00
kennethreitz 427ec9e431 first attempt at geos build 2016-03-02 18:55:33 -05:00
kennethreitz 168939d14f first attempt at proj build 2016-03-02 18:55:33 -05:00
kennethreitz 58ecbd8a73 updated gdal version 2016-03-02 18:55:33 -05:00
kennethreitz 10eb361975 remove bunk libffi file 2016-03-02 18:55:33 -05:00
kennethreitz 1242d71382 Merge pull request #281 from edmorley/typos-and-cleanup
Correct typos and non-canonical/HTTPS URLs
2016-02-29 14:02:48 -05:00
Ed Morley 6ef93693c5 Use the shorthand buildpack notation in the README example
https://devcenter.heroku.com/articles/buildpacks#officially-supported-buildpacks
2016-02-29 18:30:47 +00:00
Ed Morley 69b8b25322 Use the canonical (and HTTPS) URLs for devcenter and pip
To save the 301s.
2016-02-29 18:28:23 +00:00
Ed Morley b706cd13f7 Fix README and script comment typos 2016-02-29 18:00:46 +00:00
kennethreitz 724e51b5c7 2016 2016-02-25 15:13:33 -05:00
kennethreitz 7b4835a98e Fix CACHED_PYTHON_STACK workflow; update default stack to cedar-14 2016-02-25 14:45:50 -05:00
kennethreitz 477773b331 Merge pull request #278 from jambonrose/issue_277
Fix #277 - Install libffi with django[bcrypt] req.
2016-02-23 11:28:50 -05:00
Andrew Pinkham c98c481f24 Fix #277 - Install libffi with django[bcrypt] req.
This ensures that libffi, required by bcrypt, is installed when Django
is installed with the bcrypt dependency declared as an extra
(django[bcrypt] or Django[bcrypt]).
2016-02-23 09:59:49 -05:00
kennethreitz 462fe074f9 Update Readme.md 2016-02-19 16:03:46 -05:00
kennethreitz 70bfc5eab3 Update Readme.md 2016-02-19 16:02:03 -05:00
kennethreitz a4d2592438 Update Readme.md 2016-02-19 16:01:39 -05:00
kennethreitz 8306f84236 Update Readme.md 2016-02-19 16:01:10 -05:00
kennethreitz 6952a2e728 Update Readme.md 2016-02-19 15:59:06 -05:00
kennethreitz 7142c747f4 Update Readme.md 2016-02-19 15:55:58 -05:00
kennethreitz 11db8e126a Update Readme.md 2016-02-19 15:54:33 -05:00
kennethreitz 6f1fce3cdb Update Readme.md 2016-02-19 15:54:03 -05:00
kennethreitz b2e12f9ec8 Update Readme.md 2016-02-19 15:52:59 -05:00
kennethreitz 44f8e393d6 Update Readme.md 2016-02-19 15:49:13 -05:00
kennethreitz b8cbc64d20 Update Readme.md 2016-02-19 15:46:56 -05:00
kennethreitz 5d51be5679 Update Readme.md 2016-02-19 15:43:01 -05:00
kennethreitz d550b8cd15 Update Readme.md 2016-02-19 15:42:18 -05:00
kennethreitz 25b28af19d Update Readme.md 2016-02-19 15:39:05 -05:00
kennethreitz dbe2cdac37 Update Readme.md 2016-02-19 15:38:31 -05:00
kennethreitz 767af30453 Update Readme.md 2016-02-19 15:27:02 -05:00
kennethreitz df02e34a5b Merge pull request #276 from heroku/mattgraham-patch-1
Correct buildpack featured image
2016-02-17 17:02:58 -05:00
Matt Graham 26c918863e Fix for Issue #275
Closes #275
2016-02-17 11:28:06 -05:00
kennethreitz 1c458cee2e Merge pull request #274 from alex/patch-1
Fixed some broken comments
2016-02-16 08:25:01 -05:00
Alex Gaynor 433570c27b Fixed some broken comments 2016-02-16 08:17:11 -05:00
kennethreitz 30cb4ecef3 Update Readme.md 2016-02-12 19:43:33 -05:00
kennethreitz 84e2a51337 support for FORWARDED_ALLOW_IPS='*' 2016-02-12 18:36:10 -05:00
kennethreitz f1c2bc39d2 Update Readme.md 2016-02-10 22:42:17 -05:00
kennethreitz ad53dc61f0 Improvements to warnings and minor bugfix. 2016-02-10 15:51:46 -05:00
kennethreitz 8598296756 updated changelog 2016-02-08 23:34:04 -05:00
kennethreitz f5ef10326e nicer warnings 2016-02-08 23:31:23 -05:00
kennethreitz 16ec3c8325 cleanup pip freeze 2016-02-08 23:28:13 -05:00
kennethreitz 49676e12af . 2016-02-08 23:12:59 -05:00
kennethreitz 0aa123995b cleanup cleanup 2016-02-08 23:09:47 -05:00
kennethreitz cd4d811d4f wait 2016-02-08 22:52:09 -05:00
kennethreitz 76ebf9279b maybe this will help 2016-02-08 22:25:28 -05:00
kennethreitz 3c3e621040 Revert "Revert "Revert "debug"""
This reverts commit 72710696a0.
2016-02-08 22:12:29 -05:00
kennethreitz 40e91ffa67 debug 2016-02-08 22:10:52 -05:00
kennethreitz 72710696a0 Revert "Revert "debug""
This reverts commit d27228999d.
2016-02-08 22:08:50 -05:00
kennethreitz d27228999d Revert "debug"
This reverts commit a4e8ba3cdf.
2016-02-08 22:00:23 -05:00
kennethreitz a4e8ba3cdf debug 2016-02-08 21:59:55 -05:00
kennethreitz e27b5656fd InsecurePlatformWarning 2016-02-08 21:38:14 -05:00
kennethreitz f132d3198a remove debug 2016-02-08 21:33:22 -05:00
kennethreitz 6afd6bbce9 debug 2016-02-08 21:29:40 -05:00
kennethreitz 6fa14b55d3 let's try this 2016-02-08 21:18:23 -05:00
kennethreitz 8f4eb44d36 capture stderr of pip-install too 2016-02-08 21:12:41 -05:00
kennethreitz 67f4c4238a further output improvement 2016-02-08 21:07:07 -05:00
kennethreitz ffb89feb0d improvements to buildpack output 2016-02-08 20:59:03 -05:00
kennethreitz 45b00e32a7 warn for pip's SNIMissingWarning 2016-02-08 20:53:04 -05:00
kennethreitz 90edd88b22 cleanup collectstatic stuff, before release 2016-02-08 20:30:39 -05:00
kennethreitz 2533cc68c1 correct date on changelog 2016-02-08 19:46:00 -05:00
kennethreitz a11a765b93 v76 2016-02-08 19:36:03 -05:00
kennethreitz 6505f98bae cleanup 2016-02-05 01:07:05 -05:00
kennethreitz eb3e7851f7 compile comments 2016-02-05 01:04:31 -05:00
kennethreitz 78b6142d18 suppress ManifestStaticFilesStorage
Thanks, #11
2016-02-05 00:06:38 -05:00
kennethreitz af58f322e2 Merge branch 'master' of github.com:heroku/heroku-buildpack-python 2016-02-05 00:05:01 -05:00
kennethreitz e4bcc68c9a make collectstatic less spammy for ManifestStaticFilesStorage
From issue #11
2016-02-05 00:04:08 -05:00
kennethreitz 9a024b8595 Update Readme.md 2016-02-05 00:01:36 -05:00
kennethreitz 581177b219 Merge pull request #273 from heroku/collectstatic
Collectstatic revamp
2016-02-04 23:59:52 -05:00
kennethreitz 669f0b0e2a unset extra environment variables 2016-02-04 23:56:29 -05:00
kennethreitz e5ac89c4df indent env output 2016-02-04 23:56:18 -05:00
kennethreitz 1e8ad56b0f sed debug 2016-02-04 23:43:30 -05:00
kennethreitz b6607f0f42 debug 2016-02-04 23:37:44 -05:00
kennethreitz 8615bf5272 debug 2016-02-04 23:36:19 -05:00
kennethreitz 7f475977b5 debugging 2016-02-04 23:35:13 -05:00
kennethreitz 53eee452eb --traceback 2016-02-04 23:33:59 -05:00
kennethreitz 031c9d576f cleanup output 2016-02-04 23:32:45 -05:00
kennethreitz b0568b5f90 PIPESTATUS 2016-02-04 23:25:41 -05:00
kennethreitz 359a3b0d61 collectstatic improvements. 2016-02-04 23:20:40 -05:00
kennethreitz d46e0efc16 sub-env now has a few python variables, just in case. 2016-02-04 23:05:56 -05:00
kennethreitz b97a104ad6 better messaging 2016-02-04 23:05:38 -05:00
kennethreitz a2ee94a8fb first pass at new collectstatic logic 2016-02-04 22:02:24 -05:00
kennethreitz 3b35c2c296 Merge pull request #262 from cclauss/pypy-4.0.1
pypy 4.0.1
2016-01-26 18:50:22 -05:00
kennethreitz 97834d305a v75 2016-01-26 16:57:54 -05:00
kennethreitz 86a53e6479 also exclude wheel from uninstalls 2016-01-26 16:52:11 -05:00
kennethreitz 8c746e3e17 no more --allow-all-external 2016-01-26 16:51:59 -05:00
kennethreitz b1d1a7cca5 update pip/setuptools 2016-01-26 16:51:44 -05:00
kennethreitz f172a83d48 Update release 2016-01-18 13:48:20 -05:00
cclauss e4fee65430 Remove readme changes 2015-12-18 00:59:56 +01:00
cclauss 2a6053ec2c pypy-4.0.1
http://morepypy.blogspot.com
2015-11-29 16:23:12 +01:00
cclauss 86e0e29a41 Merge remote-tracking branch 'heroku/master' into pypy-4.0.1 2015-11-29 16:19:36 +01:00
111 changed files with 507 additions and 1526 deletions
+2
View File
@@ -0,0 +1,2 @@
sudo: false
script: exit 0
+102
View File
@@ -1,5 +1,107 @@
# Python Buildpack Changelog # Python Buildpack Changelog
## v92
Improved cache functionality and fix egg-links regression.
## v91
Bugfix, rolled back to v88.
## v90
Bugfix.
## v89
Improved cache functionality and fix egg-links regression.
## v88
Fixed bug with editable pip installations.
## v87
Updated default Python 2.7.13.
- Python 2.7.13 uses UCS-4 build, more compatibile with linux wheels.
- Updated setuptools to v32.1.0.
## v86
Refactor and multi-buildpack compatibility.
## v85
Packaging fix.
## v84
Updated pip and setuptools.
- Updated pip to v9.0.1.
- Updated setuptools to v28.8.0.
## v83
Support for Heroku CI.
- Cffi support for argon2
## v82 (2016-08-22)
Update to library detection mechnisms (pip-pop).
- Updated setuptools to v25.5.0
## v81 (2016-06-28)
Updated default Python to 2.7.11.
- Updated pip to v8.1.2.
- Updated setuptools to v23.1.0.
## v80 (2016-04-05)
Improved pip-pop compatibility with latest pip releases.
## v79 (2016-03-22)
Compatibility improvements with heroku-apt-buildpack.
## v78 (2016-03-18)
Added automatic configuration of Gunicorn's `FORWARDED_ALLOW_IPS` setting.
Improved detection of libffi dependency when using bcrypt via `Django[bcrypt]`.
Improved GDAL support.
- GDAL dependency detection now checks for pygdal and is case-insensitive.
- The vendored GDAL library has been updated to 1.11.1.
- GDAL bootstrapping now also installs the GEOS and Proj.4 libraries.
Updated pip to 8.1.1 and setuptools to 20.3.
## v77 (2016-02-10)
Improvements to warnings and minor bugfix.
## v76 (2016-02-08)
Improved Django collectstatic support.
- `$ python manage.py collectstatic` will only be run if `Django` is present in `requirements.txt`.
- If collectstatic fails, the build fails. Full traceback is provided.
- `$DISABLE_COLLECTSTATIC`: skip collectstatic step completely (not new).
- `$DEBUG_COLLECTSTATIC`: echo environment variables upon collectstatic failure.
- Updated build output style.
- New warning for outdated Python (via pip `InsecurePlatform` warning).
## v75 (2016-01-29)
Updated pip and Setuptools.
## v74 (2015-12-29) ## v74 (2015-12-29)
Added warnings for lack of Procfile. Added warnings for lack of Procfile.
+11
View File
@@ -0,0 +1,11 @@
FROM heroku/heroku:16-build
WORKDIR /app
ENV WORKSPACE_DIR=/app/builds
RUN apt-get update && apt-get install -y python-pip
# Install bob-builder application
RUN pip install bob-builder==0.0.5
COPY . /app
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License: MIT License:
Copyright (C) 2013 Heroku, Inc. Copyright (C) 2016 Heroku, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+54
View File
@@ -0,0 +1,54 @@
![python](https://cloud.githubusercontent.com/assets/51578/13712821/b68a42ce-e793-11e5-96b0-d8eb978137ba.png)
# Heroku Buildpack: Python
This is the official [Heroku buildpack](https://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](https://pip.pypa.io/) and other excellent software.
Recommended web frameworks include **Django** and **Flask**. The recommended webserver is **Gunicorn**. There are no restrictions around what software can be used (as long as it's pip-installable). Web processes must bind to `$PORT`, and only the HTTP protocol is permitted for incoming connections.
Some Python packages with obscure C dependencies (e.g. scipy) are [not compatible](https://devcenter.heroku.com/articles/python-c-deps).
See it in Action
----------------
Deploying a Python application couldn't be easier:
$ ls
Procfile requirements.txt web.py
$ heroku create --buildpack heroku/python
$ git push heroku master
...
-----> Python app detected
-----> Installing python-2.7.12
$ pip install -r requirements.txt
Collecting requests (from -r requirements.txt (line 1))
Downloading requests-2.10.0-py2.py3-none-any.whl (501kB)
Installing collected packages: requests
Successfully installed requests-2.10.0
-----> Discovering process types
Procfile declares types -> (none)
A `requirements.txt` file must be present at the root of your application's repository.
You can also specify the latest production release of this buildpack for upcoming builds of an existing application:
$ heroku buildpacks:set heroku/python
Specify a Python Runtime
------------------------
Specific versions of the Python runtime can be specified with a `runtime.txt` file:
$ cat runtime.txt
python-3.5.2
Runtime options include:
- `python-2.7.12`
- `python-3.5.2`
- `pypy-5.3.1` (unsupported, experimental)
- `pypy3-2.4.0` (unsupported, experimental)
-54
View File
@@ -1,54 +0,0 @@
# Heroku buildpack: Python
![python-banner](https://cloud.githubusercontent.com/assets/51578/8914205/ecf2047c-346b-11e5-98c5-42547f9f4410.jpg)
This is a [Heroku buildpack](http://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](http://www.pip-installer.org/).
This buildpack supports running Django and Flask apps.
Usage
-----
Example usage:
$ ls
Procfile requirements.txt web.py
$ heroku create --buildpack git://github.com/heroku/heroku-buildpack-python.git
$ git push heroku master
...
-----> Python app detected
-----> Installing runtime (python-2.7.11)
-----> Installing dependencies using pip
Downloading/unpacking requests (from -r requirements.txt (line 1))
Installing collected packages: requests
Successfully installed requests
Cleaning up...
-----> Discovering process types
Procfile declares types -> (none)
You can also add it to upcoming builds of an existing application:
$ 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.
It will use Pip to install your dependencies, vendoring a copy of the Python runtime into your slug.
Specify a Runtime
-----------------
You can also provide arbitrary releases Python with a `runtime.txt` file.
$ cat runtime.txt
python-3.5.0
Runtime options include:
- python-2.7.11
- python-3.5.1
- pypy-4.0.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.
+61 -75
View File
@@ -1,5 +1,13 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# The Heroku Python Buildpack. This script accepts parameters for a build
# directory, a cache directory, and a directory for app environment variables.
# Warning: there are a few hacks in this script to accommodate excellent builds
# on Heroku. No guarantee for external compatibility is made. However,
# everything should work fine outside of the Heroku environment, if the
# environment is setup correctly.
# Usage: # Usage:
# #
# $ bin/compile <build-dir> <cache-dir> <env-path> # $ bin/compile <build-dir> <cache-dir> <env-path>
@@ -23,14 +31,15 @@ ENV_DIR=$3
VIRTUALENV_LOC=".heroku/venv" VIRTUALENV_LOC=".heroku/venv"
LEGACY_TRIGGER="lib/python2.7" LEGACY_TRIGGER="lib/python2.7"
DEFAULT_PYTHON_VERSION="python-2.7.11" DEFAULT_PYTHON_VERSION="python-2.7.13"
DEFAULT_PYTHON_STACK="cedar" DEFAULT_PYTHON_STACK="cedar-14"
PYTHON_EXE="/app/.heroku/python/bin/python" PYTHON_EXE="/app/.heroku/python/bin/python"
PIP_VERSION="7.1.2" PIP_VERSION="9.0.1"
SETUPTOOLS_VERSION="18.7.1" SETUPTOOLS_VERSION="32.1.0"
# Common Problem Warnings # Common Problem Warnings
export WARNINGS_LOG=$(mktemp) export WARNINGS_LOG=$(mktemp)
export RECOMMENDED_PYTHON_VERSION=$DEFAULT_PYTHON_VERSION
# Setup bpwatch # Setup bpwatch
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
@@ -47,11 +56,13 @@ export PATH=$PATH:$ROOT_DIR/vendor/pip-pop
[ ! "$STACK" ] && STACK=$DEFAULT_PYTHON_STACK [ ! "$STACK" ] && STACK=$DEFAULT_PYTHON_STACK
# Sanitizing environment variables. # Sanitizing environment variables.
unset GIT_DIR PYTHONHOME PYTHONPATH LD_LIBRARY_PATH LIBRARY_PATH unset GIT_DIR PYTHONHOME PYTHONPATH
unset RECEIVE_DATA RUN_KEY BUILD_INFO DEPLOY LOG_TOKEN DYNO
unset CYTOKINE_LOG_FILE GEM_PATH
# Setup buildpack instrumentation.
bpwatch init $LOGPLEX_KEY bpwatch init $LOGPLEX_KEY
bpwatch build python $BUILDPACK_VERSION $REQUEST_ID bpwatch build python $BUILDPACK_VERSION $REQUEST_ID
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
bpwatch start compile bpwatch start compile
@@ -61,50 +72,26 @@ source $BIN_DIR/utils
# Import collection of warnings. # Import collection of warnings.
source $BIN_DIR/warnings source $BIN_DIR/warnings
# Directory Hacks for path consistiency. # we need to put a bunch of symlinks in there later
APP_DIR='/app' mkdir -p /app/.heroku
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
# Skip these steps for Docker.
if [[ ! "$DOCKER_BUILD" ]]; then
# Copy Anvil app dir to temporary storage...
bpwatch start anvil_appdir_stage
if [ "$SLUG_ID" ]; then
mkdir -p $TMP_APP_DIR
deep-mv $APP_DIR $TMP_APP_DIR
else
deep-rm $APP_DIR
fi
bpwatch stop anvil_appdir_stage
# Copy Application code in.
bpwatch start appdir_stage
deep-cp $BUILD_DIR $APP_DIR
bpwatch stop appdir_stage
fi
# Set new context.
ORIG_BUILD_DIR=$BUILD_DIR
BUILD_DIR=$APP_DIR
# Set up outputs under new context # Set up outputs under new context
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh" PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
WEBCONCURRENCY_PROFILE_PATH="$BUILD_DIR/.profile.d/python.webconcurrency.sh" EXPORT_PATH="$BIN_DIR/../export"
GUNICORN_PROFILE_PATH="$BUILD_DIR/.profile.d/python.gunicorn.sh"
# We'll need to send these statics to other scripts we `source`. # We'll need to send these statics to other scripts we `source`.
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH EXPORT_PATH
# Prepend proper path buildpack use. # Prepend proper environment variables for Python use.
export PATH=$BUILD_DIR/.heroku/python/bin:$BUILD_DIR/.heroku/vendor/bin:$PATH export PATH=/app/.heroku/python/bin:/app/.heroku/vendor/bin:$PATH
export PYTHONUNBUFFERED=1 export PYTHONUNBUFFERED=1
export LANG=en_US.UTF-8 export LANG=en_US.UTF-8
export C_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include export C_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include export CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib export LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib export LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:$BUILD_DIR/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config export PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config:$PKG_CONFIG_PATH
# Switch to the repo's context. # Switch to the repo's context.
cd $BUILD_DIR cd $BUILD_DIR
@@ -120,7 +107,7 @@ bpwatch start pre_compile
source $BIN_DIR/steps/hooks/pre_compile source $BIN_DIR/steps/hooks/pre_compile
bpwatch stop pre_compile bpwatch stop pre_compile
# If no requirements given, assume `setup.py develop`. # If no requirements.txt file given, assume `setup.py develop` is intended.
if [ ! -f requirements.txt ]; then if [ ! -f requirements.txt ]; then
echo "-e ." > requirements.txt echo "-e ." > requirements.txt
fi fi
@@ -135,7 +122,7 @@ fi
if [ -f $CACHE_DIR/.heroku/python-stack ]; then if [ -f $CACHE_DIR/.heroku/python-stack ]; then
CACHED_PYTHON_STACK=$(cat $CACHE_DIR/.heroku/python-stack) CACHED_PYTHON_STACK=$(cat $CACHE_DIR/.heroku/python-stack)
else else
CACHED_PYTHON_STACK=$DEFAULT_PYTHON_STACK CACHED_PYTHON_STACK=$STACK
fi fi
# If no runtime given, assume default version. # If no runtime given, assume default version.
@@ -143,7 +130,7 @@ if [ ! -f runtime.txt ]; then
echo $DEFAULT_PYTHON_VERSION > runtime.txt echo $DEFAULT_PYTHON_VERSION > runtime.txt
fi fi
# ### The Cache # Prepare the cache.
mkdir -p $CACHE_DIR mkdir -p $CACHE_DIR
# Purge "old-style" virtualenvs. # Purge "old-style" virtualenvs.
@@ -161,15 +148,23 @@ bpwatch start restore_cache
cp -R $CACHE_DIR/.heroku/python-version .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/vendor .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/venv .heroku/ &> /dev/null || true cp -R $CACHE_DIR/.heroku/venv .heroku/ &> /dev/null || true
if [[ -d $CACHE_DIR/.heroku/src ]]; then
cp -R $CACHE_DIR/.heroku/src .heroku/ &> /dev/null || true
fi
bpwatch stop restore_cache bpwatch stop restore_cache
set +e
# Create set-aside `.heroku` folder.
mkdir .heroku &> /dev/null
set -e
mkdir -p $(dirname $PROFILE_PATH) mkdir -p $(dirname $PROFILE_PATH)
mkdir -p /app/.heroku/src
if [[ $BUILD_DIR != '/app' ]]; then
# python expects to reside in /app, so set up symlinks
# we will not remove these later so subsequent buildpacks can still invoke it
ln -s $BUILD_DIR/.heroku/python /app/.heroku/python
ln -s $BUILD_DIR/.heroku/vendor /app/.heroku/vendor
ln -s $BUILD_DIR/.heroku/venv /app/.heroku/venv
# Note: .heroku/src is copied in later.
fi
# Install Python. # Install Python.
source $BIN_DIR/steps/python source $BIN_DIR/steps/python
@@ -189,20 +184,19 @@ source $BIN_DIR/steps/pylibmc
# Libffi support. # Libffi support.
source $BIN_DIR/steps/cryptography source $BIN_DIR/steps/cryptography
# Support for Geo libraries.
sub-env $BIN_DIR/steps/geo-libs
# GDAL support. # GDAL support.
source $BIN_DIR/steps/gdal source $BIN_DIR/steps/gdal
# Install dependencies with Pip. # Install dependencies with Pip (where the magic happens).
source $BIN_DIR/steps/pip-install source $BIN_DIR/steps/pip-install
# Django collectstatic support. # Django collectstatic support.
sub-env $BIN_DIR/steps/collectstatic sub-env $BIN_DIR/steps/collectstatic
# Create .profile script for application runtime environment variables.
# ### Finalize
#
# Set context environment variables.
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
@@ -212,9 +206,12 @@ 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. # Install sane-default script for $WEB_CONCURRENCY and $FORWARDED_ALLOW_IPS.
cp $ROOT_DIR/vendor/python.webconcurrency.sh $WEBCONCURRENCY_PROFILE_PATH cp $ROOT_DIR/vendor/python.gunicorn.sh $GUNICORN_PROFILE_PATH
# Support for pip install -e.
rm -fr $BUILD_DIR/.heroku/src
deep-cp /app/.heroku/src $BUILD_DIR/.heroku/src
# Experimental post_compile hook. # Experimental post_compile hook.
bpwatch start post_compile bpwatch start post_compile
@@ -229,6 +226,7 @@ bpwatch start dump_cache
rm -rf $CACHE_DIR/.heroku/python-stack rm -rf $CACHE_DIR/.heroku/python-stack
rm -rf $CACHE_DIR/.heroku/vendor rm -rf $CACHE_DIR/.heroku/vendor
rm -rf $CACHE_DIR/.heroku/venv rm -rf $CACHE_DIR/.heroku/venv
rm -rf $CACHE_DIR/.heroku/src
mkdir -p $CACHE_DIR/.heroku mkdir -p $CACHE_DIR/.heroku
cp -R .heroku/python $CACHE_DIR/.heroku/ cp -R .heroku/python $CACHE_DIR/.heroku/
@@ -236,23 +234,11 @@ bpwatch start dump_cache
cp -R .heroku/python-stack $CACHE_DIR/.heroku/ &> /dev/null || true cp -R .heroku/python-stack $CACHE_DIR/.heroku/ &> /dev/null || true
cp -R .heroku/vendor $CACHE_DIR/.heroku/ &> /dev/null || true cp -R .heroku/vendor $CACHE_DIR/.heroku/ &> /dev/null || true
cp -R .heroku/venv $CACHE_DIR/.heroku/ &> /dev/null || true cp -R .heroku/venv $CACHE_DIR/.heroku/ &> /dev/null || true
if [[ -d .heroku/src ]]; then
cp -R .heroku/src $CACHE_DIR/.heroku/ &> /dev/null || true
fi
bpwatch stop dump_cache bpwatch stop dump_cache
# ### Fin. # Fin.
if [[ ! "$DOCKER_BUILD" ]]; then bpwatch stop compile
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
deep-mv $TMP_APP_DIR $APP_DIR
fi
bpwatch stop anvil_appdir_commit
bpwatch stop compile
fi
+1 -1
View File
@@ -4,7 +4,7 @@
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python) # [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# detector. # detector.
# #
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an # A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime. # adapter between a Python application and Heroku's runtime.
# ## Usage # ## Usage
+1 -1
View File
@@ -18,6 +18,6 @@ if [[ $MANAGE_FILE ]]; then
cat <<EOF cat <<EOF
addons: addons:
heroku-postgresql - heroku-postgresql
EOF EOF
fi fi
+49 -18
View File
@@ -1,36 +1,67 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Django Collectstatic runner. If you have Django installed, collectstatic will
# automatically be executed as part of the build process. If collectstatic
# fails, your build fails.
# This functionality will only activate if Django is in requirements.txt.
# Runtime arguments:
# - $DISABLE_COLLECTSTATIC: disables this functionality.
# - $DEBUG_COLLECTSTATIC: upon failure, print out environment variables.
source $BIN_DIR/utils source $BIN_DIR/utils
# Location of 'manage.py', if it exists.
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | 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}
# Legacy file-based support for $DISABLE_COLLECTSTATIC
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1 [ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
bpwatch start collectstatic # Ensure that Django is explicitly specified in requirements.txt
pip-grep -s requirements.txt django Django && DJANGO_INSTALLED=1
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ]; then bpwatch start collectstatic # metrics collection
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALLED" ]; then
set +e set +e
echo "-----> Preparing static assets" puts-cmd "python $MANAGE_FILE collectstatic --noinput"
# Check if collectstatic is configured properly.
python $MANAGE_FILE collectstatic --dry-run --noinput &> /dev/null && RUN_COLLECTSTATIC=true
# Compile assets if collectstatic appears to be kosher. # Run collectstatic, cleanup some of the noisy output.
if [ "$RUN_COLLECTSTATIC" ]; then python $MANAGE_FILE collectstatic --noinput --traceback 2>&1 | sed '/^Post-processed/d;/^Copying/d;/^$/d' | indent
COLLECTSTATIC_STATUS="${PIPESTATUS[0]}"
echo " Running collectstatic..." set -e
python $MANAGE_FILE collectstatic --noinput 2>&1 | sed '/^Copying/d;/^$/d;/^ /d' | indent
# Display a warning if collectstatic failed.
[ $COLLECTSTATIC_STATUS -ne 0 ] && {
echo
echo " ! Error while running '$ python $MANAGE_FILE collectstatic --noinput'."
echo " See traceback above for details."
echo
echo " You may need to update application code to resolve this error."
echo " Or, you can disable collectstatic for this application:"
echo
echo " $ heroku config:set DISABLE_COLLECTSTATIC=1"
echo
echo " https://devcenter.heroku.com/articles/django-assets"
# Additionally, dump out the environment, if debug mode is on.
if [ "$DEBUG_COLLECTSTATIC" ]; then
echo
echo "****** Collectstatic environment variables:"
echo
env | indent
fi
# Abort the build.
exit 1
}
[ $? -ne 0 ] && {
echo " ! Error running 'manage.py collectstatic'. More info:"
echo " http://devcenter.heroku.com/articles/django-assets"
}
else
echo " Collectstatic configuration error. To debug, run:"
echo " $ heroku run python $MANAGE_FILE collectstatic --noinput"
fi
echo echo
fi fi
bpwatch stop collectstatic bpwatch stop collectstatic # metrics collection
+9 -11
View File
@@ -1,15 +1,15 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# This script serves as the Pylibmc build step of the # This script serves as the Cryptography build step of the
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python) # [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler. # compiler.
# #
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an # A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime. # adapter between a Python application and Heroku's runtime.
# #
# 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 libffi binary.
VENDORED_LIBFFI="https://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"
@@ -19,19 +19,17 @@ source $BIN_DIR/utils
bpwatch start libffi_install bpwatch start libffi_install
# If pylibmc exists within requirements, use vendored cryptography. # If a package using cffi exists within requirements, use vendored libffi.
if (pip-grep -s requirements.txt bcrypt cffi cryptography pyOpenSSL PyOpenSSL requests[security] &> /dev/null) then if (pip-grep -s requirements.txt argon2-cffi bcrypt cffi cryptography django[argon2] Django[argon2] django[bcrypt] Django[bcrypt] PyNaCl pyOpenSSL PyOpenSSL requests[security] misaka &> /dev/null) then
if [ -d ".heroku/vendor/lib/libffi-3.1.1" ]; then if [ ! -d ".heroku/vendor/lib/libffi-3.1" ]; then
export LIBFFI=$(pwd)/vendor
else
echo "-----> Noticed cffi. Bootstrapping libffi." echo "-----> Noticed cffi. Bootstrapping libffi."
mkdir -p .heroku/vendor mkdir -p .heroku/vendor
# Download and extract cryptography into target vendor directory. # Download and extract libffi into target vendor directory.
curl $VENDORED_LIBFFI -s | tar zxv -C .heroku/vendor &> /dev/null curl $VENDORED_LIBFFI -s | tar zxv -C .heroku/vendor &> /dev/null
export LIBFFI=$(pwd)/vendor
fi fi
export LIBFFI=$(pwd)/vendor
fi fi
bpwatch stop libffi_install bpwatch stop libffi_install
+5 -7
View File
@@ -4,7 +4,7 @@
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python) # [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler. # compiler.
# #
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an # A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime. # adapter between a Python application and Heroku's runtime.
# #
# This script is invoked by [`bin/compile`](/). # This script is invoked by [`bin/compile`](/).
@@ -20,18 +20,16 @@ source $BIN_DIR/utils
bpwatch start gdal_install bpwatch start gdal_install
# If GDAL exists within requirements, use vendored gdal. # If GDAL exists within requirements, use vendored gdal.
if (pip-grep -s requirements.txt GDAL &> /dev/null) then if (pip-grep -s requirements.txt GDAL gdal pygdal &> /dev/null) then
if [ -f ".heroku/vendor/bin/gdalserver" ]; then if [ ! -f ".heroku/vendor/bin/gdalserver" ]; then
export GDAL=$(pwd)/vendor
else
echo "-----> Noticed GDAL. Bootstrapping gdal." echo "-----> Noticed GDAL. Bootstrapping gdal."
mkdir -p .heroku/vendor mkdir -p .heroku/vendor
# Download and extract cryptography into target vendor directory. # Download and extract cryptography into target vendor directory.
curl $VENDORED_GDAL -s | tar zxv -C .heroku/vendor &> /dev/null curl $VENDORED_GDAL -s | tar zxv -C .heroku/vendor &> /dev/null
export GDAL=$(pwd)/vendor
fi fi
export GDAL=$(pwd)/vendor
fi fi
bpwatch stop gdal_install bpwatch stop gdal_install
+39
View File
@@ -0,0 +1,39 @@
#!/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](https://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"
VENDORED_GEOS="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/geos.tar.gz"
VENDORED_PROJ="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/proj.tar.gz"
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
# Syntax sugar.
source $BIN_DIR/utils
bpwatch start geo_libs_install
# If GDAL exists within requirements, use vendored gdal.
if [[ "$BUILD_WITH_GEO_LIBRARIES" ]]; then
if [ ! -f ".heroku/vendor/bin/proj" ]; then
echo "-----> Bootstrapping gdal, geos, proj."
mkdir -p .heroku/vendor
# Download and extract cryptography into target vendor directory.
curl $VENDORED_GDAL -s | tar zxv -C .heroku/vendor &> /dev/null
curl $VENDORED_GEOS -s | tar zxv -C .heroku/vendor &> /dev/null
curl $VENDORED_PROJ -s | tar zxv -C .heroku/vendor &> /dev/null
fi
export GDAL=$(pwd)/vendor
fi
bpwatch stop geo_libs_install
+14 -5
View File
@@ -1,26 +1,35 @@
# Install dependencies with Pip. # Install dependencies with Pip.
puts-step "Installing dependencies with pip" puts-cmd "pip install -r requirements.txt"
# rewrite any existing egg links to point to the build dir so pip does not fail with a mismatch error
find .heroku/python/lib/python*/site-packages/ -name "*.egg-link" -print0 | xargs -r -0 -n 1 sed -i -e "s#/app/#$(pwd)/#"
find .heroku/python/lib/python*/site-packages/ -name "*.pth" -print0 | xargs -r -0 -n 1 sed -i -e "s#/app/#/$(pwd)/#"
[ ! "$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
set +e set +e
/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 | log-output | indent /app/.heroku/python/bin/pip install -r $BUILD_DIR/requirements.txt --exists-action=w --src=/app/.heroku/src --disable-pip-version-check --no-cache-dir 2>&1 | tee $WARNINGS_LOG | cleanup | indent
PIP_STATUS="${PIPESTATUS[0]}" PIP_STATUS="${PIPESTATUS[0]}"
set -e set -e
show-warnings
if [[ ! $PIP_STATUS -eq 0 ]]; then if [[ ! $PIP_STATUS -eq 0 ]]; then
echo
show-warnings
exit 1 exit 1
fi fi
# Smart Requirements handling # Smart Requirements handling
cp requirements.txt .heroku/python/requirements-declared.txt cp requirements.txt .heroku/python/requirements-declared.txt
/app/.heroku/python/bin/pip freeze > .heroku/python/requirements-installed.txt /app/.heroku/python/bin/pip freeze --disable-pip-version-check > .heroku/python/requirements-installed.txt
[ ! "$FRESH_PYTHON" ] && bpwatch stop pip_install [ ! "$FRESH_PYTHON" ] && bpwatch stop pip_install
[ "$FRESH_PYTHON" ] && bpwatch stop pip_install_first [ "$FRESH_PYTHON" ] && bpwatch stop pip_install_first
# rewrite build dir in egg links to /app so things are found at runtime
find .heroku/python/lib/python*/site-packages/ -name "*.egg-link" -print0 | xargs -r -0 -n 1 sed -i -e "s#$(pwd)/#/app/#"
find .heroku/python/lib/python*/site-packages/ -name "*.pth" -print0 | xargs -r -0 -n 1 sed -i -e "s#$(pwd)/#/app/#"
echo echo
+1 -1
View File
@@ -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 --exclude setuptools pip > .heroku/python/requirements-stale.txt pip-diff --stale requirements-declared.txt requirements.txt --exclude setuptools pip wheel > .heroku/python/requirements-stale.txt
rm -fr requirements-declared.txt rm -fr requirements-declared.txt
+4 -6
View File
@@ -4,7 +4,7 @@
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python) # [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler. # compiler.
# #
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an # A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime. # adapter between a Python application and Heroku's runtime.
# #
# This script is invoked by [`bin/compile`](/). # This script is invoked by [`bin/compile`](/).
@@ -21,16 +21,14 @@ bpwatch start pylibmc_install
# If pylibmc exists within requirements, use vendored libmemcached. # If pylibmc exists within requirements, use vendored libmemcached.
if (pip-grep -s requirements.txt pylibmc &> /dev/null) then if (pip-grep -s requirements.txt pylibmc &> /dev/null) then
if [ -d ".heroku/vendor/lib/sasl2" ]; then if [ ! -d ".heroku/vendor/lib/sasl2" ]; then
export LIBMEMCACHED=$(pwd)/vendor
else
echo "-----> Noticed pylibmc. Bootstrapping libmemcached." echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
mkdir -p .heroku/vendor mkdir -p .heroku/vendor
# Download and extract libmemcached into target vendor directory. # Download and extract libmemcached into target vendor directory.
curl $VENDORED_MEMCACHED -s | tar zxv -C .heroku/vendor &> /dev/null curl $VENDORED_MEMCACHED -s | tar zxv -C .heroku/vendor &> /dev/null
export LIBMEMCACHED=$(pwd)/vendor
fi fi
export LIBMEMCACHED=$(pwd)/vendor
fi fi
bpwatch stop pylibmc_install bpwatch stop pylibmc_install
+2 -2
View File
@@ -5,7 +5,7 @@ PYTHON_VERSION=$(cat runtime.txt)
if [ -f .heroku/python-version ]; then if [ -f .heroku/python-version ]; then
if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then
bpwatch start uninstall_python bpwatch start uninstall_python
puts-step "Found runtime $(cat .heroku/python-version), removing" puts-step "Found $(cat .heroku/python-version), removing"
rm -fr .heroku/python rm -fr .heroku/python
bpwatch stop uninstall_python bpwatch stop uninstall_python
else else
@@ -23,7 +23,7 @@ fi
if [ ! "$SKIP_INSTALL" ]; then if [ ! "$SKIP_INSTALL" ]; then
bpwatch start install_python bpwatch start install_python
puts-step "Installing runtime ($PYTHON_VERSION)" puts-step "Installing $PYTHON_VERSION"
# Prepare destination directory. # Prepare destination directory.
mkdir -p .heroku/python mkdir -p .heroku/python
-106
View File
@@ -1,106 +0,0 @@
#!/usr/bin/env bash
#
# Create a Heroku app with the following buildpack:
# https://github.com/ddollar/buildpack-test
#
# Push this Python buildpack to that Heroku app to
# run the tests.
#
testDetectWithReqs() {
detect "simple-requirements"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectWithEmptyReqs() {
detect "empty-requirements"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectDjango16() {
detect "django-1.6-skeleton"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectDjango15() {
detect "django-1.5-skeleton"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectDjango14() {
detect "django-1.4-skeleton"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectDjango13() {
detect "django-1.3-skeleton"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectNotDjangoWithSettings() {
detect "not-django"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectWithSetupPy() {
detect "distutils"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectWithSetupRequires() {
detect "no-requirements"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectNotPython() {
detect "not-python"
assertNotCaptured "Python"
assertEquals "1" "${RETURN}"
}
testDetectSimpleRuntimePypy2() {
detect "simple-runtime-pypy2"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectSimpleRuntimePython2() {
detect "simple-runtime-python2"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectSimpleRuntimePython3() {
detect "simple-runtime" # should probably be renamed simple-runtime-python3
assertCapturedEquals "Python"
assertCapturedSuccess
}
## utils ########################################
pushd $(dirname 0) >/dev/null
BASE=$(pwd)
popd >/dev/null
source ${BASE}/vendor/test-utils
detect() {
capture ${BASE}/bin/detect ${BASE}/test/$1
}
compile() {
capture ${BASE}/bin/compile ${BASE}/test/$1
}
source ${BASE}/vendor/shunit2
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
# Syntax sugar.
BIN_DIR=$(cd $(dirname $0); pwd) # absolute path
source $BIN_DIR/utils
DISABLE_COLLECTSTATIC=1 "$(dirname ${0:-})/compile" "$1" "$2" "$3"
if [[ -f "$1/requirements-test.txt" ]]; then
/app/.heroku/python/bin/pip install -r "$1/requirements-test.txt" --exists-action=w --src=./.heroku/src --disable-pip-version-check --no-cache-dir 2>&1 | cleanup | indent
fi
+16 -10
View File
@@ -11,21 +11,16 @@ indent() {
sed "s/^/ /" sed "s/^/ /"
} }
# Log output for warning detection
log-output() (
while read LINE;
do
echo "$LINE"
echo "$LINE" >> "$WARNINGS_LOG"
done
)
# Clean up pip output # Clean up pip output
cleanup() { cleanup() {
sed -e 's/\.\.\.\+/.../g' | sed -e '/already satisfied/Id' | sed -e '/Overwriting/Id' | sed -e '/python executable/Id' | sed -e '/no previously-included files/Id' sed -e 's/\.\.\.\+/.../g' | sed -e '/already satisfied/Id' | sed -e '/Overwriting/Id' | sed -e '/python executable/Id' | sed -e '/no previously-included files/Id'
} }
# Buildpack Indented line.
puts-line() {
echo " $@"
}
# Buildpack Steps. # Buildpack Steps.
puts-step() { puts-step() {
echo "-----> $@" echo "-----> $@"
@@ -36,14 +31,21 @@ puts-warn() {
echo " ! $@" echo " ! $@"
} }
# Buildpack Commands.
puts-cmd() {
echo " $ $@"
}
# Usage: $ set-env key value # Usage: $ set-env key value
set-env() { set-env() {
echo "export $1=$2" >> $PROFILE_PATH echo "export $1=$2" >> $PROFILE_PATH
echo "export $1=$2" >> $EXPORT_PATH
} }
# Usage: $ set-default-env key value # Usage: $ set-default-env key value
set-default-env() { set-default-env() {
echo "export $1=\${$1:-$2}" >> $PROFILE_PATH echo "export $1=\${$1:-$2}" >> $PROFILE_PATH
echo "export $1=\${$1:-$2}" >> $EXPORT_PATH
} }
# Usage: $ un-set-env key # Usage: $ un-set-env key
@@ -88,6 +90,10 @@ sub-env() {
WHITELIST=${2:-''} WHITELIST=${2:-''}
BLACKLIST=${3:-'^(GIT_DIR|PYTHONHOME|LD_LIBRARY_PATH|LIBRARY_PATH|PATH)$'} BLACKLIST=${3:-'^(GIT_DIR|PYTHONHOME|LD_LIBRARY_PATH|LIBRARY_PATH|PATH)$'}
# Python-specific variables.
export PYHONHOME=$BUILD_DIR/.heroku/python
export PYTHONPATH=$BUILD_DIR/
( (
if [ -d "$ENV_DIR" ]; then if [ -d "$ENV_DIR" ]; then
for e in $(ls $ENV_DIR); do for e in $(ls $ENV_DIR); do
+15 -1
View File
@@ -1,7 +1,18 @@
shopt -s extglob shopt -s extglob
old-platform() {
if grep -qi 'InsecurePlatformWarning' "$WARNINGS_LOG"; then
echo
puts-warn "Hello! It looks like your application is using an outdated version of Python."
puts-warn "This caused the security warning you saw above during the 'pip install' step."
puts-warn "We recommend '$RECOMMENDED_PYTHON_VERSION', which you can specify in a 'runtime.txt' file."
puts-warn " -- Much Love, Heroku."
fi
}
pylibmc-missing() { pylibmc-missing() {
if grep -qi 'fatal error: libmemcached/memcached.h: No such file or directory' "$WARNINGS_LOG"; then if grep -qi 'fatal error: libmemcached/memcached.h: No such file or directory' "$WARNINGS_LOG"; then
echo
puts-warn "Hello! There was a problem with your build related to libmemcache." puts-warn "Hello! There was a problem with your build related to libmemcache."
puts-warn "The Python library 'pylibmc' must be explicitly specified in 'requirements.txt' in order to build correctly." puts-warn "The Python library 'pylibmc' must be explicitly specified in 'requirements.txt' in order to build correctly."
puts-warn "Once you do that, everything should work as expected. -- Much Love, Heroku." puts-warn "Once you do that, everything should work as expected. -- Much Love, Heroku."
@@ -10,6 +21,7 @@ pylibmc-missing() {
scipy-included() { scipy-included() {
if grep -qi 'running setup.py install for scipy' "$WARNINGS_LOG"; then if grep -qi 'running setup.py install for scipy' "$WARNINGS_LOG"; then
echo
puts-warn "Hello! It looks like you're trying to use scipy on Heroku." puts-warn "Hello! It looks like you're trying to use scipy on Heroku."
puts-warn "Unfortunately, at this time, we do not directly support this library." puts-warn "Unfortunately, at this time, we do not directly support this library."
puts-warn "There is, however, a buildpack available that makes it possible to use it on Heroku." puts-warn "There is, however, a buildpack available that makes it possible to use it on Heroku."
@@ -20,14 +32,16 @@ scipy-included() {
distribute-included() { distribute-included() {
if grep -qi 'Running setup.py install for distribute' "$WARNINGS_LOG"; then if grep -qi 'Running setup.py install for distribute' "$WARNINGS_LOG"; then
echo
puts-warn "Hello! Your requirements.txt file contains the distribute package." puts-warn "Hello! Your requirements.txt file contains the distribute package."
puts-warn "This library is automatically installed by Heroku and shouldn't be in" puts-warn "This library is automatically installed by Heroku and shouldn't be in"
puts-warn "Your requirements.txt file. This can cause unexpected behavior." puts-warn "Your requirements.txt file. This can cause unexpected behavior."
puts-warn "-- Much Love, Heroku." puts-warn " -- Much Love, Heroku."
fi fi
} }
show-warnings() { show-warnings() {
old-platform
pylibmc-missing pylibmc-missing
scipy-included scipy-included
distribute-included distribute-included
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
OUT_PREFIX=$1
echo "Building autoconf..."
SOURCE_TARBALL='https://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz'
curl -L $SOURCE_TARBALL | tar xz
cd autoconf-2.68
./configure --prefix=$OUT_PREFIX
make
make install
-23
View File
@@ -1,23 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
OUT_PREFIX=$1
# Use new path, containing autoconf.
export PATH="/app/.heroku/python/bin/:$PATH"
hash -r
echo "Building libffi..."
SOURCE_TARBALL='https://cl.ly/2s1t1u3v0N0I/download/libffi-3.1.tar'
curl -L $SOURCE_TARBALL | tar x
cd libffi-3.1
./configure --prefix=$OUT_PREFIX --disable-static &&
make
make install
# Cleanup
cd ..
+2 -2
View File
@@ -10,11 +10,11 @@ hash -r
echo "Building gdal..." echo "Building gdal..."
SOURCE_TARBALL='http://download.osgeo.org/gdal/1.11.0/gdal-1.11.0.tar.gz' SOURCE_TARBALL='http://download.osgeo.org/gdal/1.11.1/gdal-1.11.1.tar.gz'
curl -L $SOURCE_TARBALL | tar zx curl -L $SOURCE_TARBALL | tar zx
cd gdal-1.11.0 cd gdal-1.11.1
./configure --prefix=$OUT_PREFIX && ./configure --prefix=$OUT_PREFIX &&
make make
make install make install
Vendored Executable
+23
View File
@@ -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 geos..."
SOURCE_TARBALL='http://download.osgeo.org/geos/geos-3.4.2.tar.bz2'
curl -L $SOURCE_TARBALL | tar xj
cd geos-3.4.2
./configure --prefix=$OUT_PREFIX &&
make
make install
# Cleanup
cd ..
+5
View File
@@ -3,6 +3,11 @@
OUT_PREFIX=$1 OUT_PREFIX=$1
# Skip the build for heroku-16.
if [[ $S3_PREFIX == "heroku-16" ]]; then
exit 0
fi
# Use new path, containing autoconf. # Use new path, containing autoconf.
export PATH="/app/.heroku/python/bin/:$PATH" export PATH="/app/.heroku/python/bin/:$PATH"
hash -r hash -r
+5
View File
@@ -3,6 +3,11 @@
OUT_PREFIX=$1 OUT_PREFIX=$1
# Skip the build for heroku-16.
if [[ $S3_PREFIX == "heroku-16" ]]; then
exit 0
fi
# fail hard # fail hard
set -o pipefail set -o pipefail
# fail harder # fail harder
Vendored Executable
+23
View File
@@ -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/proj/proj-4.8.0.tar.gz'
curl -L $SOURCE_TARBALL | tar zx
cd proj-4.8.0
./configure --prefix=$OUT_PREFIX &&
make
make install
# Cleanup
cd ..
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-1.7/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-1.8/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-1.9/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/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.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.0/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/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.2-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.2-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/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.2.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.2.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite, libraries/libffi
# 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.3-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.3-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/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.3.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.3.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/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
-14
View File
@@ -1,14 +0,0 @@
#!/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
-14
View File
@@ -1,14 +0,0 @@
#!/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
-14
View File
@@ -1,14 +0,0 @@
#!/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
-14
View File
@@ -1,14 +0,0 @@
#!/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
-14
View File
@@ -1,14 +0,0 @@
#!/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
@@ -7,8 +7,8 @@
OUT_PREFIX=$1 OUT_PREFIX=$1
echo "Building PyPy..." echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.1-linux64.tar.bz2' SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.0.1/* $OUT_PREFIX cp -R pypy2-v5.3.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
@@ -7,8 +7,8 @@
OUT_PREFIX=$1 OUT_PREFIX=$1
echo "Building PyPy..." echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.2-linux64.tar.bz2' SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.0.2/* $OUT_PREFIX cp -R pypy2-v5.6.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/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.3.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy3-2.3.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
@@ -7,8 +7,8 @@
OUT_PREFIX=$1 OUT_PREFIX=$1
echo "Building PyPy..." echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-linux64.tar.bz2' SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.5.0-alpha-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.1/* $OUT_PREFIX cp -R pypy3-v5.5.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python ln $OUT_PREFIX/bin/pypy3 $OUT_PREFIX/bin/python
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.4 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.4.4/Python-2.4.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.4.4 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.4 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.4.5/Python-2.4.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.4.5 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.4 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.4.6/Python-2.4.6.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.4.6 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.5/Python-2.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.5.1/Python-2.5.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.1 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.5.2/Python-2.5.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.2 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.5.3/Python-2.5.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.3 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.5.4/Python-2.5.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.4 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.5.5/Python-2.5.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.5 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.5.6/Python-2.5.6.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.6 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-20
View File
@@ -1,20 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar stack, not cedar-14.
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://www.python.org/ftp/python/2.6/Python-2.6.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
mv Python-2.6 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-20
View File
@@ -1,20 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar stack, not cedar-14.
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.6.1/Python-2.6.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.1 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.6.2/Python-2.6.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.2 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.6.3/Python-2.6.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.3 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.6.4/Python-2.6.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.4 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.6.5/Python-2.6.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.5 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.6.6/Python-2.6.6.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.6 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.6.7/Python-2.6.7.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.7 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.6.8/Python-2.6.8.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.8 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.6.9/Python-2.6.9.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.9 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.1/Python-2.7.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.1 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
@@ -5,9 +5,9 @@
OUT_PREFIX=$1 OUT_PREFIX=$1
echo "Building Python..." echo "Building Python..."
SOURCE_TARBALL='https://www.python.org/ftp/python/2.7.11/Python-2.7.11rc1.tgz' SOURCE_TARBALL='https://python.org/ftp/python/2.7.12/Python-2.7.12.tgz'
curl -L $SOURCE_TARBALL | tar xz curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.11rc1 src mv Python-2.7.12 src
cd src cd src
./configure --prefix=$OUT_PREFIX --with-ensurepip=no ./configure --prefix=$OUT_PREFIX --with-ensurepip=no
@@ -5,11 +5,11 @@
OUT_PREFIX=$1 OUT_PREFIX=$1
echo "Building Python..." echo "Building Python..."
SOURCE_TARBALL='https://python.org/ftp/python/2.7/Python-2.7.tgz' SOURCE_TARBALL='https://python.org/ftp/python/2.7.13/Python-2.7.13.tgz'
curl -L $SOURCE_TARBALL | tar xz curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7 src mv Python-2.7.13 src
cd src cd src
./configure --prefix=$OUT_PREFIX --enable-shared ./configure --prefix=$OUT_PREFIX --enable-unicode=ucs4 --with-ensurepip=no
make make
make install make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.2/Python-2.7.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.2 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.3/Python-2.7.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.3 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.4/Python-2.7.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.4 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.5/Python-2.7.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.5 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.6/Python-2.7.6.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.6 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.7/Python-2.7.7.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.7 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.7/Python-2.7.7.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.7 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.8/Python-2.7.8.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.8 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/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.8/Python-2.7.8.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.8 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-17
View File
@@ -1,17 +0,0 @@
#!/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.1/Python-3.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.1.2/Python-3.1.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1.2 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.1.3/Python-3.1.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1.3 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.1.4/Python-3.1.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1.4 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.1.5/Python-3.1.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1.5 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.2/Python-3.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.2.1/Python-3.2.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.1 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.2.2/Python-3.2.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.2 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.2.3/Python-3.2.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.3 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.2.4/Python-3.2.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.4 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.2.5/Python-3.2.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.5 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.0/Python-3.3.0.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.0 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.1/Python-3.3.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.1 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.2/Python-3.3.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.2 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.3/Python-3.3.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.3 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.4/Python-3.3.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.4 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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.5/Python-3.3.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.5 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/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
-17
View File
@@ -1,17 +0,0 @@
#!/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.0/Python-3.4.0.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.4.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
-18
View File
@@ -1,18 +0,0 @@
#!/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.1/Python-3.4.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.4.1 src
cd src
./configure --prefix=$OUT_PREFIX --with-ensurepip=no --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-18
View File
@@ -1,18 +0,0 @@
#!/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
-18
View File
@@ -1,18 +0,0 @@
#!/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

Some files were not shown because too many files have changed in this diff Show More