Compare commits

...

60 Commits

Author SHA1 Message Date
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 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
23 changed files with 208 additions and 86 deletions
+22
View File
@@ -1,5 +1,27 @@
# Python Buildpack Changelog
## 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.
+1 -1
View File
@@ -1,6 +1,6 @@
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:
+24 -24
View File
@@ -1,54 +1,54 @@
# Heroku Buildpack: Python
![python-banner](https://cloud.githubusercontent.com/assets/51578/8914205/ecf2047c-346b-11e5-98c5-42547f9f4410.jpg)
![python](https://cloud.githubusercontent.com/assets/51578/13712821/b68a42ce-e793-11e5-96b0-d8eb978137ba.png)
This is a [Heroku buildpack](http://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](http://www.pip-installer.org/).
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.
This buildpack supports running Django and Flask apps.
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).
Usage
-----
See it in Action
----------------
Example usage:
Deploying a Python application couldn't be easier:
$ ls
Procfile requirements.txt web.py
$ heroku create --buildpack git://github.com/heroku/heroku-buildpack-python.git
$ heroku create --buildpack heroku/python
$ 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 python-2.7.11
$ pip install -r requirements.txt
Collecting requests (from -r requirements.txt (line 1))
Downloading requests-2.9.1-py2.py3-none-any.whl (501kB)
Installing collected packages: requests
Successfully installed requests
Cleaning up...
Successfully installed requests-2.9.1
-----> Discovering process types
Procfile declares types -> (none)
You can also add it to upcoming builds of an existing application:
A `requirements.txt` file must be present at the root of your application's repository.
$ heroku buildpacks:set git://github.com/heroku/heroku-buildpack-python.git
You can also specify the latest production release of this buildpack for upcoming builds of an existing application:
The buildpack will detect your app as Python if it has the file `requirements.txt` in the root.
$ heroku buildpacks:set heroku/python
It will use Pip to install your dependencies, vendoring a copy of the Python runtime into your slug.
Specify a Runtime
-----------------
Specify a Python Runtime
------------------------
You can also provide arbitrary releases Python with a `runtime.txt` file.
Specific versions of the Python runtime can be specified with a `runtime.txt` file:
$ cat runtime.txt
python-3.5.1
Runtime options include:
- python-2.7.11
- python-3.5.1
- pypy-4.0.1 (unsupported, experimental)
- pypy3-2.4.0 (unsupported, experimental)
- `python-2.7.11`
- `python-3.5.1`
- `pypy-5.0.1` (unsupported, experimental)
Other [unsupported runtimes](https://github.com/heroku/heroku-buildpack-python/tree/master/builds/runtimes) are available as well.
Other [unsupported runtimes](https://github.com/heroku/heroku-buildpack-python/tree/master/builds/runtimes) are available as well. Use at your own risk.
+22 -19
View File
@@ -1,10 +1,10 @@
#!/usr/bin/env bash
# The Heroku Python Buildpack. This script accepts paramaters for a build
# 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 accomidate excellent builds
# on Heroku. No gaurentee for external compatibility is made. However,
# 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.
@@ -32,14 +32,14 @@ VIRTUALENV_LOC=".heroku/venv"
LEGACY_TRIGGER="lib/python2.7"
DEFAULT_PYTHON_VERSION="python-2.7.11"
DEFAULT_PYTHON_STACK="cedar"
DEFAULT_PYTHON_STACK="cedar-14"
PYTHON_EXE="/app/.heroku/python/bin/python"
PIP_VERSION="8.0.2"
SETUPTOOLS_VERSION="19.6"
PIP_VERSION="8.1.1"
SETUPTOOLS_VERSION="20.3"
# Common Problem Warnings
export WARNINGS_LOG=$(mktemp)
export DEFAULT_PYTHON_VERSION
export RECOMMENDED_PYTHON_VERSION=$DEFAULT_PYTHON_VERSION
# Setup bpwatch
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
@@ -57,8 +57,8 @@ export PATH=$PATH:$ROOT_DIR/vendor/pip-pop
# Sanitizing environment variables.
unset GIT_DIR PYTHONHOME PYTHONPATH LD_LIBRARY_PATH LIBRARY_PATH
unset RECEIVE_DATA SOURCE_VERSION RUN_KEY BUILD_INFO DEPLOY
unset LOG_TOKEN DYNO CYTOKINE_LOG_FILE GEM_PATH
unset RECEIVE_DATA RUN_KEY BUILD_INFO DEPLOY LOG_TOKEN DYNO
unset CYTOKINE_LOG_FILE GEM_PATH
# Setup buildpack instrumentation.
bpwatch init $LOGPLEX_KEY
@@ -73,7 +73,7 @@ source $BIN_DIR/utils
# Import collection of warnings.
source $BIN_DIR/warnings
# Directory Hacks for path consistiency.
# Directory Hacks for path consistency.
APP_DIR='/app'
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
@@ -103,7 +103,7 @@ BUILD_DIR=$APP_DIR
# Set up outputs under new context
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
WEBCONCURRENCY_PROFILE_PATH="$BUILD_DIR/.profile.d/python.webconcurrency.sh"
GUNICORN_PROFILE_PATH="$BUILD_DIR/.profile.d/python.gunicorn.sh"
# We'll need to send these statics to other scripts we `source`.
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
@@ -112,11 +112,11 @@ export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
export PATH=$BUILD_DIR/.heroku/python/bin:$BUILD_DIR/.heroku/vendor/bin:$PATH
export PYTHONUNBUFFERED=1
export LANG=en_US.UTF-8
export C_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include
export CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include
export LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib
export PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:$BUILD_DIR/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config
export C_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.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:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.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:$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:$PKG_CONFIG_PATH
# Switch to the repo's context.
cd $BUILD_DIR
@@ -147,7 +147,7 @@ fi
if [ -f $CACHE_DIR/.heroku/python-stack ]; then
CACHED_PYTHON_STACK=$(cat $CACHE_DIR/.heroku/python-stack)
else
CACHED_PYTHON_STACK=$DEFAULT_PYTHON_STACK
CACHED_PYTHON_STACK=$STACK
fi
# If no runtime given, assume default version.
@@ -201,6 +201,9 @@ source $BIN_DIR/steps/pylibmc
# Libffi support.
source $BIN_DIR/steps/cryptography
# Support for Geo libraries.
sub-env $BIN_DIR/steps/geo-libs
# GDAL support.
source $BIN_DIR/steps/gdal
@@ -221,8 +224,8 @@ set-default-env LANG en_US.UTF-8
set-default-env PYTHONHASHSEED random
set-default-env PYTHONPATH /app/
# Install sane-default script for WEB_CONCURRENCY environment variable.
cp $ROOT_DIR/vendor/python.webconcurrency.sh $WEBCONCURRENCY_PROFILE_PATH
# Install sane-default script for $WEB_CONCURRENCY and $FORWARDED_ALLOW_IPS.
cp $ROOT_DIR/vendor/python.gunicorn.sh $GUNICORN_PROFILE_PATH
# Experimental post_compile hook.
+1 -1
View File
@@ -4,7 +4,7 @@
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# 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.
# ## Usage
+2 -2
View File
@@ -19,7 +19,7 @@ MANAGE_FILE=${MANAGE_FILE:-fakepath}
# Legacy file-based support for $DISABLE_COLLECTSTATIC
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
# Ensure that Django is explicitily specified in requirments.txt
# Ensure that Django is explicitly specified in requirements.txt
pip-grep -s requirements.txt django Django && DJANGO_INSTALLED=1
bpwatch start collectstatic # metrics collection
@@ -47,7 +47,7 @@ if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALL
echo
echo " $ heroku config:set DISABLE_COLLECTSTATIC=1"
echo
echo " http://devcenter.heroku.com/articles/django-assets"
echo " https://devcenter.heroku.com/articles/django-assets"
# Additionally, dump out the environment, if debug mode is on.
if [ "$DEBUG_COLLECTSTATIC" ]; then
+5 -5
View File
@@ -4,12 +4,12 @@
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# 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.
#
# 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"
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
@@ -19,15 +19,15 @@ source $BIN_DIR/utils
bpwatch start libffi_install
# If pylibmc exists within requirements, use vendored cryptography.
if (pip-grep -s requirements.txt bcrypt cffi cryptography pyOpenSSL PyOpenSSL requests[security] &> /dev/null) then
# If a package using cffi exists within requirements, use vendored libffi.
if (pip-grep -s requirements.txt bcrypt cffi cryptography django[bcrypt] Django[bcrypt] pyOpenSSL PyOpenSSL requests[security] &> /dev/null) then
if [ -d ".heroku/vendor/lib/libffi-3.1.1" ]; then
export LIBFFI=$(pwd)/vendor
else
echo "-----> Noticed cffi. Bootstrapping libffi."
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
export LIBFFI=$(pwd)/vendor
+2 -2
View File
@@ -4,7 +4,7 @@
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# 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.
#
# This script is invoked by [`bin/compile`](/).
@@ -20,7 +20,7 @@ source $BIN_DIR/utils
bpwatch start gdal_install
# If GDAL exists within requirements, use vendored gdal.
if (pip-grep -s requirements.txt GDAL &> /dev/null) then
if (pip-grep -s requirements.txt GDAL gdal pygdal &> /dev/null) then
if [ -f ".heroku/vendor/bin/gdalserver" ]; then
export GDAL=$(pwd)/vendor
+41
View File
@@ -0,0 +1,41 @@
#!/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/gdalserver" ]; then
export GDAL=$(pwd)/vendor
else
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
export GDAL=$(pwd)/vendor
fi
fi
bpwatch stop geo_libs_install
+1 -1
View File
@@ -4,7 +4,7 @@
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# 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.
#
# This script is invoked by [`bin/compile`](/).
+1 -1
View File
@@ -5,7 +5,7 @@ old-platform() {
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 '$DEFAULT_PYTHON_VERSION', which you can specify in a 'runtime.txt' file."
puts-warn "We recommend '$RECOMMENDED_PYTHON_VERSION', which you can specify in a 'runtime.txt' file."
puts-warn " -- Much Love, Heroku."
fi
}
-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..."
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
cd gdal-1.11.0
cd gdal-1.11.1
./configure --prefix=$OUT_PREFIX &&
make
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 ..
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 ..
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-5.0.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-5.0.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
+1 -1
View File
@@ -10,7 +10,7 @@ curl -L $SOURCE_TARBALL | tar xz
mv Python-3.5.1 src
cd src
./configure --prefix=$OUT_PREFIX --with-ensurepip=no --enable-shared
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
make
make install
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
@@ -1,27 +1,32 @@
case $(ulimit -u) in
# 1X DYNO
# Automatic configuration for Gunicorn's Workers setting.
# Standard-1X (+Free, +Hobby) Dyno
256)
export DYNO_RAM=512
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-2}
;;
# 2X DYNO
# Standard-2X Dyno
512)
export DYNO_RAM=1024
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-4}
;;
# IX DYNO
# Performance-M Dyno
16384)
export DYNO_RAM=2560
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-8}
;;
# PX DYNO
# Performance-L Dyno
32768)
export DYNO_RAM=6656
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-11}
;;
esac
# Automatic configuration for Gunicorn's ForwardedAllowIPS setting.
export FORWARDED_ALLOW_IPS='*'
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.