diff --git a/bin/compile b/bin/compile index d3247fcf1aba385b1af31080e99478924d96cf42..3959254882b78c229aa78f4eda2a2fec2cbbef13 100755 --- a/bin/compile +++ b/bin/compile @@ -33,6 +33,12 @@ ENV_DIR=$3 export BUILD_DIR CACHE_DIR ENV_DIR +VENDOR_URL="https://lang-python.s3.amazonaws.com/$STACK" +if [[ -n ${BUILDPACK_VENDOR_URL:-} ]]; then + VENDOR_URL="$BUILDPACK_VENDOR_URL" +fi +export VENDOR_URL + # Python defaults DEFAULT_PYTHON_VERSION="python-3.6.4" LATEST_3="python-3.6.4" diff --git a/bin/steps/cryptography b/bin/steps/cryptography index 95af456883279400e549bcddfcd42591591c49b1..66c56885dd8398a49612cabb4bee114820710169 100755 --- a/bin/steps/cryptography +++ b/bin/steps/cryptography @@ -15,7 +15,7 @@ if [[ "$STACK" == "heroku-16" ]]; then fi # The location of the pre-compiled libffi binary. -VENDORED_LIBFFI="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libffi.tar.gz" +VENDORED_LIBFFI="${VENDOR_URL}/libraries/vendor/libffi.tar.gz" PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH" diff --git a/bin/steps/gdal b/bin/steps/gdal index b060ff5678db0491dfa021d28291d4bee0b08ee2..d546811466d308d2db2d1badb5996f2b381d6dc0 100755 --- a/bin/steps/gdal +++ b/bin/steps/gdal @@ -10,7 +10,7 @@ # 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_GDAL="${VENDOR_URL}/libraries/vendor/gdal.tar.gz" PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH" diff --git a/bin/steps/geo-libs b/bin/steps/geo-libs index a249c13b7013b03934b69bca0b932d076a064bfc..f4086548663f0aa3fa7ec1ae683b3c2cd34028ce 100755 --- a/bin/steps/geo-libs +++ b/bin/steps/geo-libs @@ -10,9 +10,9 @@ # 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" +VENDORED_GDAL="${VENDOR_URL}/libraries/vendor/gdal.tar.gz" +VENDORED_GEOS="${VENDOR_URL}/libraries/vendor/geos.tar.gz" +VENDORED_PROJ="${VENDOR_URL}/libraries/vendor/proj.tar.gz" PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH" diff --git a/bin/steps/pylibmc b/bin/steps/pylibmc index 698d668455b2889d8ed57446751c1dfddf86a20d..3fa2429eac991ecd207a4d6284275f0557b51eb9 100755 --- a/bin/steps/pylibmc +++ b/bin/steps/pylibmc @@ -15,7 +15,7 @@ if [[ "$STACK" == "heroku-16" ]]; then fi # The location of the pre-compiled libmemcached binary. -VENDORED_MEMCACHED="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libmemcache.tar.gz" +VENDORED_MEMCACHED="${VENDOR_URL}/libraries/vendor/libmemcache.tar.gz" # Syntax sugar. # shellcheck source=bin/utils diff --git a/bin/steps/python b/bin/steps/python index 798d4b19ccf355d76e7bacb481861d0302cfe284..22285aa906aa0467e3a610e01d1fbefc60e1fbd3 100755 --- a/bin/steps/python +++ b/bin/steps/python @@ -4,6 +4,9 @@ set +e runtime-fixer runtime.txt PYTHON_VERSION=$(cat runtime.txt) +# The location of the pre-compiled python binary. +VENDORED_PYTHON="${VENDOR_URL}/runtimes/$PYTHON_VERSION.tar.gz" + if [[ $PYTHON_VERSION =~ ^python-2 ]]; then if [[ "$PYTHON_VERSION" != "$LATEST_2" ]]; then puts-warn "The latest version of Python 2 is $LATEST_2 (you are using $PYTHON_VERSION, which is unsupported)." @@ -41,7 +44,7 @@ if [ ! "$SKIP_INSTALL" ]; then mcount "version.python.$PYTHON_VERSION" - if ! curl "https://lang-python.s3.amazonaws.com/$STACK/runtimes/$PYTHON_VERSION.tar.gz" -s | tar zxv -C .heroku/python &> /dev/null; then + if ! curl "${VENDORED_PYTHON}" -s | tar zxv -C .heroku/python &> /dev/null; then puts-warn "Requested runtime ($PYTHON_VERSION) is not available for this stack ($STACK)." puts-warn "Aborting. More info: https://devcenter.heroku.com/articles/python-support" exit 1