Skip to content
This repository has been archived by the owner on Jun 6, 2024. It is now read-only.

Manual assets for Python buildpack

Alex Harford edited this page Aug 17, 2017 · 2 revisions

The Python buildpack relies on some manually built assets. There's an upstream ticket for automating these, I expect it will be in the binary-builder pipeline eventually.

For each generated archive, run:

mkdir results
docker run -t -i --rm -v $(pwd)/results:/output splatform/rootfs-opensuse42 /bin/bash

libffi

mkdir -p /build && \
cd /build && \
curl -LO ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz && \
tar xf libffi-3.2.1.tar.gz && \
cd libffi-3.2.1 && \
patch -p1 < <(curl https://raw.githubusercontent.com/p3ck/restraint/master/third-party/libffi-3.1-toolexeclibdir.patch) && \
./configure --prefix=/app/.cloudfoundry/vendor --enable-static && \
make && make install && \
tar -C /app/.cloudfoundry/vendor -czvf libffi-3.2.1-linux-x64.tgz $(ls /app/.cloudfoundry/vendor) && \
mv libffi-3.2.1-linux-x64.tgz /output/libffi-3.2.1-linux-x64-$(md5sum libffi-3.2.1-linux-x64.tgz | cut -c-8).tgz

libmemcached

mkdir -p /build && \
cd build && \
curl -LO ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-2.1.26.tar.gz && \
tar xf cyrus-sasl-2.1.26.tar.gz && \
cd cyrus-sasl-2.1.26 && \
./configure --prefix=/app/.cloudfoundry/vendor && make && make install && \
curl -LO https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz  && \
tar xf libmemcached-1.0.18.tar.gz && \
cd libmemcached-1.0.18 && \
./configure --prefix=/app/.cloudfoundry/vendor CXXFLAGS="-I/app/.cloudfoundry/vendor/include" CFLAGS="-I/app/.cloudfoundry/vendor/include" LDFLAGS="-L/app/.cloudfoundry/vendor/lib" && \
make && \
make install && \
tar -C /app/.cloudfoundry/vendor -czvf libmemcache-1.0.18-linux-x64.tgz $(ls /app/.cloudfoundry/vendor) && \
mv libmemcache-1.0.18-linux-x64.tgz /output/libmemcache-1.0.18-linux-x64-$(md5sum libmemcache-1.0.18-linux-x64.tgz | cut -c-8).tgz

The resulting archives can then be uploaded to a web service, and the Python buildpack manifest can be updated with the file locaton and the md5sum of the archive.