mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8740fcdbad | |||
| fb18948243 | |||
| e104d36785 | |||
| 1786231a49 | |||
| fa8e09ae9c | |||
| 2dd212d020 | |||
| 15acd305d1 | |||
| 5a65a39c5e | |||
| f18754f8f0 | |||
| e860234d05 | |||
| 50d61d2935 |
+1
-1
@@ -163,7 +163,7 @@ source $BIN_DIR/steps/pylibmc
|
|||||||
source $BIN_DIR/steps/pip-install
|
source $BIN_DIR/steps/pip-install
|
||||||
|
|
||||||
# Django collectstatic support.
|
# Django collectstatic support.
|
||||||
source $BIN_DIR/steps/collectstatic
|
sub-env $BIN_DIR/steps/collectstatic
|
||||||
|
|
||||||
|
|
||||||
# ### Finalize
|
# ### Finalize
|
||||||
|
|||||||
@@ -3,7 +3,11 @@ set +e
|
|||||||
bpwatch start pip_uninstall
|
bpwatch start pip_uninstall
|
||||||
if [[ -f .heroku/python/requirements-declared.txt ]]; then
|
if [[ -f .heroku/python/requirements-declared.txt ]]; then
|
||||||
|
|
||||||
pip-diff --stale .heroku/python/requirements-declared.txt requirements.txt > .heroku/python/requirements-stale.txt
|
cp .heroku/python/requirements-declared.txt requirements-declared.txt
|
||||||
|
|
||||||
|
pip-diff --stale requirements-declared.txt requirements.txt > .heroku/python/requirements-stale.txt
|
||||||
|
|
||||||
|
rm -fr requirements-declared.txt
|
||||||
|
|
||||||
if [[ -s .heroku/python/requirements-stale.txt ]]; then
|
if [[ -s .heroku/python/requirements-stale.txt ]]; then
|
||||||
puts-step "Uninstalling stale dependencies"
|
puts-step "Uninstalling stale dependencies"
|
||||||
|
|||||||
+5
-9
@@ -10,7 +10,7 @@
|
|||||||
# This script is invoked by [`bin/compile`](/).
|
# This script is invoked by [`bin/compile`](/).
|
||||||
|
|
||||||
# The location of the pre-compiled libmemcached binary.
|
# The location of the pre-compiled libmemcached binary.
|
||||||
VENDORED_MEMCACHED="http://cl.ly/0a191R3K160t1w1P0N25/vendor-libmemcached.tar.gz"
|
VENDORED_MEMCACHED="http://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libmemcache.tar.gz"
|
||||||
|
|
||||||
# Syntax sugar.
|
# Syntax sugar.
|
||||||
source $BIN_DIR/utils
|
source $BIN_DIR/utils
|
||||||
@@ -19,21 +19,17 @@ 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) then
|
if (pip-grep -s requirements.txt pylibmc) then
|
||||||
echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
|
|
||||||
cd .heroku
|
|
||||||
|
|
||||||
if [ -d "vendor/lib/sasl2" ]; then
|
if [ -d "vendor/lib/sasl2" ]; then
|
||||||
export LIBMEMCACHED=$(pwd)/vendor
|
export LIBMEMCACHED=$(pwd)/vendor
|
||||||
else
|
else
|
||||||
|
echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
|
||||||
|
mkdir -p .heroku/vendor
|
||||||
# Download and extract libmemcached into target vendor directory.
|
# Download and extract libmemcached into target vendor directory.
|
||||||
curl -s -L -o tmp-libmemcached.tar.gz $VENDORED_MEMCACHED
|
curl $VENDORED_MEMCACHED -s | tar zxv -C .heroku/vendor &> /dev/null
|
||||||
tar -zxvf tmp-libmemcached.tar.gz > /dev/null
|
|
||||||
rm tmp-libmemcached.tar.gz
|
|
||||||
export LIBMEMCACHED=$(pwd)/vendor
|
export LIBMEMCACHED=$(pwd)/vendor
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export LIBMEMCACHED=$(pwd)/vendor
|
|
||||||
cd ..
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
bpwatch stop pylibmc_install
|
bpwatch stop pylibmc_install
|
||||||
|
|||||||
+39
@@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/vendor/
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# fail hard
|
||||||
|
set -o pipefail
|
||||||
|
# fail harder
|
||||||
|
set -eux
|
||||||
|
|
||||||
|
DEFAULT_VERSION="1.0.18"
|
||||||
|
dep_version=${VERSION:-$DEFAULT_VERSION}
|
||||||
|
dep_dirname=libmemcached-${dep_version}
|
||||||
|
dep_archive_name=${dep_dirname}.tar.gz
|
||||||
|
dep_url=https://launchpad.net/libmemcached/1.0/${dep_version}/+download/${dep_archive_name}
|
||||||
|
|
||||||
|
# SASL Support.
|
||||||
|
echo "-----> Building cyrus-sasl 2.1.26..."
|
||||||
|
|
||||||
|
curl -LO ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-2.1.26.tar.gz
|
||||||
|
# FTP doesn't play well with piping into tar xz
|
||||||
|
tar xzf cyrus-sasl-2.1.26.tar.gz
|
||||||
|
|
||||||
|
pushd cyrus-sasl-2.1.26
|
||||||
|
./configure --prefix=${OUT_PREFIX}
|
||||||
|
make -s -j 9
|
||||||
|
make install -s
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo "-----> Building libmemcached ${dep_version}..."
|
||||||
|
|
||||||
|
curl -L ${dep_url} | tar xz
|
||||||
|
pushd ${dep_dirname}
|
||||||
|
CPPFLAGS=-I${OUT_PREFIX}/include LDFLAGS=-L${OUT_PREFIX}/lib ./configure --prefix=${OUT_PREFIX} --without-memcached
|
||||||
|
make -s -j 9
|
||||||
|
make install -s
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo "-----> Done."
|
||||||
Vendored
+7
-1
@@ -39,8 +39,10 @@ def grep(reqfile, packages, silent=False):
|
|||||||
try:
|
try:
|
||||||
r = Requirements(reqfile)
|
r = Requirements(reqfile)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
||||||
if not silent:
|
if not silent:
|
||||||
print 'There was a problem loading the given requirement file.'
|
print 'There was a problem loading the given requirement file.'
|
||||||
|
|
||||||
exit(os.EX_NOINPUT)
|
exit(os.EX_NOINPUT)
|
||||||
|
|
||||||
for requirement in r.requirements:
|
for requirement in r.requirements:
|
||||||
@@ -48,11 +50,15 @@ def grep(reqfile, packages, silent=False):
|
|||||||
if requirement.req:
|
if requirement.req:
|
||||||
|
|
||||||
if requirement.req.project_name in packages:
|
if requirement.req.project_name in packages:
|
||||||
|
|
||||||
if not silent:
|
if not silent:
|
||||||
print 'Package {} found!'.format(requirement.req.project_name)
|
print 'Package {} found!'.format(requirement.req.project_name)
|
||||||
|
|
||||||
exit(0)
|
exit(0)
|
||||||
|
|
||||||
print 'Not found.'.format(requirement.req.project_name)
|
if not silent:
|
||||||
|
print 'Not found.'.format(requirement.req.project_name)
|
||||||
|
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user