mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-14 06:13:53 -05:00
Compare commits
19 Commits
v0.4.0-201
...
v0.4.0-201
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73d5ea7426 | ||
|
|
b992ffca1d | ||
|
|
9c82314570 | ||
|
|
403154e09e | ||
|
|
b44398e954 | ||
|
|
46a01b1643 | ||
|
|
bf94eb8cbe | ||
|
|
b225f2030d | ||
|
|
cbe7d0241b | ||
|
|
e65a10be51 | ||
|
|
badc8255ab | ||
|
|
385d3337ef | ||
|
|
558200285b | ||
|
|
2c26b0870a | ||
|
|
2cea06b88a | ||
|
|
c977774977 | ||
|
|
314937d599 | ||
|
|
07ae0d8e42 | ||
|
|
461c5bbc2d |
@@ -1,4 +1,8 @@
|
|||||||
install: git clone https://github.com/sstephenson/bats.git
|
install: git clone https://github.com/sstephenson/bats.git
|
||||||
script: bats/bin/bats --tap test
|
script: bats/bin/bats --tap test
|
||||||
# skips unnecessary Python-specific setup
|
after_script:
|
||||||
|
- bats/bin/bats --tap plugins/python-build/test
|
||||||
language: c
|
language: c
|
||||||
|
notifications:
|
||||||
|
email:
|
||||||
|
on_success: never
|
||||||
|
|||||||
@@ -1,5 +1,14 @@
|
|||||||
## Version History
|
## Version History
|
||||||
|
|
||||||
|
#### 0.4.0-20140123
|
||||||
|
|
||||||
|
* pyenv: Always append the directory at the top of the `$PATH` to return proper value for `sys.executable` (#98)
|
||||||
|
* pyenv: Unset `GREP_OPTIONS` to avoid issues of conflicting options (#101)
|
||||||
|
* python-build: Install `pip` with using `ensurepip` if available
|
||||||
|
* python-build: Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
|
||||||
|
* python-build: Import recent changes from ruby-build v20140110.1
|
||||||
|
* python-build: Import `bats` tests from ruby-build v20140110.1
|
||||||
|
|
||||||
#### 0.4.0-20140110.1
|
#### 0.4.0-20140110.1
|
||||||
|
|
||||||
* python-build: Fix build error of CPython 2.x on the platform where the `gcc` is llvm-gcc.
|
* python-build: Fix build error of CPython 2.x on the platform where the `gcc` is llvm-gcc.
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ if [ -z "$READLINK" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
unset GREP_OPTIONS
|
||||||
|
|
||||||
resolve_link() {
|
resolve_link() {
|
||||||
$READLINK "$1"
|
$READLINK "$1"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
set -e
|
set -e
|
||||||
[ -n "$PYENV_DEBUG" ] && set -x
|
[ -n "$PYENV_DEBUG" ] && set -x
|
||||||
|
|
||||||
version="0.4.0-20140110.1"
|
version="0.4.0-20140123"
|
||||||
|
|
||||||
if cd "$PYENV_ROOT" 2>/dev/null; then
|
if cd "$PYENV_ROOT" 2>/dev/null; then
|
||||||
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"
|
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ for script in "${scripts[@]}"; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
shift 1
|
shift 1
|
||||||
if [ "$PYENV_VERSION" != "system" ]; then
|
# CPython's `sys.executable` requires the `PYENV_BIN_PATH` to be at the top of the `PATH`.
|
||||||
export PATH="${PYENV_BIN_PATH}:${PATH}"
|
# https://github.com/yyuu/pyenv/issues/98
|
||||||
fi
|
export PATH="${PYENV_BIN_PATH}:${PATH}"
|
||||||
exec -a "$PYENV_COMMAND" "$PYENV_COMMAND_PATH" "$@"
|
exec -a "$PYENV_COMMAND" "$PYENV_COMMAND_PATH" "$@"
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ unset VERSION_NAME
|
|||||||
# version is specified by pyenv. Show usage instructions if a local
|
# version is specified by pyenv. Show usage instructions if a local
|
||||||
# version is not specified.
|
# version is not specified.
|
||||||
DEFINITION="${ARGUMENTS[0]}"
|
DEFINITION="${ARGUMENTS[0]}"
|
||||||
[ -n "$DEFINITION" ] || DEFINITION="$(pyenv local 2>/dev/null || true)"
|
[ -n "$DEFINITION" ] || DEFINITION="$(pyenv-local 2>/dev/null || true)"
|
||||||
[ -n "$DEFINITION" ] || usage 1
|
[ -n "$DEFINITION" ] || usage 1
|
||||||
|
|
||||||
|
|
||||||
@@ -118,10 +118,10 @@ after_install() {
|
|||||||
after_hooks["${#after_hooks[@]}"]="$hook"
|
after_hooks["${#after_hooks[@]}"]="$hook"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Load plugin hooks.
|
OLDIFS="$IFS"
|
||||||
for script in $(pyenv-hooks install); do
|
IFS=$'\n' scripts=(`pyenv-hooks install`)
|
||||||
source "$script"
|
IFS="$OLDIFS"
|
||||||
done
|
for script in "${scripts[@]}"; do source "$script"; done
|
||||||
|
|
||||||
|
|
||||||
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
|
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
|
||||||
@@ -201,7 +201,7 @@ for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
|||||||
|
|
||||||
# Run `pyenv-rehash` after a successful installation.
|
# Run `pyenv-rehash` after a successful installation.
|
||||||
if [ "$STATUS" == "0" ]; then
|
if [ "$STATUS" == "0" ]; then
|
||||||
pyenv rehash
|
pyenv-rehash
|
||||||
else
|
else
|
||||||
cleanup
|
cleanup
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -38,6 +38,24 @@ case "$DEFINITION" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
declare -a before_hooks after_hooks
|
||||||
|
|
||||||
|
before_uninstall() {
|
||||||
|
local hook="$1"
|
||||||
|
before_hooks["${#before_hooks[@]}"]="$hook"
|
||||||
|
}
|
||||||
|
|
||||||
|
after_uninstall() {
|
||||||
|
local hook="$1"
|
||||||
|
after_hooks["${#after_hooks[@]}"]="$hook"
|
||||||
|
}
|
||||||
|
|
||||||
|
OLDIFS="$IFS"
|
||||||
|
IFS=$'\n' scripts=(`pyenv-hooks uninstall`)
|
||||||
|
IFS="$OLDIFS"
|
||||||
|
for script in "${scripts[@]}"; do source "$script"; done
|
||||||
|
|
||||||
|
|
||||||
VERSION_NAME="${DEFINITION##*/}"
|
VERSION_NAME="${DEFINITION##*/}"
|
||||||
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
|
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
|
||||||
|
|
||||||
@@ -54,7 +72,11 @@ if [ -z "$FORCE" ]; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
for hook in "${before_hooks[@]}"; do eval "$hook"; done
|
||||||
|
|
||||||
if [ -d "$PREFIX" ]; then
|
if [ -d "$PREFIX" ]; then
|
||||||
rm -rf "$PREFIX"
|
rm -rf "$PREFIX"
|
||||||
pyenv rehash
|
pyenv-rehash
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
PYTHON_BUILD_VERSION="20131225.1"
|
PYTHON_BUILD_VERSION="20140110.1"
|
||||||
|
|
||||||
set -E
|
set -E
|
||||||
exec 3<&2 # preserve original stderr at fd 3
|
exec 3<&2 # preserve original stderr at fd 3
|
||||||
@@ -165,9 +165,11 @@ make_package() {
|
|||||||
shift
|
shift
|
||||||
|
|
||||||
pushd "$package_name" >&4
|
pushd "$package_name" >&4
|
||||||
|
setup_builtin_patches "$package_name"
|
||||||
before_install_package "$package_name"
|
before_install_package "$package_name"
|
||||||
build_package "$package_name" $*
|
build_package "$package_name" $*
|
||||||
after_install_package "$package_name"
|
after_install_package "$package_name"
|
||||||
|
cleanup_builtin_patches "$package_name"
|
||||||
fix_directory_permissions
|
fix_directory_permissions
|
||||||
popd >&4
|
popd >&4
|
||||||
}
|
}
|
||||||
@@ -699,29 +701,31 @@ build_package_copy() {
|
|||||||
|
|
||||||
before_install_package() {
|
before_install_package() {
|
||||||
local stub=1
|
local stub=1
|
||||||
before_install_package_patch "$@"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
before_install_package_patch() {
|
after_install_package() {
|
||||||
|
local stub=1
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_builtin_patches() {
|
||||||
local package_name="$1"
|
local package_name="$1"
|
||||||
local package_patch_path="${PYTHON_BUILD_ROOT}/share/python-build/patches/${DEFINITION_PATH##*/}/${package_name}"
|
local package_patch_path="${PYTHON_BUILD_ROOT}/share/python-build/patches/${DEFINITION_PATH##*/}/${package_name}"
|
||||||
|
|
||||||
ORIG_HAS_PATCH="$HAS_PATCH"
|
ORIG_HAS_PATCH="$HAS_PATCH"
|
||||||
# Apply built-in patches if patch was not given from stdin
|
# Apply built-in patches if patch was not given from stdin
|
||||||
if [ -z "$HAS_PATCH" ] && [ -d "${package_patch_path}" ]; then
|
if [ -z "$HAS_PATCH" ] && [ -d "${package_patch_path}" ]; then
|
||||||
( cat "${package_patch_path}"/* || true ) 2>/dev/null 1>"${package_name}.patch"
|
local patch
|
||||||
|
{ for patch in "${package_patch_path}"/*; do
|
||||||
|
[ -f "${patch}" ] && echo "${patch}"
|
||||||
|
done
|
||||||
|
} 2>/dev/null | sort | xargs cat 1>"${package_name}.patch"
|
||||||
exec <&-
|
exec <&-
|
||||||
exec <"${package_name}.patch"
|
exec <"${package_name}.patch"
|
||||||
HAS_PATCH=true
|
HAS_PATCH=true
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
after_install_package() {
|
cleanup_builtin_patches() {
|
||||||
local stub=1
|
|
||||||
after_install_package_patch "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
after_install_package_patch() {
|
|
||||||
local package_name="$1"
|
local package_name="$1"
|
||||||
rm -f "${package_name}.patch"
|
rm -f "${package_name}.patch"
|
||||||
HAS_PATCH="$ORIG_HAS_PATCH"
|
HAS_PATCH="$ORIG_HAS_PATCH"
|
||||||
@@ -897,7 +901,6 @@ require_java() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
needs_yaml() {
|
needs_yaml() {
|
||||||
[[ "$PYTHON_CONFIGURE_OPTS" != *--with-libyaml-dir=* ]] &&
|
|
||||||
! use_homebrew_yaml
|
! use_homebrew_yaml
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -910,28 +913,37 @@ use_homebrew_yaml() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configured_with_readline_dir() {
|
||||||
|
# Mac OS X 10.4 has broken readline.
|
||||||
|
# https://github.com/yyuu/pyenv/issues/23
|
||||||
|
local arg flag
|
||||||
|
for arg in ${CONFIGURE_OPTS} ${PYTHON_CONFIGURE_OPTS} "${PYTHON_CONFIGURE_OPTS_ARRAY[@]}"; do
|
||||||
|
if [[ "$arg" == "CPPFLAGS="* ]]; then
|
||||||
|
for flag in ${CPPFLAGS} ${arg##CPPFLAGS=}; do
|
||||||
|
if [[ "$flag" == "-I"* ]] && [ -e "${flag##-I}/readline/rlconf.h" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
has_broken_mac_readline() {
|
has_broken_mac_readline() {
|
||||||
if [ "$(uname -s)" = "Darwin" ] && ! use_homebrew_readline; then
|
[ "$(uname -s)" = "Darwin" ] &&
|
||||||
# MacOSX 10.4 has a broken readline.
|
! configured_with_readline_dir &&
|
||||||
# https://github.com/yyuu/pyenv/issues/23
|
! use_homebrew_readline
|
||||||
local retval=1
|
|
||||||
local conftest="$BUILD_PATH/has_broken_mac_readline.h"
|
|
||||||
echo "#include <readline/rlconf.h>" > "$conftest"
|
|
||||||
"${CPP:-cpp}" $CPPFLAGS "$conftest" 1>/dev/null 2>&1 || retval=0
|
|
||||||
rm -f "$conftest"
|
|
||||||
return "$retval"
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
use_homebrew_readline() {
|
use_homebrew_readline() {
|
||||||
|
if ! configured_with_readline_dir; then
|
||||||
local libdir="$(brew --prefix readline 2>/dev/null || true)"
|
local libdir="$(brew --prefix readline 2>/dev/null || true)"
|
||||||
if [ -d "$libdir" ]; then
|
if [ -d "$libdir" ]; then
|
||||||
package_option python configure CPPFLAGS="-I$libdir/include" LDFLAGS="-L$libdir/lib"
|
package_option python configure CPPFLAGS="-I$libdir/include" LDFLAGS="-L$libdir/lib"
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
has_broken_mac_openssl() {
|
has_broken_mac_openssl() {
|
||||||
@@ -1048,23 +1060,16 @@ apply_python_patch() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
build_package_verify_python() {
|
build_package_verify_python() {
|
||||||
# Check the existence of ./bin since pyenv-which searches the executables from there
|
local package_name="$1"
|
||||||
if [ ! -d "${PREFIX_PATH}/bin" ]; then
|
local python="$2"
|
||||||
echo "pyenv: invalid Python installation" >&4 2>&1
|
if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
||||||
return 1
|
# Only symlinks are installed in ${PREFIX_PATH}/bin
|
||||||
|
rm -fr "${PREFIX_PATH}/bin"
|
||||||
|
ln -fs "${PREFIX_PATH}/Python.framework/Versions/Current/bin" "${PREFIX_PATH}/bin"
|
||||||
fi
|
fi
|
||||||
|
if [ ! -e "${PREFIX_PATH}/bin/python" ] && [ -e "${PREFIX_PATH}/bin/${python}" ]; then
|
||||||
# Create `python` executable if missing. Especially for Py3k.
|
( cd "${PREFIX_PATH}/bin" && ln -fs "${python}" "python" )
|
||||||
if [ ! -e "${PREFIX_PATH}/bin/python" ]; then
|
|
||||||
local python
|
|
||||||
for python in "${PREFIX_PATH}/bin/python"*; do
|
|
||||||
if expr "$(basename "$python")" : '^python[0-9][0-9]*\.[0-9][0-9]*$' 2>&1 >/dev/null; then
|
|
||||||
( cd "${PREFIX_PATH}/bin" && ln -fs "$(basename "$python")" python )
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -x "${PYTHON_BIN}" ]; then
|
if [ ! -x "${PYTHON_BIN}" ]; then
|
||||||
echo "pyenv: invalid Python executable: ${PYTHON_BIN}" >&4 2>&1
|
echo "pyenv: invalid Python executable: ${PYTHON_BIN}" >&4 2>&1
|
||||||
return 1
|
return 1
|
||||||
@@ -1073,57 +1078,69 @@ build_package_verify_python() {
|
|||||||
|
|
||||||
# Post-install check for Python 2.4.x
|
# Post-install check for Python 2.4.x
|
||||||
build_package_verify_py24() {
|
build_package_verify_py24() {
|
||||||
build_package_verify_python "$@"
|
build_package_verify_python "$1" "${2:-python2.4}"
|
||||||
build_package_verify_readline "$@"
|
build_package_verify_readline "$1" "${2:-python2.4}"
|
||||||
build_package_verify_zlib "$@"
|
build_package_verify_zlib "$1" "${2:-python2.4}"
|
||||||
build_package_verify_bz2 "$@"
|
build_package_verify_bz2 "$1" "${2:-python2.4}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Post-install check for Python 2.5.x
|
# Post-install check for Python 2.5.x
|
||||||
build_package_verify_py25() {
|
build_package_verify_py25() {
|
||||||
build_package_verify_py24 "$@"
|
build_package_verify_py24 "$1" "${2:-python2.5}"
|
||||||
build_package_verify_sqlite3 "$@"
|
build_package_verify_sqlite3 "$1" "${2:-python2.5}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Post-install check for Python 2.6.x
|
# Post-install check for Python 2.6.x
|
||||||
build_package_verify_py26() {
|
build_package_verify_py26() {
|
||||||
build_package_verify_py25 "$@"
|
build_package_verify_py25 "$1" "${2:-python2.6}"
|
||||||
build_package_verify_ssl "$@"
|
build_package_verify_ssl "$1" "${2:-python2.6}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Post-install check for Python 2.7.x
|
# Post-install check for Python 2.7.x
|
||||||
build_package_verify_py27() {
|
build_package_verify_py27() {
|
||||||
build_package_verify_py26 "$@"
|
build_package_verify_py26 "$1" "${2:-python2.7}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Post-install check for Python 3.0.x
|
# Post-install check for Python 3.0.x
|
||||||
build_package_verify_py30() {
|
build_package_verify_py30() {
|
||||||
build_package_verify_python "$@"
|
build_package_verify_python "$1" "${2:-python3.0}"
|
||||||
build_package_verify_readline "$@"
|
build_package_verify_readline "$1" "${2:-python3.0}"
|
||||||
build_package_verify_ssl "$@"
|
build_package_verify_ssl "$1" "${2:-python3.0}"
|
||||||
build_package_verify_sqlite3 "$@"
|
build_package_verify_sqlite3 "$1" "${2:-python3.0}"
|
||||||
build_package_verify_zlib "$@"
|
build_package_verify_zlib "$1" "${2:-python3.0}"
|
||||||
build_package_verify_bz2 "$@"
|
build_package_verify_bz2 "$1" "${2:-python3.0}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Post-install check for Python 3.1.x
|
# Post-install check for Python 3.1.x
|
||||||
build_package_verify_py31() {
|
build_package_verify_py31() {
|
||||||
build_package_verify_py30 "$@"
|
build_package_verify_py30 "$1" "${2:-python3.1}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Post-install check for Python 3.2.x
|
# Post-install check for Python 3.2.x
|
||||||
build_package_verify_py32() {
|
build_package_verify_py32() {
|
||||||
build_package_verify_py31 "$@"
|
build_package_verify_py31 "$1" "${2:-python3.2}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Post-install check for Python 3.3.x
|
# Post-install check for Python 3.3.x
|
||||||
build_package_verify_py33() {
|
build_package_verify_py33() {
|
||||||
build_package_verify_py32 "$@"
|
build_package_verify_py32 "$1" "${2:-python3.3}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Post-install check for Python 3.4.x
|
# Post-install check for Python 3.4.x
|
||||||
build_package_verify_py34() {
|
build_package_verify_py34() {
|
||||||
build_package_verify_py33 "$@"
|
build_package_verify_py33 "$1" "${2:-python3.4}"
|
||||||
|
}
|
||||||
|
|
||||||
|
build_package_ensurepip() {
|
||||||
|
{ "$PYTHON_BIN" -m ensurepip
|
||||||
|
} >&4 2>&1
|
||||||
|
|
||||||
|
if [ ! -e "${PREFIX_PATH}/bin/pip" ]; then
|
||||||
|
local pip="$("$PYTHON_BIN" -c 'import sys;v=sys.version_info;sys.stdout.write("pip%d.%d"%(v[0],v[1]))')"
|
||||||
|
if [ -e "${PREFIX_PATH}/bin/${pip}" ]; then
|
||||||
|
( cd "${PREFIX_PATH}/bin" && ln -fs "${pip}" "pip" )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
build_package_verify_import() {
|
build_package_verify_import() {
|
||||||
@@ -1193,8 +1210,8 @@ list_definitions() {
|
|||||||
unset VERBOSE
|
unset VERBOSE
|
||||||
unset KEEP_BUILD_PATH
|
unset KEEP_BUILD_PATH
|
||||||
unset HAS_PATCH
|
unset HAS_PATCH
|
||||||
unset DEBUG
|
|
||||||
PYTHON_BUILD_ROOT="$(abs_dirname "$0")/.."
|
PYTHON_BUILD_ROOT="$(abs_dirname "$0")/.."
|
||||||
|
unset DEBUG
|
||||||
|
|
||||||
parse_options "$@"
|
parse_options "$@"
|
||||||
|
|
||||||
@@ -1311,19 +1328,34 @@ if [ -n "$DEBUG" ]; then
|
|||||||
package_option python configure --with-pydebug
|
package_option python configure --with-pydebug
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-shared"* ]] && [[ "$LDFLAGS" != *"-rpath="* ]]; then
|
if [[ "$CONFIGURE_OPTS" == *"--enable-shared"* ]] || [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-shared"* ]]; then
|
||||||
# The ld on Darwin embeds the full paths to each dylib by default
|
# The ld on Darwin embeds the full paths to each dylib by default
|
||||||
if [[ "Darwin" != "$(uname -s)" ]]; then
|
if [[ "$LDFLAGS" != *"-rpath="* ]] && [[ "Darwin" != "$(uname -s)" ]]; then
|
||||||
export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib ${LDFLAGS}"
|
export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib ${LDFLAGS}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
||||||
|
create_framework_dirs() {
|
||||||
|
local version="$(echo "$1" | sed -E 's/^[^0-9]*([0-9]+\.[0-9]+).*$/\1/')"
|
||||||
|
mkdir -p "${PREFIX_PATH}/Python.framework/Versions/${version}"
|
||||||
|
( cd "${PREFIX_PATH}/Python.framework/Versions" && ln -fs "${version}" "Current")
|
||||||
|
local path
|
||||||
|
for path in include lib share; do
|
||||||
|
mkdir -p "${PREFIX_PATH}/Python.framework/Versions/Current/${path}"
|
||||||
|
ln -fs "${PREFIX_PATH}/Python.framework/Versions/Current/${path}" "${PREFIX_PATH}/${path}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
create_framework_dirs "${DEFINITION_PATH##*/}"
|
||||||
|
package_option python configure --enable-framework="${PREFIX_PATH}"
|
||||||
|
fi
|
||||||
|
|
||||||
SEED="$(date "+%Y%m%d%H%M%S").$$"
|
SEED="$(date "+%Y%m%d%H%M%S").$$"
|
||||||
LOG_PATH="${TMP}/python-build.${SEED}.log"
|
LOG_PATH="${TMP}/python-build.${SEED}.log"
|
||||||
PYTHON_BIN="${PREFIX_PATH}/bin/python"
|
PYTHON_BIN="${PREFIX_PATH}/bin/python"
|
||||||
CWD="$(pwd)"
|
CWD="$(pwd)"
|
||||||
|
|
||||||
if [ -z $PYTHON_BUILD_BUILD_PATH ]; then
|
if [ -z "$PYTHON_BUILD_BUILD_PATH" ]; then
|
||||||
BUILD_PATH="${TMP}/python-build.${SEED}"
|
BUILD_PATH="${TMP}/python-build.${SEED}"
|
||||||
else
|
else
|
||||||
BUILD_PATH="$PYTHON_BUILD_BUILD_PATH"
|
BUILD_PATH="$PYTHON_BUILD_BUILD_PATH"
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-2.6-dev" "https://bitbucket.org/mirror/cpython" "2.6" standard verify_py26
|
install_hg "Python-2.6-dev" "https://bitbucket.org/mirror/cpython" "2.6" standard verify_py26
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.6.6" "http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz#b2f209df270a33315e62c1ffac1937f0" ldflags_dirs standard verify_py26
|
install_package "Python-2.6.6" "http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz#b2f209df270a33315e62c1ffac1937f0" ldflags_dirs standard verify_py26
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.6.7" "http://python.org/ftp/python/2.6.7/Python-2.6.7.tgz#af474f85a3af69ea50438a2a48039d7d" ldflags_dirs standard verify_py26
|
install_package "Python-2.6.7" "http://python.org/ftp/python/2.6.7/Python-2.6.7.tgz#af474f85a3af69ea50438a2a48039d7d" ldflags_dirs standard verify_py26
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.6.8" "http://python.org/ftp/python/2.6.8/Python-2.6.8.tgz#f6c1781f5d73ab7dfa5181f43ea065f6" ldflags_dirs standard verify_py26
|
install_package "Python-2.6.8" "http://python.org/ftp/python/2.6.8/Python-2.6.8.tgz#f6c1781f5d73ab7dfa5181f43ea065f6" ldflags_dirs standard verify_py26
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.6.9" "http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz#bddbd64bf6f5344fc55bbe49a72fe4f3" ldflags_dirs standard verify_py26
|
install_package "Python-2.6.9" "http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz#bddbd64bf6f5344fc55bbe49a72fe4f3" ldflags_dirs standard verify_py26
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.7" "http://python.org/ftp/python/2.7/Python-2.7.tgz#35f56b092ecf39a6bd59d64f142aae0f" ldflags_dirs standard verify_py27
|
install_package "Python-2.7" "http://python.org/ftp/python/2.7/Python-2.7.tgz#35f56b092ecf39a6bd59d64f142aae0f" ldflags_dirs standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-2.7-dev" "https://bitbucket.org/mirror/cpython" "2.7" standard verify_py27
|
install_hg "Python-2.7-dev" "https://bitbucket.org/mirror/cpython" "2.7" standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.7.1" "http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz#15ed56733655e3fab785e49a7278d2fb" ldflags_dirs standard verify_py27
|
install_package "Python-2.7.1" "http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz#15ed56733655e3fab785e49a7278d2fb" ldflags_dirs standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.7.2" "http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz#0ddfe265f1b3d0a8c2459f5bf66894c7" ldflags_dirs standard verify_py27
|
install_package "Python-2.7.2" "http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz#0ddfe265f1b3d0a8c2459f5bf66894c7" ldflags_dirs standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.7.3" "http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz#2cf641732ac23b18d139be077bd906cd" ldflags_dirs standard verify_py27
|
install_package "Python-2.7.3" "http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz#2cf641732ac23b18d139be077bd906cd" ldflags_dirs standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.7.4" "http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz#592603cfaf4490a980e93ecb92bde44a" ldflags_dirs standard verify_py27
|
install_package "Python-2.7.4" "http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz#592603cfaf4490a980e93ecb92bde44a" ldflags_dirs standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.7.5" "http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz#b4f01a1d0ba0b46b05c73b2ac909b1df" ldflags_dirs standard verify_py27
|
install_package "Python-2.7.5" "http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz#b4f01a1d0ba0b46b05c73b2ac909b1df" ldflags_dirs standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-2.7.6" "http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz#1d8728eb0dfcac72a0fd99c17ec7f386" ldflags_dirs standard verify_py27
|
install_package "Python-2.7.6" "http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz#1d8728eb0dfcac72a0fd99c17ec7f386" ldflags_dirs standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.0.1" "http://python.org/ftp/python/3.0.1/Python-3.0.1.tgz#220b73f0a1a20c4b1cdf9f9db4cd52fe" ldflags_dirs standard verify_py30
|
install_package "Python-3.0.1" "http://python.org/ftp/python/3.0.1/Python-3.0.1.tgz#220b73f0a1a20c4b1cdf9f9db4cd52fe" ldflags_dirs standard verify_py30
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-3.1-dev" "https://bitbucket.org/mirror/cpython" "3.1" standard verify_py31
|
install_hg "Python-3.1-dev" "https://bitbucket.org/mirror/cpython" "3.1" standard verify_py31
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.1.3" "http://python.org/ftp/python/3.1.3/Python-3.1.3.tgz#d797fa6abe82c21227e328f05a535424" ldflags_dirs standard verify_py31
|
install_package "Python-3.1.3" "http://python.org/ftp/python/3.1.3/Python-3.1.3.tgz#d797fa6abe82c21227e328f05a535424" ldflags_dirs standard verify_py31
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.1.4" "http://python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fa9f8efdc63944c8393870282e8b5c35" ldflags_dirs standard verify_py31
|
install_package "Python-3.1.4" "http://python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fa9f8efdc63944c8393870282e8b5c35" ldflags_dirs standard verify_py31
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.1.5" "http://python.org/ftp/python/3.1.5/Python-3.1.5.tgz#02196d3fc7bc76bdda68aa36b0dd16ab" ldflags_dirs standard verify_py31
|
install_package "Python-3.1.5" "http://python.org/ftp/python/3.1.5/Python-3.1.5.tgz#02196d3fc7bc76bdda68aa36b0dd16ab" ldflags_dirs standard verify_py31
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.2" "http://python.org/ftp/python/3.2/Python-3.2.tgz#5efe838a7878b170f6728d7e5d7517af" ldflags_dirs standard verify_py32
|
install_package "Python-3.2" "http://python.org/ftp/python/3.2/Python-3.2.tgz#5efe838a7878b170f6728d7e5d7517af" ldflags_dirs standard verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-3.2-dev" "https://bitbucket.org/mirror/cpython" "3.2" standard verify_py32
|
install_hg "Python-3.2-dev" "https://bitbucket.org/mirror/cpython" "3.2" standard verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tgz#6c2aa3481cadb7bdf74e625fffc352b2" ldflags_dirs standard verify_py32
|
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tgz#6c2aa3481cadb7bdf74e625fffc352b2" ldflags_dirs standard verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.2.2" "http://python.org/ftp/python/3.2.2/Python-3.2.2.tgz#3c63a6d97333f4da35976b6a0755eb67" ldflags_dirs standard verify_py32
|
install_package "Python-3.2.2" "http://python.org/ftp/python/3.2.2/Python-3.2.2.tgz#3c63a6d97333f4da35976b6a0755eb67" ldflags_dirs standard verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.2.3" "http://python.org/ftp/python/3.2.3/Python-3.2.3.tgz#dcf3a738e7028f1deb41b180bf0e2cbc" ldflags_dirs standard verify_py32
|
install_package "Python-3.2.3" "http://python.org/ftp/python/3.2.3/Python-3.2.3.tgz#dcf3a738e7028f1deb41b180bf0e2cbc" ldflags_dirs standard verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.2.4" "http://python.org/ftp/python/3.2.4/Python-3.2.4.tgz#3af05758d0bc2b1a27249e8d622c3e91" ldflags_dirs standard verify_py32
|
install_package "Python-3.2.4" "http://python.org/ftp/python/3.2.4/Python-3.2.4.tgz#3af05758d0bc2b1a27249e8d622c3e91" ldflags_dirs standard verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.2.5" "http://python.org/ftp/python/3.2.5/Python-3.2.5.tgz#ed8d5529d2aebc36b53f4e0a0c9e6728" ldflags_dirs standard verify_py32
|
install_package "Python-3.2.5" "http://python.org/ftp/python/3.2.5/Python-3.2.5.tgz#ed8d5529d2aebc36b53f4e0a0c9e6728" ldflags_dirs standard verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-3.3-dev" "https://bitbucket.org/mirror/cpython" "3.3" standard verify_py33
|
install_hg "Python-3.3-dev" "https://bitbucket.org/mirror/cpython" "3.3" standard verify_py33
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.3.0" "http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz#198a64f7a04d1d5e95ce2782d5fd8254" ldflags_dirs standard verify_py33
|
install_package "Python-3.3.0" "http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz#198a64f7a04d1d5e95ce2782d5fd8254" ldflags_dirs standard verify_py33
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.3.1" "http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz#c19bfd6ea252b61779a4f2996fb3b330" ldflags_dirs standard verify_py33
|
install_package "Python-3.3.1" "http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz#c19bfd6ea252b61779a4f2996fb3b330" ldflags_dirs standard verify_py33
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.3.2" "http://python.org/ftp/python/3.3.2/Python-3.3.2.tgz#0a2ea57f6184baf45b150aee53c0c8da" ldflags_dirs standard verify_py33
|
install_package "Python-3.3.2" "http://python.org/ftp/python/3.3.2/Python-3.3.2.tgz#0a2ea57f6184baf45b150aee53c0c8da" ldflags_dirs standard verify_py33
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.3.3" "http://python.org/ftp/python/3.3.3/Python-3.3.3.tgz#831d59212568dc12c95df222865d3441" ldflags_dirs standard verify_py33
|
install_package "Python-3.3.3" "http://python.org/ftp/python/3.3.3/Python-3.3.3.tgz#831d59212568dc12c95df222865d3441" ldflags_dirs standard verify_py33
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
require_cc "gcc" "clang"
|
require_cc "gcc" "clang"
|
||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-3.4-dev" "https://bitbucket.org/mirror/cpython" "default" standard verify_py34
|
install_hg "Python-3.4-dev" "https://bitbucket.org/mirror/cpython" "default" standard verify_py34 ensurepip
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.4.0a2" "http://python.org/ftp/python/3.4.0/Python-3.4.0a2.tgz#e6e81242a32e6f63d224254d24edbd2f" ldflags_dirs standard verify_py34
|
install_package "Python-3.4.0a2" "http://python.org/ftp/python/3.4.0/Python-3.4.0a2.tgz#e6e81242a32e6f63d224254d24edbd2f" ldflags_dirs standard verify_py34
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.4.0a3" "http://python.org/ftp/python/3.4.0/Python-3.4.0a3.tgz#3598af9717cddd4c346d731913fdfd64" ldflags_dirs standard verify_py34
|
install_package "Python-3.4.0a3" "http://python.org/ftp/python/3.4.0/Python-3.4.0a3.tgz#3598af9717cddd4c346d731913fdfd64" ldflags_dirs standard verify_py34
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.4.0a4" "http://python.org/ftp/python/3.4.0/Python-3.4.0a4.tgz#f874d97c90130b0249848be889b5e6e1" ldflags_dirs standard verify_py34
|
install_package "Python-3.4.0a4" "http://python.org/ftp/python/3.4.0/Python-3.4.0a4.tgz#f874d97c90130b0249848be889b5e6e1" ldflags_dirs standard verify_py34
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
require_cc "gcc" "clang"
|
require_cc "gcc" "clang"
|
||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.4.0b1" "http://python.org/ftp/python/3.4.0/Python-3.4.0b1.tgz#83143a755b8a29a59026c1fdfb8d18fc" ldflags_dirs standard verify_py34
|
install_package "Python-3.4.0b1" "http://python.org/ftp/python/3.4.0/Python-3.4.0b1.tgz#83143a755b8a29a59026c1fdfb8d18fc" ldflags_dirs standard verify_py34 ensurepip
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
require_cc "gcc" "clang"
|
require_cc "gcc" "clang"
|
||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.4.0b2" "http://python.org/ftp/python/3.4.0/Python-3.4.0b2.tgz#afe112d6fe595f501f1dcb3627e7b476" ldflags_dirs standard verify_py34
|
install_package "Python-3.4.0b2" "http://python.org/ftp/python/3.4.0/Python-3.4.0b2.tgz#afe112d6fe595f501f1dcb3627e7b476" ldflags_dirs standard verify_py34 ensurepip
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
|
||||||
|
|||||||
@@ -25,4 +25,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_package "pypy-1.5-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-src.tar.bz2" "pypy_builder" verify_py27
|
install_package "pypy-1.5-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-src.tar.bz2" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -24,4 +24,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -25,4 +25,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_hg "pypy-1.7-dev" "https://bitbucket.org/pypy/pypy" "release-1.7.x" "pypy_builder" verify_py27
|
install_hg "pypy-1.7-dev" "https://bitbucket.org/pypy/pypy" "release-1.7.x" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -25,4 +25,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_hg "pypy-1.8-dev" "https://bitbucket.org/pypy/pypy" "release-1.8.x" "pypy_builder" verify_py27
|
install_hg "pypy-1.8-dev" "https://bitbucket.org/pypy/pypy" "release-1.8.x" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -25,4 +25,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_hg "pypy-1.9-dev" "https://bitbucket.org/pypy/pypy" "release-1.9.x" "pypy_builder" verify_py27
|
install_hg "pypy-1.9-dev" "https://bitbucket.org/pypy/pypy" "release-1.9.x" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -30,4 +30,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_hg "pypy-2.0-dev" "https://bitbucket.org/pypy/pypy" "release-2.0.x" "pypy_builder" verify_py27
|
install_hg "pypy-2.0-dev" "https://bitbucket.org/pypy/pypy" "release-2.0.x" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_package "pypy-2.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-src.tar.bz2#4dc82e2240dd2b5be313119672988538" "pypy_builder" verify_py27
|
install_package "pypy-2.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-src.tar.bz2#4dc82e2240dd2b5be313119672988538" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -24,4 +24,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_package "pypy-2.0.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.1-src.tar.bz2#34072be1eeb63f9d37cf387e58aae81d" "pypy_builder" verify_py27
|
install_package "pypy-2.0.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.1-src.tar.bz2#34072be1eeb63f9d37cf387e58aae81d" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -24,4 +24,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_package "pypy-2.0.2-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.2-src.tar.bz2#c26662e348159b460057548ddaf35333" "pypy_builder" verify_py27
|
install_package "pypy-2.0.2-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.2-src.tar.bz2#c26662e348159b460057548ddaf35333" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -30,4 +30,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_package "pypy-2.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-src.tar.bz2#7c43cd95aa37a7f0ca2465ed930646c0" "pypy_builder" verify_py27
|
install_package "pypy-2.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-src.tar.bz2#7c43cd95aa37a7f0ca2465ed930646c0" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -30,4 +30,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_package "pypy-2.2-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-src.tar.bz2#5a5a3822605d7d811066b1b279da3c6e" "pypy_builder" verify_py27
|
install_package "pypy-2.2-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-src.tar.bz2#5a5a3822605d7d811066b1b279da3c6e" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -30,4 +30,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_package "pypy-2.2.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-src.tar.bz2#7ec9f48702323f9e93654ba73dd46720" "pypy_builder" verify_py27
|
install_package "pypy-2.2.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-src.tar.bz2#7ec9f48702323f9e93654ba73dd46720" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_hg "pypy-dev" "https://bitbucket.org/pypy/pypy" "default" "pypy_builder" verify_py27
|
install_hg "pypy-dev" "https://bitbucket.org/pypy/pypy" "default" "pypy_builder" verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -30,4 +30,4 @@ case "$(uname -s)" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_package "pypy3-2.1-beta1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.1-beta1-src.tar.bz2#bc2013d1927dc1c0c91228e566abd8da" "pypy_builder" verify_py32
|
install_package "pypy3-2.1-beta1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.1-beta1-src.tar.bz2#bc2013d1927dc1c0c91228e566abd8da" "pypy_builder" verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require_gcc
|
require_gcc
|
||||||
install_hg "pypy3-dev" "https://bitbucket.org/pypy/pypy" "py3k" "pypy_builder" verify_py32
|
install_hg "pypy3-dev" "https://bitbucket.org/pypy/pypy" "py3k" "pypy_builder" verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "stackless-2.7-dev" "http://hg.python.org/stackless" "2.7-slp" standard verify_py27
|
install_hg "stackless-2.7-dev" "http://hg.python.org/stackless" "2.7-slp" standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "stackless-272-export" "http://www.stackless.com/binaries/stackless-272-export.tar.bz2#79a718db998f2cdd95478d2cb54d56f2" ldflags_dirs standard verify_py27
|
install_package "stackless-272-export" "http://www.stackless.com/binaries/stackless-272-export.tar.bz2#79a718db998f2cdd95478d2cb54d56f2" ldflags_dirs standard verify_py27
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "stackless-3.2-dev" "http://hg.python.org/stackless" "3.2-slp" standard verify_py32
|
install_hg "stackless-3.2-dev" "http://hg.python.org/stackless" "3.2-slp" standard verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_package "stackless-322-export" "http://www.stackless.com/binaries/stackless-322-export.tar.bz2#3a3edcfb4240bdcc580cec2baea60af4" ldflags_dirs standard verify_py32
|
install_package "stackless-322-export" "http://www.stackless.com/binaries/stackless-322-export.tar.bz2#3a3edcfb4240bdcc580cec2baea60af4" ldflags_dirs standard verify_py32
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "stackless-3.3-dev" "http://hg.python.org/stackless" "3.3-slp" standard verify_py33
|
install_hg "stackless-3.3-dev" "http://hg.python.org/stackless" "3.3-slp" standard verify_py33
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ require_cc "gcc" "clang"
|
|||||||
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
install_hg "stackless-dev" "http://hg.python.org/stackless" "default" standard verify_py33
|
install_hg "stackless-dev" "http://hg.python.org/stackless" "default" standard verify_py33
|
||||||
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
install_package "setuptools-2.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.1.tar.gz#2044725530450d0517393882dc4b7508" python
|
||||||
install_package "pip-1.5" "https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz#6969b8a8adc4c7f7c5eb1707118f0686" python
|
install_package "pip-1.5.1" "https://pypi.python.org/packages/source/p/pip/pip-1.5.1.tar.gz#4678c2ae5cce4e9234c3923d7dcb32f0" python
|
||||||
|
|||||||
299
plugins/python-build/test/build.bats
Normal file
299
plugins/python-build/test/build.bats
Normal file
@@ -0,0 +1,299 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
export PYTHON_BUILD_CACHE_PATH="$TMP/cache"
|
||||||
|
export MAKE=make
|
||||||
|
export MAKE_OPTS="-j 2"
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
mkdir -p "$INSTALL_ROOT"
|
||||||
|
stub md5 false
|
||||||
|
stub curl false
|
||||||
|
}
|
||||||
|
|
||||||
|
executable() {
|
||||||
|
local file="$1"
|
||||||
|
mkdir -p "${file%/*}"
|
||||||
|
cat > "$file"
|
||||||
|
chmod +x "$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
cached_tarball() {
|
||||||
|
mkdir -p "$PYTHON_BUILD_CACHE_PATH"
|
||||||
|
pushd "$PYTHON_BUILD_CACHE_PATH" >/dev/null
|
||||||
|
tarball "$@"
|
||||||
|
popd >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
tarball() {
|
||||||
|
local name="$1"
|
||||||
|
local path="$PWD/$name"
|
||||||
|
local configure="$path/configure"
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
executable "$configure" <<OUT
|
||||||
|
#!$BASH
|
||||||
|
echo "$name: \$@" \${PYTHONOPT:+PYTHONOPT=\$PYTHONOPT} >> build.log
|
||||||
|
OUT
|
||||||
|
|
||||||
|
for file; do
|
||||||
|
mkdir -p "$(dirname "${path}/${file}")"
|
||||||
|
touch "${path}/${file}"
|
||||||
|
done
|
||||||
|
|
||||||
|
tar czf "${path}.tar.gz" -C "${path%/*}" "$name"
|
||||||
|
}
|
||||||
|
|
||||||
|
stub_make_install() {
|
||||||
|
stub "$MAKE" \
|
||||||
|
" : echo \"$MAKE \$@\" >> build.log" \
|
||||||
|
"install : cat build.log >> '$INSTALL_ROOT/build.log'"
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_build_log() {
|
||||||
|
run cat "$INSTALL_ROOT/build.log"
|
||||||
|
assert_output
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "yaml is installed for python" {
|
||||||
|
cached_tarball "yaml-0.1.4"
|
||||||
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
stub brew false
|
||||||
|
stub_make_install
|
||||||
|
stub_make_install
|
||||||
|
|
||||||
|
install_fixture definitions/needs-yaml
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub make
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
yaml-0.1.4: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib
|
||||||
|
make -j 2
|
||||||
|
Python-3.2.1: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib
|
||||||
|
make -j 2
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "apply python patch before building" {
|
||||||
|
cached_tarball "yaml-0.1.4"
|
||||||
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
stub brew false
|
||||||
|
stub_make_install
|
||||||
|
stub_make_install
|
||||||
|
stub patch ' : echo patch "$@" >> build.log'
|
||||||
|
|
||||||
|
install_fixture --patch definitions/needs-yaml
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub make
|
||||||
|
unstub patch
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
yaml-0.1.4: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib
|
||||||
|
make -j 2
|
||||||
|
patch -p0 -i -
|
||||||
|
Python-3.2.1: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib
|
||||||
|
make -j 2
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "yaml is linked from Homebrew" {
|
||||||
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
brew_libdir="$TMP/homebrew-yaml"
|
||||||
|
mkdir -p "$brew_libdir"
|
||||||
|
|
||||||
|
stub brew "--prefix libyaml : echo '$brew_libdir'" false
|
||||||
|
stub_make_install
|
||||||
|
|
||||||
|
install_fixture definitions/needs-yaml
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub brew
|
||||||
|
unstub make
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
Python-3.2.1: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib CPPFLAGS=-I$brew_libdir/include LDFLAGS=-L$brew_libdir/lib
|
||||||
|
make -j 2
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "readline is linked from Homebrew" {
|
||||||
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
readline_libdir="$TMP/homebrew-readline"
|
||||||
|
mkdir -p "$readline_libdir"
|
||||||
|
|
||||||
|
stub brew "--prefix readline : echo '$readline_libdir'"
|
||||||
|
stub_make_install
|
||||||
|
|
||||||
|
run_inline_definition <<DEF
|
||||||
|
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tar.gz"
|
||||||
|
DEF
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub brew
|
||||||
|
unstub make
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
Python-3.2.1: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib
|
||||||
|
make -j 2
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "readline is not linked from Homebrew when explicitly defined" {
|
||||||
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
readline_libdir="$TMP/custom"
|
||||||
|
mkdir -p "$readline_libdir/include/readline"
|
||||||
|
touch "$readline_libdir/include/readline/rlconf.h"
|
||||||
|
|
||||||
|
stub brew
|
||||||
|
stub_make_install
|
||||||
|
|
||||||
|
export PYTHON_CONFIGURE_OPTS="CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib"
|
||||||
|
run_inline_definition <<DEF
|
||||||
|
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tar.gz"
|
||||||
|
DEF
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub brew
|
||||||
|
unstub make
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
Python-3.2.1: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib
|
||||||
|
make -j 2
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "number of CPU cores defaults to 2" {
|
||||||
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
stub uname '-s : echo Darwin'
|
||||||
|
stub sysctl false
|
||||||
|
stub_make_install
|
||||||
|
|
||||||
|
export -n MAKE_OPTS
|
||||||
|
run_inline_definition <<DEF
|
||||||
|
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tar.gz"
|
||||||
|
DEF
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub uname
|
||||||
|
unstub make
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
Python-3.2.1: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib
|
||||||
|
make -j 2
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "number of CPU cores is detected on Mac" {
|
||||||
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
stub uname '-s : echo Darwin'
|
||||||
|
stub sysctl '-n hw.ncpu : echo 4'
|
||||||
|
stub_make_install
|
||||||
|
|
||||||
|
export -n MAKE_OPTS
|
||||||
|
run_inline_definition <<DEF
|
||||||
|
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tar.gz"
|
||||||
|
DEF
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub uname
|
||||||
|
unstub sysctl
|
||||||
|
unstub make
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
Python-3.2.1: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib
|
||||||
|
make -j 4
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "custom relative install destination" {
|
||||||
|
export PYTHON_BUILD_CACHE_PATH="$FIXTURE_ROOT"
|
||||||
|
|
||||||
|
cd "$TMP"
|
||||||
|
install_fixture definitions/without-checksum ./here
|
||||||
|
assert_success
|
||||||
|
assert [ -x ./here/bin/package ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "make on FreeBSD defaults to gmake" {
|
||||||
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
stub uname "-s : echo FreeBSD"
|
||||||
|
MAKE=gmake stub_make_install
|
||||||
|
|
||||||
|
MAKE= install_fixture definitions/vanilla-python
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub gmake
|
||||||
|
unstub uname
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "can use PYTHON_CONFIGURE to apply a patch" {
|
||||||
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
executable "${TMP}/custom-configure" <<CONF
|
||||||
|
#!$BASH
|
||||||
|
apply -p1 -i /my/patch.diff
|
||||||
|
exec ./configure "\$@"
|
||||||
|
CONF
|
||||||
|
|
||||||
|
stub apply 'echo apply "$@" >> build.log'
|
||||||
|
stub_make_install
|
||||||
|
|
||||||
|
export PYTHON_CONFIGURE="${TMP}/custom-configure"
|
||||||
|
run_inline_definition <<DEF
|
||||||
|
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tar.gz"
|
||||||
|
DEF
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub make
|
||||||
|
unstub apply
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
apply -p1 -i /my/patch.diff
|
||||||
|
Python-3.2.1: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib
|
||||||
|
make -j 2
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "copy strategy forces overwrite" {
|
||||||
|
export PYTHON_BUILD_CACHE_PATH="$FIXTURE_ROOT"
|
||||||
|
|
||||||
|
mkdir -p "$INSTALL_ROOT/bin"
|
||||||
|
touch "$INSTALL_ROOT/bin/package"
|
||||||
|
chmod -w "$INSTALL_ROOT/bin/package"
|
||||||
|
|
||||||
|
install_fixture definitions/without-checksum
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
run "$INSTALL_ROOT/bin/package" "world"
|
||||||
|
assert_success "hello world"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "non-writable TMPDIR aborts build" {
|
||||||
|
export TMPDIR="${TMP}/build"
|
||||||
|
mkdir -p "$TMPDIR"
|
||||||
|
chmod -w "$TMPDIR"
|
||||||
|
|
||||||
|
touch "${TMP}/build-definition"
|
||||||
|
run python-build "${TMP}/build-definition" "$INSTALL_ROOT"
|
||||||
|
assert_failure "python-build: TMPDIR=$TMPDIR is set to a non-accessible location"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "non-executable TMPDIR aborts build" {
|
||||||
|
export TMPDIR="${TMP}/build"
|
||||||
|
mkdir -p "$TMPDIR"
|
||||||
|
chmod -x "$TMPDIR"
|
||||||
|
|
||||||
|
touch "${TMP}/build-definition"
|
||||||
|
run python-build "${TMP}/build-definition" "$INSTALL_ROOT"
|
||||||
|
assert_failure "python-build: TMPDIR=$TMPDIR is set to a non-accessible location"
|
||||||
|
}
|
||||||
90
plugins/python-build/test/cache.bats
Normal file
90
plugins/python-build/test/cache.bats
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
export PYTHON_BUILD_SKIP_MIRROR=1
|
||||||
|
export PYTHON_BUILD_CACHE_PATH="$TMP/cache"
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
mkdir "$PYTHON_BUILD_CACHE_PATH"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "packages are saved to download cache" {
|
||||||
|
stub md5 true
|
||||||
|
stub curl "-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/without-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "cached package without checksum" {
|
||||||
|
stub md5 true
|
||||||
|
stub curl
|
||||||
|
|
||||||
|
cp "${FIXTURE_ROOT}/package-1.0.0.tar.gz" "$PYTHON_BUILD_CACHE_PATH"
|
||||||
|
|
||||||
|
install_fixture definitions/without-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "cached package with valid checksum" {
|
||||||
|
stub md5 true "echo 83e6d7725e20166024a1eb74cde80677"
|
||||||
|
stub curl
|
||||||
|
|
||||||
|
cp "${FIXTURE_ROOT}/package-1.0.0.tar.gz" "$PYTHON_BUILD_CACHE_PATH"
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
[ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "cached package with invalid checksum falls back to mirror and updates cache" {
|
||||||
|
export PYTHON_BUILD_SKIP_MIRROR=
|
||||||
|
local checksum="83e6d7725e20166024a1eb74cde80677"
|
||||||
|
|
||||||
|
stub md5 true "echo invalid" "echo $checksum"
|
||||||
|
stub curl "-*I* : true" \
|
||||||
|
"-C - -o * -*S* http://?*/$checksum : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$4"
|
||||||
|
|
||||||
|
touch "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz"
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
[ -e "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" ]
|
||||||
|
diff -q "${PYTHON_BUILD_CACHE_PATH}/package-1.0.0.tar.gz" "${FIXTURE_ROOT}/package-1.0.0.tar.gz"
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "nonexistent cache directory is ignored" {
|
||||||
|
stub md5 true
|
||||||
|
stub curl "-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
export PYTHON_BUILD_CACHE_PATH="${TMP}/nonexistent"
|
||||||
|
|
||||||
|
install_fixture definitions/without-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
[ ! -d "$PYTHON_BUILD_CACHE_PATH" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
70
plugins/python-build/test/checksum.bats
Normal file
70
plugins/python-build/test/checksum.bats
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
export PYTHON_BUILD_SKIP_MIRROR=1
|
||||||
|
export PYTHON_BUILD_CACHE_PATH=
|
||||||
|
|
||||||
|
|
||||||
|
@test "package URL without checksum" {
|
||||||
|
stub md5 true
|
||||||
|
stub curl "-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/without-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "package URL with valid checksum" {
|
||||||
|
stub md5 true "echo 83e6d7725e20166024a1eb74cde80677"
|
||||||
|
stub curl "-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "package URL with invalid checksum" {
|
||||||
|
stub md5 true "echo 83e6d7725e20166024a1eb74cde80677"
|
||||||
|
stub curl "-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/with-invalid-checksum
|
||||||
|
[ "$status" -eq 1 ]
|
||||||
|
[ ! -f "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "package URL with checksum but no MD5 support" {
|
||||||
|
stub md5 false
|
||||||
|
stub curl "-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "package with invalid checksum" {
|
||||||
|
stub md5 true "echo invalid"
|
||||||
|
stub curl "-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
[ "$status" -eq 1 ]
|
||||||
|
[ ! -f "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
14
plugins/python-build/test/fetch.bats
Normal file
14
plugins/python-build/test/fetch.bats
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
export PYTHON_BUILD_SKIP_MIRROR=1
|
||||||
|
export PYTHON_BUILD_CACHE_PATH=
|
||||||
|
|
||||||
|
@test "failed download displays error message" {
|
||||||
|
stub curl false
|
||||||
|
|
||||||
|
install_fixture definitions/without-checksum
|
||||||
|
assert_failure
|
||||||
|
assert_output_contains "> http://example.com/packages/package-1.0.0.tar.gz"
|
||||||
|
assert_output_contains "error: failed to download package-1.0.0.tar.gz"
|
||||||
|
}
|
||||||
2
plugins/python-build/test/fixtures/definitions/needs-yaml
vendored
Normal file
2
plugins/python-build/test/fixtures/definitions/needs-yaml
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
install_package "yaml-0.1.4" "http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz" --if needs_yaml
|
||||||
|
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tar.gz"
|
||||||
1
plugins/python-build/test/fixtures/definitions/vanilla-python
vendored
Normal file
1
plugins/python-build/test/fixtures/definitions/vanilla-python
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tar.gz"
|
||||||
1
plugins/python-build/test/fixtures/definitions/with-checksum
vendored
Normal file
1
plugins/python-build/test/fixtures/definitions/with-checksum
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz#83e6d7725e20166024a1eb74cde80677" copy
|
||||||
1
plugins/python-build/test/fixtures/definitions/with-invalid-checksum
vendored
Normal file
1
plugins/python-build/test/fixtures/definitions/with-invalid-checksum
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz#invalid" copy
|
||||||
1
plugins/python-build/test/fixtures/definitions/without-checksum
vendored
Normal file
1
plugins/python-build/test/fixtures/definitions/without-checksum
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
install_package "package-1.0.0" "http://example.com/packages/package-1.0.0.tar.gz" copy
|
||||||
BIN
plugins/python-build/test/fixtures/package-1.0.0.tar.gz
vendored
Normal file
BIN
plugins/python-build/test/fixtures/package-1.0.0.tar.gz
vendored
Normal file
Binary file not shown.
56
plugins/python-build/test/hooks.bats
Normal file
56
plugins/python-build/test/hooks.bats
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
export PYENV_ROOT="${TMP}/pyenv"
|
||||||
|
export HOOK_PATH="${TMP}/i has hooks"
|
||||||
|
mkdir -p "$HOOK_PATH"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "pyenv-install hooks" {
|
||||||
|
cat > "${HOOK_PATH}/install.bash" <<OUT
|
||||||
|
before_install 'echo before: \$PREFIX'
|
||||||
|
after_install 'echo after: \$STATUS'
|
||||||
|
OUT
|
||||||
|
stub pyenv-hooks "install : echo '$HOOK_PATH'/install.bash"
|
||||||
|
stub pyenv-rehash "echo rehashed"
|
||||||
|
|
||||||
|
definition="${TMP}/3.2.1"
|
||||||
|
cat > "$definition" <<<"echo python-build"
|
||||||
|
run pyenv-install "$definition"
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<-OUT
|
||||||
|
before: ${PYENV_ROOT}/versions/3.2.1
|
||||||
|
python-build
|
||||||
|
after: 0
|
||||||
|
rehashed
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "pyenv-uninstall hooks" {
|
||||||
|
cat > "${HOOK_PATH}/uninstall.bash" <<OUT
|
||||||
|
before_uninstall 'echo before: \$PREFIX'
|
||||||
|
after_uninstall 'echo after.'
|
||||||
|
rm() {
|
||||||
|
echo "rm \$@"
|
||||||
|
command rm "\$@"
|
||||||
|
}
|
||||||
|
OUT
|
||||||
|
stub pyenv-hooks "uninstall : echo '$HOOK_PATH'/uninstall.bash"
|
||||||
|
stub pyenv-rehash "echo rehashed"
|
||||||
|
|
||||||
|
mkdir -p "${PYENV_ROOT}/versions/3.2.1"
|
||||||
|
run pyenv-uninstall -f 3.2.1
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<-OUT
|
||||||
|
before: ${PYENV_ROOT}/versions/3.2.1
|
||||||
|
rm -rf ${PYENV_ROOT}/versions/3.2.1
|
||||||
|
rehashed
|
||||||
|
after.
|
||||||
|
OUT
|
||||||
|
|
||||||
|
assert [ ! -d "${PYENV_ROOT}/versions/3.2.1" ]
|
||||||
|
}
|
||||||
49
plugins/python-build/test/installer.bats
Normal file
49
plugins/python-build/test/installer.bats
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
|
||||||
|
@test "installs python-build into PREFIX" {
|
||||||
|
cd "$TMP"
|
||||||
|
PREFIX="${PWD}/usr" run "${BATS_TEST_DIRNAME}/../install.sh"
|
||||||
|
assert_success ""
|
||||||
|
|
||||||
|
cd usr
|
||||||
|
|
||||||
|
assert [ -x bin/python-build ]
|
||||||
|
assert [ -x bin/pyenv-install ]
|
||||||
|
assert [ -x bin/pyenv-uninstall ]
|
||||||
|
|
||||||
|
assert [ -e share/python-build/2.7.2 ]
|
||||||
|
assert [ -e share/python-build/pypy-2.0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "overwrites old installation" {
|
||||||
|
cd "$TMP"
|
||||||
|
mkdir -p bin share/python-build
|
||||||
|
touch bin/python-build
|
||||||
|
touch share/python-build/2.7.2
|
||||||
|
|
||||||
|
PREFIX="$PWD" run "${BATS_TEST_DIRNAME}/../install.sh"
|
||||||
|
assert_success ""
|
||||||
|
|
||||||
|
assert [ -x bin/python-build ]
|
||||||
|
run grep "install_package" share/python-build/2.7.2
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "unrelated files are untouched" {
|
||||||
|
cd "$TMP"
|
||||||
|
mkdir -p bin share/bananas
|
||||||
|
chmod g-w bin
|
||||||
|
touch bin/bananas
|
||||||
|
touch share/bananas/docs
|
||||||
|
|
||||||
|
PREFIX="$PWD" run "${BATS_TEST_DIRNAME}/../install.sh"
|
||||||
|
assert_success ""
|
||||||
|
|
||||||
|
assert [ -e bin/bananas ]
|
||||||
|
assert [ -e share/bananas/docs ]
|
||||||
|
|
||||||
|
run ls -ld bin
|
||||||
|
assert_equal "r-x" "${output:4:3}"
|
||||||
|
}
|
||||||
103
plugins/python-build/test/mirror.bats
Normal file
103
plugins/python-build/test/mirror.bats
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
export PYTHON_BUILD_SKIP_MIRROR=
|
||||||
|
export PYTHON_BUILD_CACHE_PATH=
|
||||||
|
export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
|
||||||
|
|
||||||
|
|
||||||
|
@test "package URL without checksum bypasses mirror" {
|
||||||
|
stub md5 true
|
||||||
|
stub curl "-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/without-checksum
|
||||||
|
echo "$output" >&2
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "package URL with checksum but no MD5 support bypasses mirror" {
|
||||||
|
stub md5 false
|
||||||
|
stub curl "-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "package URL with checksum hits mirror first" {
|
||||||
|
local checksum="83e6d7725e20166024a1eb74cde80677"
|
||||||
|
local mirror_url="${PYTHON_BUILD_MIRROR_URL}/$checksum"
|
||||||
|
|
||||||
|
stub md5 true "echo $checksum"
|
||||||
|
stub curl "-*I* $mirror_url : true" \
|
||||||
|
"-C - -o * -*S* $mirror_url : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "package is fetched from original URL if mirror download fails" {
|
||||||
|
local checksum="83e6d7725e20166024a1eb74cde80677"
|
||||||
|
local mirror_url="${PYTHON_BUILD_MIRROR_URL}/$checksum"
|
||||||
|
|
||||||
|
stub md5 true "echo $checksum"
|
||||||
|
stub curl "-*I* $mirror_url : false" \
|
||||||
|
"-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "package is fetched from original URL if mirror download checksum is invalid" {
|
||||||
|
local checksum="83e6d7725e20166024a1eb74cde80677"
|
||||||
|
local mirror_url="${PYTHON_BUILD_MIRROR_URL}/$checksum"
|
||||||
|
|
||||||
|
stub md5 true "echo invalid" "echo $checksum"
|
||||||
|
stub curl "-*I* $mirror_url : true" \
|
||||||
|
"-C - -o * -*S* $mirror_url : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$4" \
|
||||||
|
"-C - -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${6##*/} \$4"
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
echo "$output" >&2
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@test "default mirror URL" {
|
||||||
|
export PYTHON_BUILD_MIRROR_URL=
|
||||||
|
local checksum="83e6d7725e20166024a1eb74cde80677"
|
||||||
|
|
||||||
|
stub md5 true "echo $checksum"
|
||||||
|
stub curl "-*I* : true" \
|
||||||
|
"-C - -o * -*S* http://?*/$checksum : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$4" \
|
||||||
|
|
||||||
|
install_fixture definitions/with-checksum
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ -x "${INSTALL_ROOT}/bin/package" ]
|
||||||
|
|
||||||
|
unstub curl
|
||||||
|
unstub md5
|
||||||
|
}
|
||||||
109
plugins/python-build/test/stubs/stub
Executable file
109
plugins/python-build/test/stubs/stub
Executable file
@@ -0,0 +1,109 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
status=0
|
||||||
|
program="${0##*/}"
|
||||||
|
PROGRAM="$(echo "$program" | tr a-z- A-Z_)"
|
||||||
|
[ -n "$TMPDIR" ] || TMPDIR="/tmp"
|
||||||
|
|
||||||
|
_STUB_PLAN="${PROGRAM}_STUB_PLAN"
|
||||||
|
_STUB_RUN="${PROGRAM}_STUB_RUN"
|
||||||
|
_STUB_INDEX="${PROGRAM}_STUB_INDEX"
|
||||||
|
_STUB_RESULT="${PROGRAM}_STUB_RESULT"
|
||||||
|
_STUB_END="${PROGRAM}_STUB_END"
|
||||||
|
_STUB_DEBUG="${PROGRAM}_STUB_DEBUG"
|
||||||
|
|
||||||
|
if [ -n "${!_STUB_DEBUG}" ]; then
|
||||||
|
echo "$program" "$@" >&${!_STUB_DEBUG}
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -e "${!_STUB_PLAN}" ] || exit 1
|
||||||
|
[ -n "${!_STUB_RUN}" ] || eval "${_STUB_RUN}"="${TMPDIR}/${program}-stub-run"
|
||||||
|
|
||||||
|
|
||||||
|
# Initialize or load the stub run information.
|
||||||
|
eval "${_STUB_INDEX}"=1
|
||||||
|
eval "${_STUB_RESULT}"=0
|
||||||
|
[ ! -e "${!_STUB_RUN}" ] || source "${!_STUB_RUN}"
|
||||||
|
|
||||||
|
|
||||||
|
# Loop over each line in the plan.
|
||||||
|
index=0
|
||||||
|
while IFS= read -r line; do
|
||||||
|
index=$(($index + 1))
|
||||||
|
|
||||||
|
if [ -z "${!_STUB_END}" ] && [ $index -eq "${!_STUB_INDEX}" ]; then
|
||||||
|
# We found the plan line we're interested in.
|
||||||
|
# Start off by assuming success.
|
||||||
|
result=0
|
||||||
|
|
||||||
|
# Split the line into an array of arguments to
|
||||||
|
# match and a command to run to produce output.
|
||||||
|
command=" $line"
|
||||||
|
if [ "$command" != "${command/ : }" ]; then
|
||||||
|
patterns="${command%% : *}"
|
||||||
|
command="${command#* : }"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Naively split patterns by whitespace for now.
|
||||||
|
# In the future, use a sed script to split while
|
||||||
|
# respecting quoting.
|
||||||
|
set -f
|
||||||
|
patterns=($patterns)
|
||||||
|
set +f
|
||||||
|
arguments=("$@")
|
||||||
|
|
||||||
|
# Match the expected argument patterns to actual
|
||||||
|
# arguments.
|
||||||
|
for (( i=0; i<${#patterns[@]}; i++ )); do
|
||||||
|
pattern="${patterns[$i]}"
|
||||||
|
argument="${arguments[$i]}"
|
||||||
|
|
||||||
|
case "$argument" in
|
||||||
|
$pattern ) ;;
|
||||||
|
* ) result=1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# If the arguments matched, evaluate the command
|
||||||
|
# in a subshell. Otherwise, log the failure.
|
||||||
|
if [ $result -eq 0 ] ; then
|
||||||
|
set +e
|
||||||
|
( eval "$command" )
|
||||||
|
status="$?"
|
||||||
|
set -e
|
||||||
|
else
|
||||||
|
eval "${_STUB_RESULT}"=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done < "${!_STUB_PLAN}"
|
||||||
|
|
||||||
|
|
||||||
|
if [ -n "${!_STUB_END}" ]; then
|
||||||
|
# Clean up the run file.
|
||||||
|
rm -f "${!_STUB_RUN}"
|
||||||
|
|
||||||
|
# If the number of lines in the plan is larger than
|
||||||
|
# the requested index, we failed.
|
||||||
|
if [ $index -ge "${!_STUB_INDEX}" ]; then
|
||||||
|
eval "${_STUB_RESULT}"=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Return the result.
|
||||||
|
exit "${!_STUB_RESULT}"
|
||||||
|
|
||||||
|
else
|
||||||
|
# If the requested index is larger than the number
|
||||||
|
# of lines in the plan file, we failed.
|
||||||
|
if [ "${!_STUB_INDEX}" -gt $index ]; then
|
||||||
|
eval "${_STUB_RESULT}"=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Write out the run information.
|
||||||
|
{ echo "${_STUB_INDEX}=$((${!_STUB_INDEX} + 1))"
|
||||||
|
echo "${_STUB_RESULT}=${!_STUB_RESULT}"
|
||||||
|
} > "${!_STUB_RUN}"
|
||||||
|
|
||||||
|
exit "$status"
|
||||||
|
|
||||||
|
fi
|
||||||
123
plugins/python-build/test/test_helper.bash
Normal file
123
plugins/python-build/test/test_helper.bash
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
export TMP="$BATS_TEST_DIRNAME/tmp"
|
||||||
|
|
||||||
|
if [ "$FIXTURE_ROOT" != "$BATS_TEST_DIRNAME/fixtures" ]; then
|
||||||
|
export FIXTURE_ROOT="$BATS_TEST_DIRNAME/fixtures"
|
||||||
|
export INSTALL_ROOT="$TMP/install"
|
||||||
|
PATH=/usr/bin:/usr/sbin:/bin/:/sbin
|
||||||
|
PATH="$BATS_TEST_DIRNAME/../bin:$PATH"
|
||||||
|
PATH="$TMP/bin:$PATH"
|
||||||
|
export PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
teardown() {
|
||||||
|
rm -fr "$TMP"/*
|
||||||
|
}
|
||||||
|
|
||||||
|
stub() {
|
||||||
|
local program="$1"
|
||||||
|
local prefix="$(echo "$program" | tr a-z- A-Z_)"
|
||||||
|
shift
|
||||||
|
|
||||||
|
export "${prefix}_STUB_PLAN"="${TMP}/${program}-stub-plan"
|
||||||
|
export "${prefix}_STUB_RUN"="${TMP}/${program}-stub-run"
|
||||||
|
export "${prefix}_STUB_END"=
|
||||||
|
|
||||||
|
mkdir -p "${TMP}/bin"
|
||||||
|
ln -sf "${BATS_TEST_DIRNAME}/stubs/stub" "${TMP}/bin/${program}"
|
||||||
|
|
||||||
|
touch "${TMP}/${program}-stub-plan"
|
||||||
|
for arg in "$@"; do printf "%s\n" "$arg" >> "${TMP}/${program}-stub-plan"; done
|
||||||
|
}
|
||||||
|
|
||||||
|
unstub() {
|
||||||
|
local program="$1"
|
||||||
|
local prefix="$(echo "$program" | tr a-z- A-Z_)"
|
||||||
|
local path="${TMP}/bin/${program}"
|
||||||
|
|
||||||
|
export "${prefix}_STUB_END"=1
|
||||||
|
|
||||||
|
local STATUS=0
|
||||||
|
"$path" || STATUS="$?"
|
||||||
|
|
||||||
|
rm -f "$path"
|
||||||
|
rm -f "${TMP}/${program}-stub-plan" "${TMP}/${program}-stub-run"
|
||||||
|
return "$STATUS"
|
||||||
|
}
|
||||||
|
|
||||||
|
run_inline_definition() {
|
||||||
|
local definition="${TMP}/build-definition"
|
||||||
|
cat > "$definition"
|
||||||
|
run python-build "$definition" "${1:-$INSTALL_ROOT}"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_fixture() {
|
||||||
|
local args
|
||||||
|
|
||||||
|
while [ "${1#-}" != "$1" ]; do
|
||||||
|
args="$args $1"
|
||||||
|
shift 1
|
||||||
|
done
|
||||||
|
|
||||||
|
local name="$1"
|
||||||
|
local destination="$2"
|
||||||
|
[ -n "$destination" ] || destination="$INSTALL_ROOT"
|
||||||
|
|
||||||
|
run python-build $args "$FIXTURE_ROOT/$name" "$destination"
|
||||||
|
}
|
||||||
|
|
||||||
|
assert() {
|
||||||
|
if ! "$@"; then
|
||||||
|
flunk "failed: $@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
flunk() {
|
||||||
|
{ if [ "$#" -eq 0 ]; then cat -
|
||||||
|
else echo "$@"
|
||||||
|
fi
|
||||||
|
} | sed "s:${TMP}:\${TMP}:g" >&2
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_success() {
|
||||||
|
if [ "$status" -ne 0 ]; then
|
||||||
|
{ echo "command failed with exit status $status"
|
||||||
|
echo "output: $output"
|
||||||
|
} | flunk
|
||||||
|
elif [ "$#" -gt 0 ]; then
|
||||||
|
assert_output "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_failure() {
|
||||||
|
if [ "$status" -eq 0 ]; then
|
||||||
|
flunk "expected failed exit status"
|
||||||
|
elif [ "$#" -gt 0 ]; then
|
||||||
|
assert_output "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_equal() {
|
||||||
|
if [ "$1" != "$2" ]; then
|
||||||
|
{ echo "expected: $1"
|
||||||
|
echo "actual: $2"
|
||||||
|
} | flunk
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_output() {
|
||||||
|
local expected
|
||||||
|
if [ $# -eq 0 ]; then expected="$(cat -)"
|
||||||
|
else expected="$1"
|
||||||
|
fi
|
||||||
|
assert_equal "$expected" "$output"
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_output_contains() {
|
||||||
|
local expected="$1"
|
||||||
|
echo "$output" | grep -F "$expected" >/dev/null || {
|
||||||
|
{ echo "expected output to contain $expected"
|
||||||
|
echo "actual: $output"
|
||||||
|
} | flunk
|
||||||
|
}
|
||||||
|
}
|
||||||
1
plugins/python-build/test/tmp/.gitignore
vendored
Normal file
1
plugins/python-build/test/tmp/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
*
|
||||||
2
test/libexec/pyenv-grep
Executable file
2
test/libexec/pyenv-grep
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
grep -E "$@"
|
||||||
@@ -5,7 +5,7 @@ load test_helper
|
|||||||
@test "blank invocation" {
|
@test "blank invocation" {
|
||||||
run pyenv
|
run pyenv
|
||||||
assert_success
|
assert_success
|
||||||
assert [ "${lines[0]}" == "pyenv 0.4.0-20140110.1" ]
|
assert [ "${lines[0]}" == "pyenv 0.4.0-20140123" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "invalid command" {
|
@test "invalid command" {
|
||||||
@@ -45,3 +45,11 @@ load test_helper
|
|||||||
assert_failure
|
assert_failure
|
||||||
assert_output "pyenv: cannot change working directory to \`$dir'"
|
assert_output "pyenv: cannot change working directory to \`$dir'"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "conflicting GREP_OPTIONS" {
|
||||||
|
file="${BATS_TMPDIR}/hello"
|
||||||
|
echo "hello" > "$file"
|
||||||
|
GREP_OPTIONS="-F" run pyenv grep "hell." "$file"
|
||||||
|
assert_success
|
||||||
|
assert_output "hello"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user