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
|
||||
|
||||
# Django collectstatic support.
|
||||
source $BIN_DIR/steps/collectstatic
|
||||
sub-env $BIN_DIR/steps/collectstatic
|
||||
|
||||
|
||||
# ### Finalize
|
||||
|
||||
@@ -3,7 +3,11 @@ set +e
|
||||
bpwatch start pip_uninstall
|
||||
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
|
||||
puts-step "Uninstalling stale dependencies"
|
||||
|
||||
+5
-9
@@ -10,7 +10,7 @@
|
||||
# This script is invoked by [`bin/compile`](/).
|
||||
|
||||
# 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.
|
||||
source $BIN_DIR/utils
|
||||
@@ -19,21 +19,17 @@ bpwatch start pylibmc_install
|
||||
|
||||
# If pylibmc exists within requirements, use vendored libmemcached.
|
||||
if (pip-grep -s requirements.txt pylibmc) then
|
||||
echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
|
||||
cd .heroku
|
||||
|
||||
if [ -d "vendor/lib/sasl2" ]; then
|
||||
export LIBMEMCACHED=$(pwd)/vendor
|
||||
else
|
||||
echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
|
||||
mkdir -p .heroku/vendor
|
||||
# Download and extract libmemcached into target vendor directory.
|
||||
curl -s -L -o tmp-libmemcached.tar.gz $VENDORED_MEMCACHED
|
||||
tar -zxvf tmp-libmemcached.tar.gz > /dev/null
|
||||
rm tmp-libmemcached.tar.gz
|
||||
curl $VENDORED_MEMCACHED -s | tar zxv -C .heroku/vendor &> /dev/null
|
||||
|
||||
export LIBMEMCACHED=$(pwd)/vendor
|
||||
fi
|
||||
|
||||
export LIBMEMCACHED=$(pwd)/vendor
|
||||
cd ..
|
||||
fi
|
||||
|
||||
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:
|
||||
r = Requirements(reqfile)
|
||||
except ValueError:
|
||||
|
||||
if not silent:
|
||||
print 'There was a problem loading the given requirement file.'
|
||||
|
||||
exit(os.EX_NOINPUT)
|
||||
|
||||
for requirement in r.requirements:
|
||||
@@ -48,11 +50,15 @@ def grep(reqfile, packages, silent=False):
|
||||
if requirement.req:
|
||||
|
||||
if requirement.req.project_name in packages:
|
||||
|
||||
if not silent:
|
||||
print 'Package {} found!'.format(requirement.req.project_name)
|
||||
|
||||
exit(0)
|
||||
|
||||
print 'Not found.'.format(requirement.req.project_name)
|
||||
if not silent:
|
||||
print 'Not found.'.format(requirement.req.project_name)
|
||||
|
||||
exit(1)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user