#!/usr/bin/env bash # fail hard set -o pipefail # fail harder set -eu OUT_PREFIX=$1 BIN_DIR="$(cd "$(dirname "$0")"/../.. || exit; pwd)/bin" export BIN_DIR dep_formula=${0#$WORKSPACE_DIR/} # this is the original script, e.g. pypy-5.3.1 dep_name=$(basename $BASH_SOURCE) # this is us BASE=${dep_formula##*/} python_version=${BASE^} version_number=$(echo "$python_version" | cut -d- -f2) dep_url=https://python.org/ftp/python/${version_number}/${python_version}.tgz # echo "Installing necesary sqlite headers" # # install the necessary sqlite headers # apt-get update # apt-get install -y libsqlite3-dev # Old way of installing sqlite # shellcheck source=bin/utils source "$BIN_DIR/steps/sqlite3" sqlite3_version echo "Setting up SQLite3 Headers for $SQLITE3_VERSION" sqlite3_install "$OUT_PREFIX" "$SQLITE3_VERSION" 1 echo "Building Python 3..." echo "Pulling from source: ${dep_url}" curl -L "${dep_url}" | tar xz -C "${OUT_PREFIX}" # --strip-components 1 # extract to $OUT_PREFIX, drop the first directory level, which is the archive name echo "`ls`" mv "${OUT_PREFIX}/${python_version}" src cd src ./configure --prefix=$OUT_PREFIX --with-ensurepip=no make make install # Remove unneeded test directories, similar to the official Docker Python images: # https://github.com/docker-library/python find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' + # Remove spare / LOCATION=${OUT_PREFIX%?} ln $LOCATION/bin/python3 $LOCATION/bin/python # # copy over sqlite3 headers # cp "/usr/include/sqlite3"* "$LOCATION/include/" # # create generic .so symlink against stack image # ln -s "/usr/lib/x86_64-linux-gnu/libsqlite3.so.0" "$LOCATION/lib/libsqlite3.so"