mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
989351467f
The `libmemcached` package is available in the base stack image for all stacks newer than `cedar-14`, so at buildpack compile time the vendor step is skipped for those stacks: https://github.com/heroku/heroku-buildpack-python/blob/106f2997fa124852a2a35ee8bfa604ad20c47988/bin/steps/pylibmc#L12-L15 As such, it is not necessary to run the libmemcached bob-builder formula on newer stacks. The conditional has been updated so it correctly handles heroku-18 and also the upcoming heroku-20. An exit code of 1 has been used, otherwise `bob upload` will build and then upload a zero byte archive to S3, which will go unused. (This is in comparison to bob formulas that are nested, where an exit code of 0 is actually desirable, since it allows skipping steps.) Refs W-7485877. Co-authored-by: Joe Kutner <jpkutner@gmail.com>
45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build Path: /app/.heroku/vendor/
|
|
|
|
OUT_PREFIX=$1
|
|
|
|
if [[ $S3_PREFIX != "cedar-14" ]]; then
|
|
echo "libmemcached only needs to be built for cedar-14, since newer stacks include it in the base image"
|
|
exit 1
|
|
fi
|
|
|
|
# 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} --with-plugindir=${OUT_PREFIX}lib/sasl2 --with-configdir=${OUT_PREFIX}lib/sasl2
|
|
|
|
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." |