mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-14 14:23:53 -05:00
Compare commits
60 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c452da8084 | ||
|
|
e6090f00f3 | ||
|
|
6868d3053a | ||
|
|
10d3123caa | ||
|
|
2d16c638e9 | ||
|
|
3ae068b492 | ||
|
|
824f7e6b21 | ||
|
|
5d247793e6 | ||
|
|
ed700c0185 | ||
|
|
193e64b6b2 | ||
|
|
5ba585769b | ||
|
|
5540e235ab | ||
|
|
c9268bb0dc | ||
|
|
5ddc14704c | ||
|
|
5fcb4cf0bf | ||
|
|
0f288f2462 | ||
|
|
0c81c97926 | ||
|
|
5ff089de9c | ||
|
|
459725df3c | ||
|
|
ec3b7d815d | ||
|
|
afe86aef52 | ||
|
|
461ae27a19 | ||
|
|
c0f691fc57 | ||
|
|
ffc899475a | ||
|
|
57d1c9d6be | ||
|
|
9d488c9760 | ||
|
|
3db1ac13d2 | ||
|
|
880fa46156 | ||
|
|
24ad375a35 | ||
|
|
7f32e96c28 | ||
|
|
294738842c | ||
|
|
ce671398f8 | ||
|
|
a3bea25ddc | ||
|
|
1a66a9141b | ||
|
|
78c1d7186d | ||
|
|
9b60d73ec8 | ||
|
|
8a9d2557a0 | ||
|
|
2a79db00b0 | ||
|
|
3e7839c5b7 | ||
|
|
36c5cbf74f | ||
|
|
608ad6f9d0 | ||
|
|
7a6eb38a36 | ||
|
|
cd40335ba4 | ||
|
|
26450fd0ab | ||
|
|
22ecefd572 | ||
|
|
abae52ae20 | ||
|
|
114063495f | ||
|
|
7b797c3797 | ||
|
|
8e276a009e | ||
|
|
4198280142 | ||
|
|
5cb9c9af2e | ||
|
|
d6230578ec | ||
|
|
62bf3d9b61 | ||
|
|
55e6e7143a | ||
|
|
1e78acb701 | ||
|
|
648afe05a9 | ||
|
|
9aee57d965 | ||
|
|
ed684c239c | ||
|
|
fe934642c5 | ||
|
|
7c4c1757f7 |
37
CHANGELOG.md
37
CHANGELOG.md
@@ -1,5 +1,42 @@
|
|||||||
## Version History
|
## Version History
|
||||||
|
|
||||||
|
### 20150913
|
||||||
|
|
||||||
|
* python-build: Add CPython 3.5.0
|
||||||
|
* python-build: Remove CPython 3.5.0 release candidates
|
||||||
|
* python-build: Fixed anaconda3 repo's paths (#439)
|
||||||
|
* python-build: Add miniconda-3.16.0 and miniconda3-3.16.0 (#435)
|
||||||
|
|
||||||
|
### 20150901
|
||||||
|
|
||||||
|
* python-build: Add CPython 3.5.0 release candidates; 3.5.0rc1 and 3.5.0rc2
|
||||||
|
* python-build: Disabled `_FORTITY_SOURCE` to fix CPython >= 2.4, <= 2.4.3 builds (#422)
|
||||||
|
* python-build: Removed CPython 3.5.0 betas
|
||||||
|
* python-build: Add miniconda-3.10.1 and miniconda3-3.10.1 (#414)
|
||||||
|
* python-build: Add PyPy 2.6.1 (#433)
|
||||||
|
* python-build: Add PyPy-STM 2.3 and 2.5.1 (#428)
|
||||||
|
* python-build: Ignore user's site-packages on ensurepip/get-pip (#411)
|
||||||
|
* pyenv: Import recent changes from ruby-build v20150818
|
||||||
|
|
||||||
|
#### 20150719
|
||||||
|
|
||||||
|
* python-build: Add CPython `3.6-dev` (#413)
|
||||||
|
* python-build: Add Anaconda/Anaconda3 2.3.0
|
||||||
|
* python-build: Fix download URL of portable PyPy 2.6 (fixes #389)
|
||||||
|
* python-build: Use custom `MACOSX_DEPLOYMENT_TARGET` if defined (#312)
|
||||||
|
* python-build: Use original CPython repository instead of mirror at bitbucket.org as the source of `*-dev` versions (#409)
|
||||||
|
* python-build: Pin pip version to 1.5.6 for python 3.1.5 (#351)
|
||||||
|
|
||||||
|
#### 20150601
|
||||||
|
|
||||||
|
* python-build: Add PyPy 2.6.0
|
||||||
|
* python-build: Add PyPy 2.5.1 portable
|
||||||
|
* python-build: Add CPython 3.5.0 beta releases; 3.5.0b1 and 3.5.0b2
|
||||||
|
* python-build: Removed CPython 3.5.0 alpha releases
|
||||||
|
* python-build: Fix inverted condition for `--altinstall` of ensurepip (#255)
|
||||||
|
* python-build: Skip installing `setuptools` by `ez_setup.py` explicitly (fixes #381)
|
||||||
|
* python-build: Import changes from ruby-build v20150519
|
||||||
|
|
||||||
#### 20150524
|
#### 20150524
|
||||||
|
|
||||||
* pyenv: Improve `pyenv version`, if there is one missing (#290)
|
* pyenv: Improve `pyenv version`, if there is one missing (#290)
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ reading it from the following sources, in this order:
|
|||||||
Python. (In other words, whatever version would run if pyenv weren't in your
|
Python. (In other words, whatever version would run if pyenv weren't in your
|
||||||
`PATH`.)
|
`PATH`.)
|
||||||
|
|
||||||
**NOTE:** You can activate multiple versions at the same time, including mulitple
|
**NOTE:** You can activate multiple versions at the same time, including multiple
|
||||||
versions of Python2 or Python3 simultaneously. This allows for parallel usage of
|
versions of Python2 or Python3 simultaneously. This allows for parallel usage of
|
||||||
Python2 and Python3, and is required with tools like `tox`. For example, to set
|
Python2 and Python3, and is required with tools like `tox`. For example, to set
|
||||||
your path to first use your `system` Python and Python3 (set to 2.7.9 and 3.4.2
|
your path to first use your `system` Python and Python3 (set to 2.7.9 and 3.4.2
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
set -e
|
set -e
|
||||||
[ -n "$PYENV_DEBUG" ] && set -x
|
[ -n "$PYENV_DEBUG" ] && set -x
|
||||||
|
|
||||||
version="20150524"
|
version="20150913"
|
||||||
|
|
||||||
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)"
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ OLDIFS="$IFS"
|
|||||||
{ IFS=:
|
{ IFS=:
|
||||||
for version in ${PYENV_VERSION}; do
|
for version in ${PYENV_VERSION}; do
|
||||||
if [ "$version" = "system" ]; then
|
if [ "$version" = "system" ]; then
|
||||||
if PYTHON_PATH="$(pyenv-which python 2>/dev/null)"; then
|
if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python 2>/dev/null)"; then
|
||||||
PYENV_PREFIX_PATH="${PYTHON_PATH%/bin/*}"
|
PYENV_PREFIX_PATH="${PYTHON_PATH%/bin/*}"
|
||||||
else
|
else
|
||||||
echo "pyenv: system version not found in PATH" >&2
|
echo "pyenv: system version not found in PATH" >&2
|
||||||
|
|||||||
@@ -47,8 +47,7 @@ fi
|
|||||||
eval "$(python-build --lib)"
|
eval "$(python-build --lib)"
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
# We can remove the sed fallback once pyenv 0.4.0 is widely available.
|
pyenv-help install 2>/dev/null
|
||||||
pyenv-help install 2>/dev/null || sed -ne '/^#/!q;s/.//;s/.//;1,4d;p' < "$0"
|
|
||||||
[ -z "$1" ] || exit "$1"
|
[ -z "$1" ] || exit "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +100,7 @@ for option in "${OPTIONS[@]}"; do
|
|||||||
exec python-build --version
|
exec python-build --version
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
usage 1
|
usage 1 >&2
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@@ -246,7 +245,7 @@ if [ "$STATUS" == "2" ]; then
|
|||||||
echo " brew update && brew upgrade pyenv"
|
echo " brew update && brew upgrade pyenv"
|
||||||
elif [ -d "${here}/.git" ]; then
|
elif [ -d "${here}/.git" ]; then
|
||||||
printf ":\n\n"
|
printf ":\n\n"
|
||||||
echo " cd ${here} && git pull"
|
echo " cd ${here} && git pull && cd -"
|
||||||
else
|
else
|
||||||
printf ".\n"
|
printf ".\n"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ if [ "$1" = "--complete" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
# We can remove the sed fallback once pyenv 0.4.0 is widely available
|
pyenv-help uninstall 2>/dev/null
|
||||||
pyenv-help uninstall 2>/dev/null || sed -ne '/^#/!q;s/.//;s/.//;1,4d;p' < "$0"
|
|
||||||
[ -z "$1" ] || exit "$1"
|
[ -z "$1" ] || exit "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,11 +6,13 @@
|
|||||||
# -k/--keep Do not remove source tree after installation
|
# -k/--keep Do not remove source tree after installation
|
||||||
# -v/--verbose Verbose mode: print compilation status to stdout
|
# -v/--verbose Verbose mode: print compilation status to stdout
|
||||||
# -p/--patch Apply a patch from stdin before building
|
# -p/--patch Apply a patch from stdin before building
|
||||||
|
# -4/--ipv4 Resolve names to IPv4 addresses only
|
||||||
|
# -6/--ipv6 Resolve names to IPv6 addresses only
|
||||||
# --definitions List all built-in definitions
|
# --definitions List all built-in definitions
|
||||||
# -g/--debug Build a debug version
|
# -g/--debug Build a debug version
|
||||||
#
|
#
|
||||||
|
|
||||||
PYTHON_BUILD_VERSION="20141028"
|
PYTHON_BUILD_VERSION="20150818"
|
||||||
|
|
||||||
set -E
|
set -E
|
||||||
exec 3<&2 # preserve original stderr at fd 3
|
exec 3<&2 # preserve original stderr at fd 3
|
||||||
@@ -231,7 +233,7 @@ compute_sha2() {
|
|||||||
output="$(shasum -a 256 -b)" || return 1
|
output="$(shasum -a 256 -b)" || return 1
|
||||||
echo "${output% *}"
|
echo "${output% *}"
|
||||||
elif type openssl &>/dev/null; then
|
elif type openssl &>/dev/null; then
|
||||||
local openssl="$(command -v "$(brew --prefix openssl 2>/dev/null)"/bin/openssl openssl | head -1)"
|
local openssl="$(command -v "$(brew --prefix openssl 2>/dev/null || true)"/bin/openssl openssl | head -1)"
|
||||||
output="$("$openssl" dgst -sha256 2>/dev/null)" || return 1
|
output="$("$openssl" dgst -sha256 2>/dev/null)" || return 1
|
||||||
echo "${output##* }"
|
echo "${output##* }"
|
||||||
elif type sha256sum &>/dev/null; then
|
elif type sha256sum &>/dev/null; then
|
||||||
@@ -307,19 +309,31 @@ http() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
http_head_curl() {
|
http_head_curl() {
|
||||||
curl -qsILf "$1" >&4 2>&1
|
options=""
|
||||||
|
[ -n "${IPV4}" ] && options="--ipv4"
|
||||||
|
[ -n "${IPV6}" ] && options="--ipv6"
|
||||||
|
curl -qsILf ${options} "$1" >&4 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
http_get_curl() {
|
http_get_curl() {
|
||||||
curl -q -o "${2:--}" -sSLf "$1"
|
options=""
|
||||||
|
[ -n "${IPV4}" ] && options="--ipv4"
|
||||||
|
[ -n "${IPV6}" ] && options="--ipv6"
|
||||||
|
curl -q -o "${2:--}" -sSLf ${options} "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
http_head_wget() {
|
http_head_wget() {
|
||||||
wget -q --spider "$1" >&4 2>&1
|
options=""
|
||||||
|
[ -n "${IPV4}" ] && options="--inet4-only"
|
||||||
|
[ -n "${IPV6}" ] && options="--inet6-only"
|
||||||
|
wget -q --spider ${options} "$1" >&4 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
http_get_wget() {
|
http_get_wget() {
|
||||||
wget -nv -O "${2:--}" "$1"
|
options=""
|
||||||
|
[ -n "${IPV4}" ] && options="--inet4-only"
|
||||||
|
[ -n "${IPV6}" ] && options="--inet6-only"
|
||||||
|
wget -nv ${options} -O "${2:--}" "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch_tarball() {
|
fetch_tarball() {
|
||||||
@@ -876,10 +890,18 @@ pypy_architecture() {
|
|||||||
build_package_pypy() {
|
build_package_pypy() {
|
||||||
build_package_copy
|
build_package_copy
|
||||||
mkdir -p "${PREFIX_PATH}/bin" "${PREFIX_PATH}/lib"
|
mkdir -p "${PREFIX_PATH}/bin" "${PREFIX_PATH}/lib"
|
||||||
local pypy libpypy
|
local pypy libpypy python
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
for pypy in "bin/pypy"*; do
|
for pypy in "bin/pypy"*; do
|
||||||
( cd "${PREFIX_PATH}/bin" && ln -fs "$(basename "${pypy}")" "$(basename "${pypy}" | sed -e 's/pypy/python/')" )
|
case "${pypy##*/}" in
|
||||||
|
"pypy-stm" )
|
||||||
|
python="bin/python"
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
python="$(basename "${pypy}" | sed -e 's/pypy/python/')"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
( cd "${PREFIX_PATH}/bin" && ln -fs "${pypy##*/}" "${python##*/}" )
|
||||||
done
|
done
|
||||||
for libpypy in "bin/libpypy-c."*; do
|
for libpypy in "bin/libpypy-c."*; do
|
||||||
( cd "${PREFIX_PATH}/lib" && ln -fs "../bin/$(basename "${libpypy}")" "$(basename "${libpypy}")" )
|
( cd "${PREFIX_PATH}/lib" && ln -fs "../bin/$(basename "${libpypy}")" "$(basename "${libpypy}")" )
|
||||||
@@ -982,7 +1004,7 @@ fix_rbx_gem_binstubs() {
|
|||||||
binstub="${bindir}/${file##*/}"
|
binstub="${bindir}/${file##*/}"
|
||||||
rm -f "$binstub"
|
rm -f "$binstub"
|
||||||
{ echo "#!${bindir}/ruby"
|
{ echo "#!${bindir}/ruby"
|
||||||
cat "$file"
|
grep -v '^#!' "$file"
|
||||||
} > "$binstub"
|
} > "$binstub"
|
||||||
chmod +x "$binstub"
|
chmod +x "$binstub"
|
||||||
done
|
done
|
||||||
@@ -999,7 +1021,7 @@ fix_rbx_irb() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
require_java7() {
|
require_java7() {
|
||||||
local version="$(java -version 2>&1 | head -1)"
|
local version="$(java -version 2>&1 | grep '\(java\|openjdk\) version' | head -1)"
|
||||||
if [[ $version != *1.[789]* ]]; then
|
if [[ $version != *1.[789]* ]]; then
|
||||||
colorize 1 "ERROR" >&3
|
colorize 1 "ERROR" >&3
|
||||||
echo ": Java 7 required. Please install a 1.7-compatible JRE." >&3
|
echo ": Java 7 required. Please install a 1.7-compatible JRE." >&3
|
||||||
@@ -1110,19 +1132,48 @@ require_llvm() {
|
|||||||
local llvm_version="$1"
|
local llvm_version="$1"
|
||||||
if [ "$(uname -s)" = "Darwin" ] && [ "$(osx_version)" -ge 1010 ]; then
|
if [ "$(uname -s)" = "Darwin" ] && [ "$(osx_version)" -ge 1010 ]; then
|
||||||
if [[ "$PYTHON_CONFIGURE_OPTS" != *--llvm-* ]]; then
|
if [[ "$PYTHON_CONFIGURE_OPTS" != *--llvm-* ]]; then
|
||||||
if [ "$llvm_version" = "3.2" ]; then
|
case "$llvm_version" in
|
||||||
|
3.2 )
|
||||||
package_option python configure --prebuilt-name="llvm-3.2-x86_64-apple-darwin13.tar.bz2"
|
package_option python configure --prebuilt-name="llvm-3.2-x86_64-apple-darwin13.tar.bz2"
|
||||||
else
|
;;
|
||||||
local llvm_prefix="$(brew --prefix llvm 2>/dev/null || true)"
|
3.5 )
|
||||||
local llvm_config="${llvm_prefix}/bin/llvm-config"
|
local llvm_config="$(locate_llvm "$llvm_version")"
|
||||||
if [ -x "$llvm_config" ]; then
|
if [ -n "$llvm_config" ]; then
|
||||||
package_option python configure --llvm-config="$llvm_config"
|
package_option python configure --llvm-config="$llvm_config"
|
||||||
|
else
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": Rubinius will not be able to compile using Apple's LLVM-based "
|
||||||
|
echo "build tools on OS X. You will need to install LLVM 3.5 first."
|
||||||
|
echo
|
||||||
|
colorize 1 "TO FIX THE PROBLEM"
|
||||||
|
echo ": Install Homebrew's llvm package with this"
|
||||||
|
echo -n "command: "
|
||||||
|
colorize 4 "brew tap homebrew/versions ; brew install llvm35"
|
||||||
|
echo
|
||||||
|
} >&3
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
locate_llvm() {
|
||||||
|
local llvm_version="$1"
|
||||||
|
local package llvm_config
|
||||||
|
shopt -s nullglob
|
||||||
|
for package in `brew list 2>/dev/null | grep "^llvm"`; do
|
||||||
|
llvm_config="$(echo "$(brew --prefix "$package")/bin/llvm-config"*)"
|
||||||
|
if [ -n "$llvm_config" ] && [[ "$("$llvm_config" --version)" = "$llvm_version"* ]]; then
|
||||||
|
echo "$llvm_config"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
shopt -u nullglob
|
||||||
|
}
|
||||||
|
|
||||||
require_java() {
|
require_java() {
|
||||||
local java="$(command -v java || true)"
|
local java="$(command -v java || true)"
|
||||||
|
|
||||||
@@ -1490,6 +1541,11 @@ build_package_verify_py35() {
|
|||||||
build_package_verify_py34 "$1" "${2:-3.5}"
|
build_package_verify_py34 "$1" "${2:-3.5}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Post-install check for Python 3.6.x
|
||||||
|
build_package_verify_py36() {
|
||||||
|
build_package_verify_py35 "$1" "${2:-3.6}"
|
||||||
|
}
|
||||||
|
|
||||||
build_package_ez_setup() {
|
build_package_ez_setup() {
|
||||||
local ez_setup="${BUILD_PATH}/ez_setup.py"
|
local ez_setup="${BUILD_PATH}/ez_setup.py"
|
||||||
rm -f "${ez_setup}"
|
rm -f "${ez_setup}"
|
||||||
@@ -1520,7 +1576,7 @@ build_package_get_pip() {
|
|||||||
http get "${GET_PIP_URL}"
|
http get "${GET_PIP_URL}"
|
||||||
fi
|
fi
|
||||||
} 1> "${get_pip}"
|
} 1> "${get_pip}"
|
||||||
"${PYTHON_BIN}" "${get_pip}" ${GET_PIP_OPTS} 1>&4 2>&1 || {
|
"${PYTHON_BIN}" -s "${get_pip}" ${GET_PIP_OPTS} 1>&4 2>&1 || {
|
||||||
echo "error: failed to install pip via get-pip.py" >&2
|
echo "error: failed to install pip via get-pip.py" >&2
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
@@ -1528,12 +1584,12 @@ build_package_get_pip() {
|
|||||||
|
|
||||||
build_package_ensurepip() {
|
build_package_ensurepip() {
|
||||||
local ensurepip_opts
|
local ensurepip_opts
|
||||||
if [[ "$PYTHON_MAKE_INSTALL_TARGET" != *"altinstall"* ]]; then
|
# Install as `--altinstall` if the Python is installed as `altinstall` (#255)
|
||||||
|
if [[ "$PYTHON_MAKE_INSTALL_TARGET" == *"altinstall"* ]]; then
|
||||||
ensurepip_opts="--altinstall"
|
ensurepip_opts="--altinstall"
|
||||||
fi
|
fi
|
||||||
"$PYTHON_BIN" -m ensurepip $ensurepip_opts 1>/dev/null 2>&1 || {
|
# FIXME: `--altinstall` with `get-pip.py`
|
||||||
build_package_ez_setup "$@" && build_package_get_pip "$@"
|
"$PYTHON_BIN" -s -m ensurepip ${ensurepip_opts} 1>/dev/null 2>&1 || build_package_get_pip "$@" || return 1
|
||||||
} || return 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
version() {
|
version() {
|
||||||
@@ -1568,6 +1624,8 @@ unset VERBOSE
|
|||||||
unset KEEP_BUILD_PATH
|
unset KEEP_BUILD_PATH
|
||||||
unset HAS_PATCH
|
unset HAS_PATCH
|
||||||
unset DEBUG
|
unset DEBUG
|
||||||
|
unset IPV4
|
||||||
|
unset IPV6
|
||||||
|
|
||||||
PYTHON_BUILD_INSTALL_PREFIX="$(abs_dirname "$0")/.."
|
PYTHON_BUILD_INSTALL_PREFIX="$(abs_dirname "$0")/.."
|
||||||
|
|
||||||
@@ -1600,6 +1658,12 @@ for option in "${OPTIONS[@]}"; do
|
|||||||
"g" | "debug" )
|
"g" | "debug" )
|
||||||
DEBUG=true
|
DEBUG=true
|
||||||
;;
|
;;
|
||||||
|
"4" | "ipv4")
|
||||||
|
IPV4=true
|
||||||
|
;;
|
||||||
|
"6" | "ipv6")
|
||||||
|
IPV6=true
|
||||||
|
;;
|
||||||
"version" )
|
"version" )
|
||||||
version
|
version
|
||||||
exit 0
|
exit 0
|
||||||
@@ -1780,10 +1844,12 @@ fi
|
|||||||
|
|
||||||
# Set MACOSX_DEPLOYMENT_TARGET from the product version of OS X (#219, #220)
|
# Set MACOSX_DEPLOYMENT_TARGET from the product version of OS X (#219, #220)
|
||||||
if [[ "Darwin" == "$(uname -s)" ]]; then
|
if [[ "Darwin" == "$(uname -s)" ]]; then
|
||||||
MACOS_VERSION="$(sw_vers -productVersion 2>/dev/null || true)"
|
if [ -z "${MACOSX_DEPLOYMENT_TARGET}" ]; then
|
||||||
MACOS_VERSION_ARRAY=(${MACOS_VERSION//\./ })
|
MACOS_VERSION="$(sw_vers -productVersion 2>/dev/null || true)"
|
||||||
if [ "${#MACOS_VERSION_ARRAY[@]}" -ge 2 ]; then
|
MACOS_VERSION_ARRAY=(${MACOS_VERSION//\./ })
|
||||||
export MACOSX_DEPLOYMENT_TARGET="${MACOS_VERSION_ARRAY[0]}.${MACOS_VERSION_ARRAY[1]}"
|
if [ "${#MACOS_VERSION_ARRAY[@]}" -ge 2 ]; then
|
||||||
|
export MACOSX_DEPLOYMENT_TARGET="${MACOS_VERSION_ARRAY[0]}.${MACOS_VERSION_ARRAY[1]}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#require_gcc
|
#require_gcc
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-2.7-dev" "https://bitbucket.org/mirror/cpython" "2.7" standard verify_py27 ensurepip
|
install_hg "Python-2.7-dev" "https://hg.python.org/cpython" "2.7" standard verify_py27 ensurepip
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
#require_gcc
|
#require_gcc
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" 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#d12dae6d06f52ef6bf1271db4d5b4d14b5dd39813e324314e72b648ef1bc0103" ldflags_dirs standard verify_py31 ensurepip
|
install_package "Python-3.1.5" "http://python.org/ftp/python/3.1.5/Python-3.1.5.tgz#d12dae6d06f52ef6bf1271db4d5b4d14b5dd39813e324314e72b648ef1bc0103" ldflags_dirs standard verify_py31 ez_setup
|
||||||
|
install_package "pip-1.5.6" "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c" python
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#require_gcc
|
#require_gcc
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-3.2-dev" "https://bitbucket.org/mirror/cpython" "3.2" standard verify_py32 ensurepip
|
install_hg "Python-3.2-dev" "https://hg.python.org/cpython" "3.2" standard verify_py32 ensurepip
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#require_gcc
|
#require_gcc
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-3.3-dev" "https://bitbucket.org/mirror/cpython" "3.3" standard verify_py33 ensurepip
|
install_hg "Python-3.3-dev" "https://hg.python.org/cpython" "3.3" standard verify_py33 ensurepip
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#require_gcc
|
#require_gcc
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-3.4-dev" "https://bitbucket.org/mirror/cpython" "3.4" standard verify_py34 ensurepip
|
install_hg "Python-3.4-dev" "https://hg.python.org/cpython" "3.4" standard verify_py34 ensurepip
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#require_gcc
|
#require_gcc
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-3.5-dev" "https://bitbucket.org/mirror/cpython" "default" standard verify_py35 ensurepip
|
install_hg "Python-3.5-dev" "https://hg.python.org/cpython" "3.5" standard verify_py35 ensurepip
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#require_gcc
|
#require_gcc
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
||||||
install_package "Python-3.5.0a1" "https://www.python.org/ftp/python/3.5.0/Python-3.5.0a1.tgz#f1ea32ce88ffff8787ea31302e00b05a" ldflags_dirs standard verify_py35 ensurepip
|
install_package "Python-3.5.0" "https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz#584e3d5a02692ca52fce505e68ecd77248a6f2c99adf9db144a39087336b0fe0" ldflags_dirs standard verify_py35 ensurepip
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#require_gcc
|
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
|
||||||
install_package "Python-3.5.0a2" "https://www.python.org/ftp/python/3.5.0/Python-3.5.0a2.tgz#8e72209d95f286efb33bf96a6593d475" ldflags_dirs standard verify_py35 ensurepip
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#require_gcc
|
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
|
||||||
install_package "Python-3.5.0a3" "https://www.python.org/ftp/python/3.5.0/Python-3.5.0a3.tgz#5521bdf9ae9af5b794cd65477bcb02a3" ldflags_dirs standard verify_py35 ensurepip
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#require_gcc
|
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
|
||||||
install_package "Python-3.5.0a4" "https://www.python.org/ftp/python/3.5.0/Python-3.5.0a4.tgz#34667f07604352a4a1ef4651dcb7f870" ldflags_dirs standard verify_py35 ensurepip
|
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
#require_gcc
|
#require_gcc
|
||||||
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
|
||||||
install_hg "Python-3.1-dev" "https://bitbucket.org/mirror/cpython" "3.1" standard verify_py31 ensurepip
|
install_hg "Python-3.6-dev" "https://hg.python.org/cpython" "default" standard verify_py36 ensurepip
|
||||||
19
plugins/python-build/share/python-build/anaconda-2.3.0
Normal file
19
plugins/python-build/share/python-build/anaconda-2.3.0
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
|
"Linux-x86" )
|
||||||
|
install_script "Anaconda-2.3.0-Linux-x86" "http://repo.continuum.io/archive/Anaconda-2.3.0-Linux-x86.sh#73fdbbb3e38207ed18e5059f71676d18d48fdccbc455a1272eb45a60376cd818" "anaconda" verify_py27
|
||||||
|
;;
|
||||||
|
"Linux-x86_64" )
|
||||||
|
install_script "Anaconda-2.3.0-Linux-x86_64" "http://repo.continuum.io/archive/Anaconda-2.3.0-Linux-x86_64.sh#7c02499e9511c127d225992cfe1cd815e88fd46cd8a5b3cdf764f3fb4d8d4576" "anaconda" verify_py27
|
||||||
|
;;
|
||||||
|
"MacOSX-x86_64" )
|
||||||
|
install_script "Anaconda-2.3.0-MacOSX-x86_64" "http://repo.continuum.io/archive/Anaconda-2.3.0-MacOSX-x86_64.sh#c4bb59a57bf44dde80612041bbbcfd2e5cab8534842209ef456da7a46f919c33" "anaconda" verify_py27
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of Anaconda is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
"Linux-x86" )
|
"Linux-x86" )
|
||||||
install_script "Anaconda3-2.0.0-Linux-x86" "http://repo.continuum.io/anaconda3/Anaconda3-2.0.0-Linux-x86.sh#439761159d5604e182951650a478dd53caff52e9dccf17c20ae66689b7b289dd" "anaconda" verify_py34
|
install_script "Anaconda3-2.0.0-Linux-x86" "http://repo.continuum.io/archive/Anaconda3-2.0.0-Linux-x86.sh#439761159d5604e182951650a478dd53caff52e9dccf17c20ae66689b7b289dd" "anaconda" verify_py34
|
||||||
;;
|
;;
|
||||||
"Linux-x86_64" )
|
"Linux-x86_64" )
|
||||||
install_script "Anaconda3-2.0.0-Linux-x86_64" "http://repo.continuum.io/anaconda3/Anaconda3-2.0.0-Linux-x86_64.sh#57ce4f97e300cf94c5724f72d992e9eecef708fdaa13bc672ae9779773056540" "anaconda" verify_py34
|
install_script "Anaconda3-2.0.0-Linux-x86_64" "http://repo.continuum.io/archive/Anaconda3-2.0.0-Linux-x86_64.sh#57ce4f97e300cf94c5724f72d992e9eecef708fdaa13bc672ae9779773056540" "anaconda" verify_py34
|
||||||
;;
|
;;
|
||||||
"MacOSX-x86_64" )
|
"MacOSX-x86_64" )
|
||||||
install_script "Anaconda3-2.0.0-MacOSX-x86_64" "http://repo.continuum.io/anaconda3/Anaconda3-2.0.0-MacOSX-x86_64.sh#776a1cf8a8e898b41bb6558c093632cc922698dc48486fee35d1e8eae3f604fa" "anaconda" verify_py34
|
install_script "Anaconda3-2.0.0-MacOSX-x86_64" "http://repo.continuum.io/archive/Anaconda3-2.0.0-MacOSX-x86_64.sh#776a1cf8a8e898b41bb6558c093632cc922698dc48486fee35d1e8eae3f604fa" "anaconda" verify_py34
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
{ echo
|
{ echo
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
"Linux-x86" )
|
"Linux-x86" )
|
||||||
install_script "Anaconda3-2.0.1-Linux-x86" "http://repo.continuum.io/anaconda3/Anaconda3-2.0.1-Linux-x86.sh#21293fabbd3d5cfbb1afe0c9a8b39e0bc4d283cd7dbe3c84a60b335481a41ef3" "anaconda" verify_py34
|
install_script "Anaconda3-2.0.1-Linux-x86" "http://repo.continuum.io/archive/Anaconda3-2.0.1-Linux-x86.sh#21293fabbd3d5cfbb1afe0c9a8b39e0bc4d283cd7dbe3c84a60b335481a41ef3" "anaconda" verify_py34
|
||||||
;;
|
;;
|
||||||
"Linux-x86_64" )
|
"Linux-x86_64" )
|
||||||
install_script "Anaconda3-2.0.1-Linux-x86_64" "http://repo.continuum.io/anaconda3/Anaconda3-2.0.1-Linux-x86_64.sh#3c3b834793e461f3316ad1d9a9178c67859a9d74aaf7bcade076f04134dd1e26" "anaconda" verify_py34
|
install_script "Anaconda3-2.0.1-Linux-x86_64" "http://repo.continuum.io/archive/Anaconda3-2.0.1-Linux-x86_64.sh#3c3b834793e461f3316ad1d9a9178c67859a9d74aaf7bcade076f04134dd1e26" "anaconda" verify_py34
|
||||||
;;
|
;;
|
||||||
"MacOSX-x86_64" )
|
"MacOSX-x86_64" )
|
||||||
install_script "Anaconda3-2.0.1-MacOSX-x86_64" "http://repo.continuum.io/anaconda3/Anaconda3-2.0.1-MacOSX-x86_64.sh#7a08509d4e45efcc7055a6d06d8406a773716500bd869a4e85312ff131155bd6" "anaconda" verify_py34
|
install_script "Anaconda3-2.0.1-MacOSX-x86_64" "http://repo.continuum.io/archive/Anaconda3-2.0.1-MacOSX-x86_64.sh#7a08509d4e45efcc7055a6d06d8406a773716500bd869a4e85312ff131155bd6" "anaconda" verify_py34
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
{ echo
|
{ echo
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
"Linux-x86" )
|
"Linux-x86" )
|
||||||
install_script "Anaconda3-2.1.0-Linux-x86" "http://repo.continuum.io/anaconda3/Anaconda3-2.1.0-Linux-x86.sh#657cb599004c21e37ce693515ea33922e0084fd7c159ef1b96b57c86eed8385f" "anaconda" verify_py34
|
install_script "Anaconda3-2.1.0-Linux-x86" "http://repo.continuum.io/archive/Anaconda3-2.1.0-Linux-x86.sh#657cb599004c21e37ce693515ea33922e0084fd7c159ef1b96b57c86eed8385f" "anaconda" verify_py34
|
||||||
;;
|
;;
|
||||||
"Linux-x86_64" )
|
"Linux-x86_64" )
|
||||||
install_script "Anaconda3-2.1.0-Linux-x86_64" "http://repo.continuum.io/anaconda3/Anaconda3-2.1.0-Linux-x86_64.sh#af3225ccbe8df0ffb918939e009aa57740e35058ebf9dfcf5fec794a77556c3c" "anaconda" verify_py34
|
install_script "Anaconda3-2.1.0-Linux-x86_64" "http://repo.continuum.io/archive/Anaconda3-2.1.0-Linux-x86_64.sh#af3225ccbe8df0ffb918939e009aa57740e35058ebf9dfcf5fec794a77556c3c" "anaconda" verify_py34
|
||||||
;;
|
;;
|
||||||
"MacOSX-x86_64" )
|
"MacOSX-x86_64" )
|
||||||
install_script "Anaconda3-2.1.0-MacOSX-x86_64" "http://repo.continuum.io/anaconda3/Anaconda3-2.1.0-MacOSX-x86_64.sh#efdb7e9d1e539cbed62dc3874b0de6a141f36684e6fbc05018e072b217e24077" "anaconda" verify_py34
|
install_script "Anaconda3-2.1.0-MacOSX-x86_64" "http://repo.continuum.io/archive/Anaconda3-2.1.0-MacOSX-x86_64.sh#efdb7e9d1e539cbed62dc3874b0de6a141f36684e6fbc05018e072b217e24077" "anaconda" verify_py34
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
{ echo
|
{ echo
|
||||||
|
|||||||
19
plugins/python-build/share/python-build/anaconda3-2.3.0
Normal file
19
plugins/python-build/share/python-build/anaconda3-2.3.0
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
|
"Linux-x86" )
|
||||||
|
install_script "Anaconda3-2.3.0-Linux-x86" "http://repo.continuum.io/archive/Anaconda3-2.3.0-Linux-x86.sh#4cc10d65c303191004ada2b6d75562c8ed84e42bf9871af06440dd956077b555" "anaconda" verify_py34
|
||||||
|
;;
|
||||||
|
"Linux-x86_64" )
|
||||||
|
install_script "Anaconda3-2.3.0-Linux-x86_64" "http://repo.continuum.io/archive/Anaconda3-2.3.0-Linux-x86_64.sh#3be5410b2d9db45882c7de07c554cf4f1034becc274ec9074b23fd37a5c87a6f" "anaconda" verify_py34
|
||||||
|
;;
|
||||||
|
"MacOSX-x86_64" )
|
||||||
|
install_script "Anaconda3-2.3.0-MacOSX-x86_64" "http://repo.continuum.io/archive/Anaconda3-2.3.0-MacOSX-x86_64.sh#6a0c94a49f41f9fda0138c8e966bd7b0a8965d6648fd21ffbd645d1453848ba5" "anaconda" verify_py34
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of Anaconda3 is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
19
plugins/python-build/share/python-build/miniconda-3.10.1
Normal file
19
plugins/python-build/share/python-build/miniconda-3.10.1
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
|
"Linux-x86" )
|
||||||
|
install_script "Miniconda-3.10.1-Linux-x86" "http://repo.continuum.io/miniconda/Miniconda-3.10.1-Linux-x86.sh#509ee56f1590705472fdac4a00aa7191f79a6a09daf4af088e92f93c648d815e" "miniconda" verify_py27
|
||||||
|
;;
|
||||||
|
"Linux-x86_64" )
|
||||||
|
install_script "Miniconda-3.10.1-Linux-x86_64" "http://repo.continuum.io/miniconda/Miniconda-3.10.1-Linux-x86_64.sh#363f56f5608d1552325549e7371fcf460c5ed45484eb300058e3b99c997808b5" "miniconda" verify_py27
|
||||||
|
;;
|
||||||
|
"MacOSX-x86_64" )
|
||||||
|
install_script "Miniconda-3.10.1-MacOSX-x86_64" "http://repo.continuum.io/miniconda/Miniconda-3.10.1-MacOSX-x86_64.sh#61a1e468a79cca45a518b1760033e7af89108bf88487afead79f96e3229b422a" "miniconda" verify_py27
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
19
plugins/python-build/share/python-build/miniconda-3.16.0
Normal file
19
plugins/python-build/share/python-build/miniconda-3.16.0
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
|
"Linux-x86" )
|
||||||
|
install_script "Miniconda-3.16.0-Linux-x86" "http://repo.continuum.io/miniconda/Miniconda-3.16.0-Linux-x86.sh#57e9659848e6322cb18c1c4a5c844a4f7dc5e784dbd8977245769ff9db28dade" "miniconda" verify_py27
|
||||||
|
;;
|
||||||
|
"Linux-x86_64" )
|
||||||
|
install_script "Miniconda-3.16.0-Linux-x86_64" "http://repo.continuum.io/miniconda/Miniconda-3.16.0-Linux-x86_64.sh#b1facded0d33850e3a467d6e4589830be477bd4f819407b99b033a4d22601e4d" "miniconda" verify_py27
|
||||||
|
;;
|
||||||
|
"MacOSX-x86_64" )
|
||||||
|
install_script "Miniconda-3.16.0-MacOSX-x86_64" "http://repo.continuum.io/miniconda/Miniconda-3.16.0-MacOSX-x86_64.sh#e93517696d4ede4f8ff21ea42272f24508023b83f1e2e2c989d1b32ab19347a9" "miniconda" verify_py27
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
19
plugins/python-build/share/python-build/miniconda3-3.10.1
Normal file
19
plugins/python-build/share/python-build/miniconda3-3.10.1
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
|
"Linux-x86" )
|
||||||
|
install_script "Miniconda3-3.10.1-Linux-x86" "http://repo.continuum.io/miniconda/Miniconda3-3.10.1-Linux-x86.sh#e9b751fa8bc5372731512e058fa3867ad9e54983b48d462b4c8f7a031953c2bc" "miniconda" verify_py34
|
||||||
|
;;
|
||||||
|
"Linux-x86_64" )
|
||||||
|
install_script "Miniconda3-3.10.1-Linux-x86_64" "http://repo.continuum.io/miniconda/Miniconda3-3.10.1-Linux-x86_64.sh#cbd86f49008319416d1e57f9ac43a42445058f06aaeebe5ab974769887a8628b" "miniconda" verify_py34
|
||||||
|
;;
|
||||||
|
"MacOSX-x86_64" )
|
||||||
|
install_script "Miniconda3-3.10.1-MacOSX-x86_64" "http://repo.continuum.io/miniconda/Miniconda3-3.10.1-MacOSX-x86_64.sh#58ba40cbd1cf5bba680f94321d2ce22685a2b06ad9252044f06a0018fe99bd62" "miniconda" verify_py34
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
19
plugins/python-build/share/python-build/miniconda3-3.16.0
Normal file
19
plugins/python-build/share/python-build/miniconda3-3.16.0
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
|
"Linux-x86" )
|
||||||
|
install_script "Miniconda3-3.16.0-Linux-x86" "http://repo.continuum.io/miniconda/Miniconda3-3.16.0-Linux-x86.sh#faedb7a75584d48d563f0f9b449cb00bf8d05ddb3e1ede1936bf522f03f0e1e2" "miniconda" verify_py34
|
||||||
|
;;
|
||||||
|
"Linux-x86_64" )
|
||||||
|
install_script "Miniconda3-3.16.0-Linux-x86_64" "http://repo.continuum.io/miniconda/Miniconda3-3.16.0-Linux-x86_64.sh#3becbcdd36761711850cffa11064b87cfe067dbeb4a5eda544dc341af482de87" "miniconda" verify_py34
|
||||||
|
;;
|
||||||
|
"MacOSX-x86_64" )
|
||||||
|
install_script "Miniconda3-3.16.0-MacOSX-x86_64" "http://repo.continuum.io/miniconda/Miniconda3-3.16.0-MacOSX-x86_64.sh#36fe954548a6900249270f9632b76252e247313cc9d551c096d7e1f526a88631" "miniconda" verify_py34
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
Author: Dwayne Litzenberger <dlitz@dlitz.net>
|
||||||
|
Date: Sun Jun 22 01:15:05 2014 -0700
|
||||||
|
|
||||||
|
Patch configure to handle Ubuntu Bug#286334
|
||||||
|
|
||||||
|
Fixes this crash:
|
||||||
|
|
||||||
|
*** buffer overflow detected ***: ./python terminated
|
||||||
|
======= Backtrace: =========
|
||||||
|
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x2b08765c9007]
|
||||||
|
|
||||||
|
diff --git configure configure
|
||||||
|
index 4838393..654de3f 100755
|
||||||
|
--- configure
|
||||||
|
+++ configure
|
||||||
|
@@ -20798,6 +20798,15 @@ done
|
||||||
|
echo "$as_me:$LINENO: result: done" >&5
|
||||||
|
echo "${ECHO_T}done" >&6
|
||||||
|
|
||||||
|
+case $ac_sys_system in
|
||||||
|
+Linux*)
|
||||||
|
+# Workaround for bug in Ubuntu 10.10 amd64 gcc-4.4
|
||||||
|
+# See http://orip.org/2008/10/building-python-235-on-ubuntu-intrepid.html
|
||||||
|
+# and Ubuntu Bug #286334
|
||||||
|
+BASECFLAGS="$BASECFLAGS -U_FORTIFY_SOURCE"
|
||||||
|
+;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
# generate output files
|
||||||
|
ac_config_files="$ac_config_files Makefile.pre Modules/Setup.config"
|
||||||
|
|
||||||
|
diff --git configure.in configure.in
|
||||||
|
index ba7a011..060a73f 100644
|
||||||
|
--- configure.in
|
||||||
|
+++ configure.in
|
||||||
|
@@ -3072,6 +3072,15 @@ for dir in $SRCDIRS; do
|
||||||
|
done
|
||||||
|
AC_MSG_RESULT(done)
|
||||||
|
|
||||||
|
+case $ac_sys_system in
|
||||||
|
+Linux*)
|
||||||
|
+# Workaround for bug in Ubuntu 10.10 amd64 gcc-4.4
|
||||||
|
+# See http://orip.org/2008/10/building-python-235-on-ubuntu-intrepid.html
|
||||||
|
+# and Ubuntu Bug #286334
|
||||||
|
+BASECFLAGS="$BASECFLAGS -U_FORTIFY_SOURCE"
|
||||||
|
+;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
# generate output files
|
||||||
|
AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
|
||||||
|
AC_OUTPUT
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
Author: Dwayne Litzenberger <dlitz@dlitz.net>
|
||||||
|
Date: Sun Jun 22 01:15:05 2014 -0700
|
||||||
|
|
||||||
|
Patch configure to handle Ubuntu Bug#286334
|
||||||
|
|
||||||
|
Fixes this crash:
|
||||||
|
|
||||||
|
*** buffer overflow detected ***: ./python terminated
|
||||||
|
======= Backtrace: =========
|
||||||
|
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x2b08765c9007]
|
||||||
|
|
||||||
|
diff --git configure configure
|
||||||
|
index 4838393..654de3f 100755
|
||||||
|
--- configure
|
||||||
|
+++ configure
|
||||||
|
@@ -20798,6 +20798,15 @@ done
|
||||||
|
echo "$as_me:$LINENO: result: done" >&5
|
||||||
|
echo "${ECHO_T}done" >&6
|
||||||
|
|
||||||
|
+case $ac_sys_system in
|
||||||
|
+Linux*)
|
||||||
|
+# Workaround for bug in Ubuntu 10.10 amd64 gcc-4.4
|
||||||
|
+# See http://orip.org/2008/10/building-python-235-on-ubuntu-intrepid.html
|
||||||
|
+# and Ubuntu Bug #286334
|
||||||
|
+BASECFLAGS="$BASECFLAGS -U_FORTIFY_SOURCE"
|
||||||
|
+;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
# generate output files
|
||||||
|
ac_config_files="$ac_config_files Makefile.pre Modules/Setup.config"
|
||||||
|
|
||||||
|
diff --git configure.in configure.in
|
||||||
|
index ba7a011..060a73f 100644
|
||||||
|
--- configure.in
|
||||||
|
+++ configure.in
|
||||||
|
@@ -3072,6 +3072,15 @@ for dir in $SRCDIRS; do
|
||||||
|
done
|
||||||
|
AC_MSG_RESULT(done)
|
||||||
|
|
||||||
|
+case $ac_sys_system in
|
||||||
|
+Linux*)
|
||||||
|
+# Workaround for bug in Ubuntu 10.10 amd64 gcc-4.4
|
||||||
|
+# See http://orip.org/2008/10/building-python-235-on-ubuntu-intrepid.html
|
||||||
|
+# and Ubuntu Bug #286334
|
||||||
|
+BASECFLAGS="$BASECFLAGS -U_FORTIFY_SOURCE"
|
||||||
|
+;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
# generate output files
|
||||||
|
AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
|
||||||
|
AC_OUTPUT
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
Author: Dwayne Litzenberger <dlitz@dlitz.net>
|
||||||
|
Date: Sun Jun 22 01:15:05 2014 -0700
|
||||||
|
|
||||||
|
Patch configure to handle Ubuntu Bug#286334
|
||||||
|
|
||||||
|
Fixes this crash:
|
||||||
|
|
||||||
|
*** buffer overflow detected ***: ./python terminated
|
||||||
|
======= Backtrace: =========
|
||||||
|
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x2b08765c9007]
|
||||||
|
|
||||||
|
diff --git configure configure
|
||||||
|
index 4838393..654de3f 100755
|
||||||
|
--- configure
|
||||||
|
+++ configure
|
||||||
|
@@ -20798,6 +20798,15 @@ done
|
||||||
|
echo "$as_me:$LINENO: result: done" >&5
|
||||||
|
echo "${ECHO_T}done" >&6
|
||||||
|
|
||||||
|
+case $ac_sys_system in
|
||||||
|
+Linux*)
|
||||||
|
+# Workaround for bug in Ubuntu 10.10 amd64 gcc-4.4
|
||||||
|
+# See http://orip.org/2008/10/building-python-235-on-ubuntu-intrepid.html
|
||||||
|
+# and Ubuntu Bug #286334
|
||||||
|
+BASECFLAGS="$BASECFLAGS -U_FORTIFY_SOURCE"
|
||||||
|
+;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
# generate output files
|
||||||
|
ac_config_files="$ac_config_files Makefile.pre Modules/Setup.config"
|
||||||
|
|
||||||
|
diff --git configure.in configure.in
|
||||||
|
index ba7a011..060a73f 100644
|
||||||
|
--- configure.in
|
||||||
|
+++ configure.in
|
||||||
|
@@ -3072,6 +3072,15 @@ for dir in $SRCDIRS; do
|
||||||
|
done
|
||||||
|
AC_MSG_RESULT(done)
|
||||||
|
|
||||||
|
+case $ac_sys_system in
|
||||||
|
+Linux*)
|
||||||
|
+# Workaround for bug in Ubuntu 10.10 amd64 gcc-4.4
|
||||||
|
+# See http://orip.org/2008/10/building-python-235-on-ubuntu-intrepid.html
|
||||||
|
+# and Ubuntu Bug #286334
|
||||||
|
+BASECFLAGS="$BASECFLAGS -U_FORTIFY_SOURCE"
|
||||||
|
+;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
# generate output files
|
||||||
|
AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
|
||||||
|
AC_OUTPUT
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
Author: Dwayne Litzenberger <dlitz@dlitz.net>
|
||||||
|
Date: Sun Jun 22 01:15:05 2014 -0700
|
||||||
|
|
||||||
|
Patch configure to handle Ubuntu Bug#286334
|
||||||
|
|
||||||
|
Fixes this crash:
|
||||||
|
|
||||||
|
*** buffer overflow detected ***: ./python terminated
|
||||||
|
======= Backtrace: =========
|
||||||
|
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x2b08765c9007]
|
||||||
|
|
||||||
|
diff --git configure configure
|
||||||
|
index 4838393..654de3f 100755
|
||||||
|
--- configure
|
||||||
|
+++ configure
|
||||||
|
@@ -20798,6 +20798,15 @@ done
|
||||||
|
echo "$as_me:$LINENO: result: done" >&5
|
||||||
|
echo "${ECHO_T}done" >&6
|
||||||
|
|
||||||
|
+case $ac_sys_system in
|
||||||
|
+Linux*)
|
||||||
|
+# Workaround for bug in Ubuntu 10.10 amd64 gcc-4.4
|
||||||
|
+# See http://orip.org/2008/10/building-python-235-on-ubuntu-intrepid.html
|
||||||
|
+# and Ubuntu Bug #286334
|
||||||
|
+BASECFLAGS="$BASECFLAGS -U_FORTIFY_SOURCE"
|
||||||
|
+;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
# generate output files
|
||||||
|
ac_config_files="$ac_config_files Makefile.pre Modules/Setup.config"
|
||||||
|
|
||||||
|
diff --git configure.in configure.in
|
||||||
|
index ba7a011..060a73f 100644
|
||||||
|
--- configure.in
|
||||||
|
+++ configure.in
|
||||||
|
@@ -3072,6 +3072,15 @@ for dir in $SRCDIRS; do
|
||||||
|
done
|
||||||
|
AC_MSG_RESULT(done)
|
||||||
|
|
||||||
|
+case $ac_sys_system in
|
||||||
|
+Linux*)
|
||||||
|
+# Workaround for bug in Ubuntu 10.10 amd64 gcc-4.4
|
||||||
|
+# See http://orip.org/2008/10/building-python-235-on-ubuntu-intrepid.html
|
||||||
|
+# and Ubuntu Bug #286334
|
||||||
|
+BASECFLAGS="$BASECFLAGS -U_FORTIFY_SOURCE"
|
||||||
|
+;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
# generate output files
|
||||||
|
AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
|
||||||
|
AC_OUTPUT
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
Only in .: 003_system_library_path_in_sys_path.patch
|
||||||
|
diff -ur ../Python-2.7.10/Lib/site.py ./Lib/site.py
|
||||||
|
--- ../Python-2.7.10/Lib/site.py 2014-06-30 05:05:30.000000000 +0300
|
||||||
|
+++ ./Lib/site.py 2014-12-12 11:42:33.000000000 +0200
|
||||||
|
@@ -300,7 +300,7 @@
|
||||||
|
# locations.
|
||||||
|
from sysconfig import get_config_var
|
||||||
|
framework = get_config_var("PYTHONFRAMEWORK")
|
||||||
|
- if framework:
|
||||||
|
+ if False and framework:
|
||||||
|
sitepackages.append(
|
||||||
|
os.path.join("/Library", framework,
|
||||||
|
sys.version[:3], "site-packages"))
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
diff -r -u ../Python-3.1/setup.py ./setup.py
|
||||||
|
--- ../Python-3.1/setup.py 2009-05-24 02:13:14.000000000 +0900
|
||||||
|
+++ ./setup.py 2015-08-15 13:29:18.300777605 +0900
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
from distutils.command.build_ext import build_ext
|
||||||
|
from distutils.command.install import install
|
||||||
|
from distutils.command.install_lib import install_lib
|
||||||
|
+from distutils.spawn import find_executable
|
||||||
|
|
||||||
|
# This global variable is used to hold the list of modules to be disabled.
|
||||||
|
disabled_module_list = []
|
||||||
|
@@ -293,10 +294,33 @@
|
||||||
|
return platform
|
||||||
|
return sys.platform
|
||||||
|
|
||||||
|
+ def add_multiarch_paths(self):
|
||||||
|
+ # Debian/Ubuntu multiarch support.
|
||||||
|
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||||
|
+ if not find_executable('dpkg-architecture'):
|
||||||
|
+ return
|
||||||
|
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||||
|
+ if not os.path.exists(self.build_temp):
|
||||||
|
+ os.makedirs(self.build_temp)
|
||||||
|
+ ret = os.system(
|
||||||
|
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||||
|
+ tmpfile)
|
||||||
|
+ try:
|
||||||
|
+ if ret >> 8 == 0:
|
||||||
|
+ with open(tmpfile) as fp:
|
||||||
|
+ multiarch_path_component = fp.readline().strip()
|
||||||
|
+ add_dir_to_list(self.compiler.library_dirs,
|
||||||
|
+ '/usr/lib/' + multiarch_path_component)
|
||||||
|
+ add_dir_to_list(self.compiler.include_dirs,
|
||||||
|
+ '/usr/include/' + multiarch_path_component)
|
||||||
|
+ finally:
|
||||||
|
+ os.unlink(tmpfile)
|
||||||
|
+
|
||||||
|
def detect_modules(self):
|
||||||
|
# Ensure that /usr/local is always used
|
||||||
|
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||||
|
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||||
|
+ self.add_multiarch_paths()
|
||||||
|
|
||||||
|
# Add paths specified in the environment variables LDFLAGS and
|
||||||
|
# CPPFLAGS for header and library files.
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
diff -r -u ../Python-3.1/Lib/ssl.py ./Lib/ssl.py
|
||||||
|
--- ../Python-3.1/Lib/ssl.py 2009-06-04 18:42:55.000000000 +0900
|
||||||
|
+++ ./Lib/ssl.py 2015-08-15 13:12:22.270915671 +0900
|
||||||
|
@@ -60,8 +60,20 @@
|
||||||
|
|
||||||
|
from _ssl import SSLError
|
||||||
|
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||||
|
-from _ssl import (PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||||
|
+from _ssl import (PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||||
|
PROTOCOL_TLSv1)
|
||||||
|
+_PROTOCOL_NAMES = {
|
||||||
|
+ PROTOCOL_TLSv1: "TLSv1",
|
||||||
|
+ PROTOCOL_SSLv23: "SSLv23",
|
||||||
|
+ PROTOCOL_SSLv3: "SSLv3",
|
||||||
|
+}
|
||||||
|
+try:
|
||||||
|
+ from _ssl import PROTOCOL_SSLv2
|
||||||
|
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||||
|
+except ImportError:
|
||||||
|
+ _SSLv2_IF_EXISTS = None
|
||||||
|
+else:
|
||||||
|
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||||
|
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||||
|
from _ssl import (
|
||||||
|
SSL_ERROR_ZERO_RETURN,
|
||||||
|
@@ -434,13 +446,4 @@
|
||||||
|
return DER_cert_to_PEM_cert(dercert)
|
||||||
|
|
||||||
|
def get_protocol_name(protocol_code):
|
||||||
|
- if protocol_code == PROTOCOL_TLSv1:
|
||||||
|
- return "TLSv1"
|
||||||
|
- elif protocol_code == PROTOCOL_SSLv23:
|
||||||
|
- return "SSLv23"
|
||||||
|
- elif protocol_code == PROTOCOL_SSLv2:
|
||||||
|
- return "SSLv2"
|
||||||
|
- elif protocol_code == PROTOCOL_SSLv3:
|
||||||
|
- return "SSLv3"
|
||||||
|
- else:
|
||||||
|
- return "<unknown>"
|
||||||
|
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||||
|
diff -r -u ../Python-3.1/Modules/_ssl.c ./Modules/_ssl.c
|
||||||
|
--- ../Python-3.1/Modules/_ssl.c 2009-05-06 07:31:58.000000000 +0900
|
||||||
|
+++ ./Modules/_ssl.c 2015-08-15 13:13:23.812369742 +0900
|
||||||
|
@@ -62,7 +62,9 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
enum py_ssl_version {
|
||||||
|
+#ifndef OPENSSL_NO_SSL2
|
||||||
|
PY_SSL_VERSION_SSL2,
|
||||||
|
+#endif
|
||||||
|
PY_SSL_VERSION_SSL3,
|
||||||
|
PY_SSL_VERSION_SSL23,
|
||||||
|
PY_SSL_VERSION_TLS1,
|
||||||
|
@@ -301,8 +303,10 @@
|
||||||
|
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||||
|
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||||
|
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||||
|
+#ifndef OPENSSL_NO_SSL2
|
||||||
|
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||||
|
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||||
|
+#endif
|
||||||
|
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||||
|
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||||
|
PySSL_END_ALLOW_THREADS
|
||||||
|
@@ -1693,8 +1697,10 @@
|
||||||
|
PY_SSL_CERT_REQUIRED);
|
||||||
|
|
||||||
|
/* protocol versions */
|
||||||
|
+#ifndef OPENSSL_NO_SSL2
|
||||||
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||||
|
PY_SSL_VERSION_SSL2);
|
||||||
|
+#endif
|
||||||
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||||
|
PY_SSL_VERSION_SSL3);
|
||||||
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
diff -r -u ../Python-3.1/setup.py ./setup.py
|
||||||
|
--- ../Python-3.1/setup.py 2009-05-24 02:13:14.000000000 +0900
|
||||||
|
+++ ./setup.py 2015-08-15 13:29:18.300777605 +0900
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
from distutils.command.build_ext import build_ext
|
||||||
|
from distutils.command.install import install
|
||||||
|
from distutils.command.install_lib import install_lib
|
||||||
|
+from distutils.spawn import find_executable
|
||||||
|
|
||||||
|
# This global variable is used to hold the list of modules to be disabled.
|
||||||
|
disabled_module_list = []
|
||||||
|
@@ -293,10 +294,33 @@
|
||||||
|
return platform
|
||||||
|
return sys.platform
|
||||||
|
|
||||||
|
+ def add_multiarch_paths(self):
|
||||||
|
+ # Debian/Ubuntu multiarch support.
|
||||||
|
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||||
|
+ if not find_executable('dpkg-architecture'):
|
||||||
|
+ return
|
||||||
|
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||||
|
+ if not os.path.exists(self.build_temp):
|
||||||
|
+ os.makedirs(self.build_temp)
|
||||||
|
+ ret = os.system(
|
||||||
|
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||||
|
+ tmpfile)
|
||||||
|
+ try:
|
||||||
|
+ if ret >> 8 == 0:
|
||||||
|
+ with open(tmpfile) as fp:
|
||||||
|
+ multiarch_path_component = fp.readline().strip()
|
||||||
|
+ add_dir_to_list(self.compiler.library_dirs,
|
||||||
|
+ '/usr/lib/' + multiarch_path_component)
|
||||||
|
+ add_dir_to_list(self.compiler.include_dirs,
|
||||||
|
+ '/usr/include/' + multiarch_path_component)
|
||||||
|
+ finally:
|
||||||
|
+ os.unlink(tmpfile)
|
||||||
|
+
|
||||||
|
def detect_modules(self):
|
||||||
|
# Ensure that /usr/local is always used
|
||||||
|
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||||
|
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||||
|
+ self.add_multiarch_paths()
|
||||||
|
|
||||||
|
# Add paths specified in the environment variables LDFLAGS and
|
||||||
|
# CPPFLAGS for header and library files.
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
diff -r -u ../Python-3.1/Lib/ssl.py ./Lib/ssl.py
|
||||||
|
--- ../Python-3.1/Lib/ssl.py 2009-06-04 18:42:55.000000000 +0900
|
||||||
|
+++ ./Lib/ssl.py 2015-08-15 13:12:22.270915671 +0900
|
||||||
|
@@ -60,8 +60,20 @@
|
||||||
|
|
||||||
|
from _ssl import SSLError
|
||||||
|
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||||
|
-from _ssl import (PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||||
|
+from _ssl import (PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||||
|
PROTOCOL_TLSv1)
|
||||||
|
+_PROTOCOL_NAMES = {
|
||||||
|
+ PROTOCOL_TLSv1: "TLSv1",
|
||||||
|
+ PROTOCOL_SSLv23: "SSLv23",
|
||||||
|
+ PROTOCOL_SSLv3: "SSLv3",
|
||||||
|
+}
|
||||||
|
+try:
|
||||||
|
+ from _ssl import PROTOCOL_SSLv2
|
||||||
|
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||||
|
+except ImportError:
|
||||||
|
+ _SSLv2_IF_EXISTS = None
|
||||||
|
+else:
|
||||||
|
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||||
|
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||||
|
from _ssl import (
|
||||||
|
SSL_ERROR_ZERO_RETURN,
|
||||||
|
@@ -434,13 +446,4 @@
|
||||||
|
return DER_cert_to_PEM_cert(dercert)
|
||||||
|
|
||||||
|
def get_protocol_name(protocol_code):
|
||||||
|
- if protocol_code == PROTOCOL_TLSv1:
|
||||||
|
- return "TLSv1"
|
||||||
|
- elif protocol_code == PROTOCOL_SSLv23:
|
||||||
|
- return "SSLv23"
|
||||||
|
- elif protocol_code == PROTOCOL_SSLv2:
|
||||||
|
- return "SSLv2"
|
||||||
|
- elif protocol_code == PROTOCOL_SSLv3:
|
||||||
|
- return "SSLv3"
|
||||||
|
- else:
|
||||||
|
- return "<unknown>"
|
||||||
|
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||||
|
diff -r -u ../Python-3.1/Modules/_ssl.c ./Modules/_ssl.c
|
||||||
|
--- ../Python-3.1/Modules/_ssl.c 2009-05-06 07:31:58.000000000 +0900
|
||||||
|
+++ ./Modules/_ssl.c 2015-08-15 13:13:23.812369742 +0900
|
||||||
|
@@ -62,7 +62,9 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
enum py_ssl_version {
|
||||||
|
+#ifndef OPENSSL_NO_SSL2
|
||||||
|
PY_SSL_VERSION_SSL2,
|
||||||
|
+#endif
|
||||||
|
PY_SSL_VERSION_SSL3,
|
||||||
|
PY_SSL_VERSION_SSL23,
|
||||||
|
PY_SSL_VERSION_TLS1,
|
||||||
|
@@ -301,8 +303,10 @@
|
||||||
|
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||||
|
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||||
|
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||||
|
+#ifndef OPENSSL_NO_SSL2
|
||||||
|
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||||
|
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||||
|
+#endif
|
||||||
|
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||||
|
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||||
|
PySSL_END_ALLOW_THREADS
|
||||||
|
@@ -1693,8 +1697,10 @@
|
||||||
|
PY_SSL_CERT_REQUIRED);
|
||||||
|
|
||||||
|
/* protocol versions */
|
||||||
|
+#ifndef OPENSSL_NO_SSL2
|
||||||
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||||
|
PY_SSL_VERSION_SSL2);
|
||||||
|
+#endif
|
||||||
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||||
|
PY_SSL_VERSION_SSL3);
|
||||||
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
diff -r -u ../Python-3.1/setup.py ./setup.py
|
||||||
|
--- ../Python-3.1/setup.py 2009-05-24 02:13:14.000000000 +0900
|
||||||
|
+++ ./setup.py 2015-08-15 13:29:18.300777605 +0900
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
from distutils.command.build_ext import build_ext
|
||||||
|
from distutils.command.install import install
|
||||||
|
from distutils.command.install_lib import install_lib
|
||||||
|
+from distutils.spawn import find_executable
|
||||||
|
|
||||||
|
# This global variable is used to hold the list of modules to be disabled.
|
||||||
|
disabled_module_list = []
|
||||||
|
@@ -293,10 +294,33 @@
|
||||||
|
return platform
|
||||||
|
return sys.platform
|
||||||
|
|
||||||
|
+ def add_multiarch_paths(self):
|
||||||
|
+ # Debian/Ubuntu multiarch support.
|
||||||
|
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||||
|
+ if not find_executable('dpkg-architecture'):
|
||||||
|
+ return
|
||||||
|
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||||
|
+ if not os.path.exists(self.build_temp):
|
||||||
|
+ os.makedirs(self.build_temp)
|
||||||
|
+ ret = os.system(
|
||||||
|
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||||
|
+ tmpfile)
|
||||||
|
+ try:
|
||||||
|
+ if ret >> 8 == 0:
|
||||||
|
+ with open(tmpfile) as fp:
|
||||||
|
+ multiarch_path_component = fp.readline().strip()
|
||||||
|
+ add_dir_to_list(self.compiler.library_dirs,
|
||||||
|
+ '/usr/lib/' + multiarch_path_component)
|
||||||
|
+ add_dir_to_list(self.compiler.include_dirs,
|
||||||
|
+ '/usr/include/' + multiarch_path_component)
|
||||||
|
+ finally:
|
||||||
|
+ os.unlink(tmpfile)
|
||||||
|
+
|
||||||
|
def detect_modules(self):
|
||||||
|
# Ensure that /usr/local is always used
|
||||||
|
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||||
|
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||||
|
+ self.add_multiarch_paths()
|
||||||
|
|
||||||
|
# Add paths specified in the environment variables LDFLAGS and
|
||||||
|
# CPPFLAGS for header and library files.
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
diff -r -u ../Python-3.1/Lib/ssl.py ./Lib/ssl.py
|
||||||
|
--- ../Python-3.1/Lib/ssl.py 2009-06-04 18:42:55.000000000 +0900
|
||||||
|
+++ ./Lib/ssl.py 2015-08-15 13:12:22.270915671 +0900
|
||||||
|
@@ -60,8 +60,20 @@
|
||||||
|
|
||||||
|
from _ssl import SSLError
|
||||||
|
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||||
|
-from _ssl import (PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||||
|
+from _ssl import (PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||||
|
PROTOCOL_TLSv1)
|
||||||
|
+_PROTOCOL_NAMES = {
|
||||||
|
+ PROTOCOL_TLSv1: "TLSv1",
|
||||||
|
+ PROTOCOL_SSLv23: "SSLv23",
|
||||||
|
+ PROTOCOL_SSLv3: "SSLv3",
|
||||||
|
+}
|
||||||
|
+try:
|
||||||
|
+ from _ssl import PROTOCOL_SSLv2
|
||||||
|
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||||
|
+except ImportError:
|
||||||
|
+ _SSLv2_IF_EXISTS = None
|
||||||
|
+else:
|
||||||
|
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||||
|
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||||
|
from _ssl import (
|
||||||
|
SSL_ERROR_ZERO_RETURN,
|
||||||
|
@@ -434,13 +446,4 @@
|
||||||
|
return DER_cert_to_PEM_cert(dercert)
|
||||||
|
|
||||||
|
def get_protocol_name(protocol_code):
|
||||||
|
- if protocol_code == PROTOCOL_TLSv1:
|
||||||
|
- return "TLSv1"
|
||||||
|
- elif protocol_code == PROTOCOL_SSLv23:
|
||||||
|
- return "SSLv23"
|
||||||
|
- elif protocol_code == PROTOCOL_SSLv2:
|
||||||
|
- return "SSLv2"
|
||||||
|
- elif protocol_code == PROTOCOL_SSLv3:
|
||||||
|
- return "SSLv3"
|
||||||
|
- else:
|
||||||
|
- return "<unknown>"
|
||||||
|
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||||
|
diff -r -u ../Python-3.1/Modules/_ssl.c ./Modules/_ssl.c
|
||||||
|
--- ../Python-3.1/Modules/_ssl.c 2009-05-06 07:31:58.000000000 +0900
|
||||||
|
+++ ./Modules/_ssl.c 2015-08-15 13:13:23.812369742 +0900
|
||||||
|
@@ -62,7 +62,9 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
enum py_ssl_version {
|
||||||
|
+#ifndef OPENSSL_NO_SSL2
|
||||||
|
PY_SSL_VERSION_SSL2,
|
||||||
|
+#endif
|
||||||
|
PY_SSL_VERSION_SSL3,
|
||||||
|
PY_SSL_VERSION_SSL23,
|
||||||
|
PY_SSL_VERSION_TLS1,
|
||||||
|
@@ -301,8 +303,10 @@
|
||||||
|
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||||
|
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||||
|
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||||
|
+#ifndef OPENSSL_NO_SSL2
|
||||||
|
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||||
|
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||||
|
+#endif
|
||||||
|
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||||
|
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||||
|
PySSL_END_ALLOW_THREADS
|
||||||
|
@@ -1693,8 +1697,10 @@
|
||||||
|
PY_SSL_CERT_REQUIRED);
|
||||||
|
|
||||||
|
/* protocol versions */
|
||||||
|
+#ifndef OPENSSL_NO_SSL2
|
||||||
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||||
|
PY_SSL_VERSION_SSL2);
|
||||||
|
+#endif
|
||||||
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||||
|
PY_SSL_VERSION_SSL3);
|
||||||
|
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||||
44
plugins/python-build/share/python-build/pypy-2.6.0
Normal file
44
plugins/python-build/share/python-build/pypy-2.6.0
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
case "$(pypy_architecture 2>/dev/null || true)" in
|
||||||
|
"linux" )
|
||||||
|
if require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" 1>/dev/null 2>&1; then
|
||||||
|
install_package "pypy-2.6.0-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-linux.tar.bz2#6e0b052c40a59bf5a85ee239980bbcab8b031b4c2bc33b99efe1b072977d9910" "pypy" verify_py27 ensurepip
|
||||||
|
else
|
||||||
|
install_package "pypy-2.6-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.6-linux_i686-portable.tar.bz2#e01db0984f7fecd80dadfb1d5f65118e596e3984d12643b4d552e83f92bff549" "pypy" verify_py27 ensurepip
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"linux-armel" )
|
||||||
|
require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" || true
|
||||||
|
install_package "pypy-2.6.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-linux-armel.tar.bz2#9d0cb9b15283f9c15f83c05293f8bd41d302c96090fd89b778f359df9bc8e619" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
"linux-armhf" )
|
||||||
|
if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then
|
||||||
|
install_package "pypy-2.6.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-linux-armhf-raspbian.tar.bz2#e9f6a16c3e21f38bd571adb33757649ceef3f2ebfdd6d37eea923ce26ea6728c" "pypy" verify_py27 ensurepip
|
||||||
|
else
|
||||||
|
require_distro "Ubuntu 13.04" || true
|
||||||
|
install_package "pypy-2.6.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-linux-armhf-raring.tar.bz2#ccb37a6d861b6dd69cd038337664885dcf91852a2ab6aef480dd7cfbda8de502" "pypy" verify_py27 ensurepip
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"linux64" )
|
||||||
|
if require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" 1>/dev/null 2>&1; then
|
||||||
|
install_package "pypy-2.6.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-linux64.tar.bz2#f5d2b0e3594cec57e32d3e43a951041ec330e1e962a836be470d591633e51388" "pypy" verify_py27 ensurepip
|
||||||
|
else
|
||||||
|
install_package "pypy-2.6-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.6-linux_x86_64-portable.tar.bz2#97284b66476c5d1b17a62f5017569a0073730928e19f95b49d78d6bc60b69495" "pypy" verify_py27 ensurepip
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"osx64" )
|
||||||
|
install_package "pypy-2.6.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-osx64.tar.bz2#77f1d056484e40e0a8e2e2b2b489eedfe785605ef36b144ffce05f7b748f6acd" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
"win32" )
|
||||||
|
# FIXME: never tested on Windows
|
||||||
|
install_zip "pypy-2.6.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-win32.zip#de907e7fef7b9b6ceccfc8aa5f4781ee3bc4a49b119d4b22ab5e25eab21c6e8d" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
|
||||||
|
echo "try 'pypy-2.6.0-src' to build from soruce."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
2
plugins/python-build/share/python-build/pypy-2.6.0-src
Normal file
2
plugins/python-build/share/python-build/pypy-2.6.0-src
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
require_gcc
|
||||||
|
install_package "pypy-2.6.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-src.tar.bz2#9bf353f22d25e97a85a6d3766619966055edea1ea1b2218445d683a8ad0399d9" "pypy_builder" verify_py27 ensurepip
|
||||||
44
plugins/python-build/share/python-build/pypy-2.6.1
Normal file
44
plugins/python-build/share/python-build/pypy-2.6.1
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
case "$(pypy_architecture 2>/dev/null || true)" in
|
||||||
|
"linux" )
|
||||||
|
if require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" 1>/dev/null 2>&1; then
|
||||||
|
install_package "pypy-2.6.1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-linux.tar.bz2#d010b1f1aafdb01beb107f16843985508ce81698260ce830690686d9b2768c88" "pypy" verify_py27 ensurepip
|
||||||
|
else
|
||||||
|
install_package "pypy-2.6.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.6.1-linux_i686-portable.tar.bz2#af8f05790fe21bffdb0619d39f2890e2ecabe47bbd3b21c2c97b9778e4cdb378" "pypy" verify_py27 ensurepip
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"linux-armel" )
|
||||||
|
require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" || true
|
||||||
|
install_package "pypy-2.6.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-linux-armel.tar.bz2#0ca15d289e78a82f927b375a016b7c3246accac5d7eebded4e32a496fb3245ab" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
"linux-armhf" )
|
||||||
|
if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then
|
||||||
|
install_package "pypy-2.6.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-linux-armhf-raspbian.tar.bz2#13d983805ebc6d9a3627dea3c34898375a4e4e7b6f0171cfbde463c1c04a92aa" "pypy" verify_py27 ensurepip
|
||||||
|
else
|
||||||
|
require_distro "Ubuntu 13.04" || true
|
||||||
|
install_package "pypy-2.6.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-linux-armhf-raring.tar.bz2#4caa7c1922a212cca4690bfa181cd368760a23b50163b3cbbd6d28401dd5cef5" "pypy" verify_py27 ensurepip
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"linux64" )
|
||||||
|
if require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" 1>/dev/null 2>&1; then
|
||||||
|
install_package "pypy-2.6.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-linux64.tar.bz2#78a48490d1b2dba8571156c2bf822324ca7dae6f6a56a4bbb96d3e8e8885367b" "pypy" verify_py27 ensurepip
|
||||||
|
else
|
||||||
|
install_package "pypy-2.6.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.6.1-linux_x86_64-portable.tar.bz2#ed6a35dee4c982123af716e62975039e18920b599afc4f6a2f3c7c89d0403389" "pypy" verify_py27 ensurepip
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"osx64" )
|
||||||
|
install_package "pypy-2.6.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-osx64.tar.bz2#4a78ef76ec38a49a9de40225c337e89486fa09938c600df2bd2dd60110066f65" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
"win32" )
|
||||||
|
# FIXME: never tested on Windows
|
||||||
|
install_zip "pypy-2.6.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-win32.zip#ccea3940fdedc03e2fcb5acf6badfe6d9c1ae876d5faf0a004e1d94edd7fd856" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
|
||||||
|
echo "try 'pypy-2.6.1-src' to build from soruce."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
2
plugins/python-build/share/python-build/pypy-2.6.1-src
Normal file
2
plugins/python-build/share/python-build/pypy-2.6.1-src
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
require_gcc
|
||||||
|
install_package "pypy-2.6.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-src.tar.bz2#7fddd414c9348c2f899f79ad86adc3fc2b19443855b5243f58487e1f0ac46560" "pypy_builder" verify_py27 ensurepip
|
||||||
16
plugins/python-build/share/python-build/pypy-portable-2.5.1
Normal file
16
plugins/python-build/share/python-build/pypy-portable-2.5.1
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
case "$(pypy_architecture 2>/dev/null || true)" in
|
||||||
|
"linux" )
|
||||||
|
install_package "pypy-2.5.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.5.1-linux_i686-portable.tar.bz2#ed532ddde3332d10faa59af49854cacbca458c597889352e619a87ab22363063" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
"linux64" )
|
||||||
|
install_package "pypy-2.5.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.5.1-linux_x86_64-portable.tar.bz2#157bee6349878cf0ef575b0d7bfd6cbb837c00e83b2872c924580ef7bc32c0d7" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": Portable PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
16
plugins/python-build/share/python-build/pypy-portable-2.6.0
Normal file
16
plugins/python-build/share/python-build/pypy-portable-2.6.0
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
case "$(pypy_architecture 2>/dev/null || true)" in
|
||||||
|
"linux" )
|
||||||
|
install_package "pypy-2.6-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.6-linux_i686-portable.tar.bz2#e01db0984f7fecd80dadfb1d5f65118e596e3984d12643b4d552e83f92bff549" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
"linux64" )
|
||||||
|
install_package "pypy-2.6-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.6-linux_x86_64-portable.tar.bz2#97284b66476c5d1b17a62f5017569a0073730928e19f95b49d78d6bc60b69495" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": Portable PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
16
plugins/python-build/share/python-build/pypy-portable-2.6.1
Normal file
16
plugins/python-build/share/python-build/pypy-portable-2.6.1
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
case "$(pypy_architecture 2>/dev/null || true)" in
|
||||||
|
"linux" )
|
||||||
|
install_package "pypy-2.6.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.6.1-linux_i686-portable.tar.bz2#af8f05790fe21bffdb0619d39f2890e2ecabe47bbd3b21c2c97b9778e4cdb378" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
"linux64" )
|
||||||
|
install_package "pypy-2.6.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.6.1-linux_x86_64-portable.tar.bz2#ed6a35dee4c982123af716e62975039e18920b599afc4f6a2f3c7c89d0403389" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": Portable PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
14
plugins/python-build/share/python-build/pypy-stm-2.3
Normal file
14
plugins/python-build/share/python-build/pypy-stm-2.3
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
case "$(pypy_architecture 2>/dev/null || true)" in
|
||||||
|
"linux64" )
|
||||||
|
require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" || true
|
||||||
|
install_package "pypy-stm-2.3-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-stm-2.3-linux64.tar.bz2#2a489280c679503442219782a87a2d16504a1467cac85ad4be1361a21d1f4d54" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of PyPy-STM is not available for $(pypy_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
14
plugins/python-build/share/python-build/pypy-stm-2.5.1
Normal file
14
plugins/python-build/share/python-build/pypy-stm-2.5.1
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
case "$(pypy_architecture 2>/dev/null || true)" in
|
||||||
|
"linux64" )
|
||||||
|
require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" || true
|
||||||
|
install_package "pypy-stm-2.5.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-stm-2.5.1-linux64.tar.bz2#f280788002f2acf8690b8f9c479bb5b6f0e699ebb42f8bf203da3f70f1a38134" "pypy" verify_py27 ensurepip
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
{ echo
|
||||||
|
colorize 1 "ERROR"
|
||||||
|
echo ": The binary distribution of PyPy-STM is not available for $(pypy_architecture 2>/dev/null || true)."
|
||||||
|
echo
|
||||||
|
} >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
@test "not enought arguments for python-build" {
|
@test "not enough arguments for python-build" {
|
||||||
# use empty inline definition so nothing gets built anyway
|
# use empty inline definition so nothing gets built anyway
|
||||||
local definition="${TMP}/build-definition"
|
local definition="${TMP}/build-definition"
|
||||||
echo '' > "$definition"
|
echo '' > "$definition"
|
||||||
|
|||||||
@@ -462,6 +462,14 @@ OUT
|
|||||||
# nop
|
# nop
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "Java version string not on first line" {
|
||||||
|
# nop
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "Java version string on OpenJDK" {
|
||||||
|
# nop
|
||||||
|
}
|
||||||
|
|
||||||
@test "non-writable TMPDIR aborts build" {
|
@test "non-writable TMPDIR aborts build" {
|
||||||
export TMPDIR="${TMP}/build"
|
export TMPDIR="${TMP}/build"
|
||||||
mkdir -p "$TMPDIR"
|
mkdir -p "$TMPDIR"
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ See all available versions with \`pyenv install --list'.
|
|||||||
|
|
||||||
If the version you need is missing, try upgrading pyenv:
|
If the version you need is missing, try upgrading pyenv:
|
||||||
|
|
||||||
cd ${BATS_TEST_DIRNAME}/../../.. && git pull
|
cd ${BATS_TEST_DIRNAME}/../../.. && git pull && cd -
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub python-build
|
unstub python-build
|
||||||
@@ -149,39 +149,61 @@ OUT
|
|||||||
|
|
||||||
@test "not enough arguments for pyenv-install" {
|
@test "not enough arguments for pyenv-install" {
|
||||||
stub_python_build
|
stub_python_build
|
||||||
|
stub pyenv-help 'install : true'
|
||||||
|
|
||||||
run pyenv-install
|
run pyenv-install
|
||||||
assert_failure
|
assert_failure
|
||||||
assert_output_contains 'Usage: pyenv install'
|
unstub pyenv-help
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "too many arguments for pyenv-install" {
|
@test "too many arguments for pyenv-install" {
|
||||||
stub_python_build
|
stub_python_build
|
||||||
|
stub pyenv-help 'install : true'
|
||||||
|
|
||||||
run pyenv-install 3.4.1 3.4.2
|
run pyenv-install 3.4.1 3.4.2
|
||||||
assert_failure
|
assert_failure
|
||||||
assert_output_contains 'Usage: pyenv install'
|
unstub pyenv-help
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "show help for pyenv-install" {
|
@test "show help for pyenv-install" {
|
||||||
stub_python_build
|
stub_python_build
|
||||||
|
stub pyenv-help 'install : true'
|
||||||
|
|
||||||
run pyenv-install -h
|
run pyenv-install -h
|
||||||
assert_success
|
assert_success
|
||||||
|
unstub pyenv-help
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "pyenv-install has usage help preface" {
|
||||||
|
run head "$(which pyenv-install)"
|
||||||
assert_output_contains 'Usage: pyenv install'
|
assert_output_contains 'Usage: pyenv install'
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "not enough arguments pyenv-uninstall" {
|
@test "not enough arguments pyenv-uninstall" {
|
||||||
|
stub pyenv-help 'uninstall : true'
|
||||||
|
|
||||||
run pyenv-uninstall
|
run pyenv-uninstall
|
||||||
assert_failure
|
assert_failure
|
||||||
assert_output_contains 'Usage: pyenv uninstall'
|
unstub pyenv-help
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "too many arguments for pyenv-uninstall" {
|
@test "too many arguments for pyenv-uninstall" {
|
||||||
|
stub pyenv-help 'uninstall : true'
|
||||||
|
|
||||||
run pyenv-uninstall 3.4.1 3.4.2
|
run pyenv-uninstall 3.4.1 3.4.2
|
||||||
assert_failure
|
assert_failure
|
||||||
assert_output_contains 'Usage: pyenv uninstall'
|
unstub pyenv-help
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "show help for pyenv-uninstall" {
|
@test "show help for pyenv-uninstall" {
|
||||||
|
stub pyenv-help 'uninstall : true'
|
||||||
|
|
||||||
run pyenv-uninstall -h
|
run pyenv-uninstall -h
|
||||||
assert_success
|
assert_success
|
||||||
|
unstub pyenv-help
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "pyenv-uninstall has usage help preface" {
|
||||||
|
run head "$(which pyenv-uninstall)"
|
||||||
assert_output_contains 'Usage: pyenv uninstall'
|
assert_output_contains 'Usage: pyenv uninstall'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,6 +87,10 @@ install_tmp_fixture() {
|
|||||||
run python-build $args "$TMP_FIXTURES/$name" "$destination"
|
run python-build $args "$TMP_FIXTURES/$name" "$destination"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resolve_link() {
|
||||||
|
$(type -p greadlink readlink | head -1) "$1"
|
||||||
|
}
|
||||||
|
|
||||||
@test "apply built-in python patch before building" {
|
@test "apply built-in python patch before building" {
|
||||||
cached_tarball "Python-3.2.1"
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
@@ -159,3 +163,120 @@ OUT
|
|||||||
|
|
||||||
unstub make
|
unstub make
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "ensurepip without altinstall" {
|
||||||
|
mkdir -p "${INSTALL_ROOT}/bin"
|
||||||
|
cat <<OUT > "${INSTALL_ROOT}/bin/python"
|
||||||
|
#!$BASH
|
||||||
|
echo "python \$@" >> "${INSTALL_ROOT}/build.log"
|
||||||
|
OUT
|
||||||
|
chmod +x "${INSTALL_ROOT}/bin/python"
|
||||||
|
|
||||||
|
PYTHON_MAKE_INSTALL_TARGET="" TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
|
build_package_ensurepip
|
||||||
|
OUT
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
python -s -m ensurepip
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "ensurepip with altinstall" {
|
||||||
|
mkdir -p "${INSTALL_ROOT}/bin"
|
||||||
|
cat <<OUT > "${INSTALL_ROOT}/bin/python"
|
||||||
|
#!$BASH
|
||||||
|
echo "python \$@" >> "${INSTALL_ROOT}/build.log"
|
||||||
|
OUT
|
||||||
|
chmod +x "${INSTALL_ROOT}/bin/python"
|
||||||
|
|
||||||
|
PYTHON_MAKE_INSTALL_TARGET="altinstall" TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
|
build_package_ensurepip
|
||||||
|
OUT
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
python -s -m ensurepip --altinstall
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "python3-config" {
|
||||||
|
mkdir -p "${INSTALL_ROOT}/bin"
|
||||||
|
touch "${INSTALL_ROOT}/bin/python3"
|
||||||
|
chmod +x "${INSTALL_ROOT}/bin/python3"
|
||||||
|
touch "${INSTALL_ROOT}/bin/python3.4"
|
||||||
|
chmod +x "${INSTALL_ROOT}/bin/python3.4"
|
||||||
|
touch "${INSTALL_ROOT}/bin/python3-config"
|
||||||
|
chmod +x "${INSTALL_ROOT}/bin/python3-config"
|
||||||
|
touch "${INSTALL_ROOT}/bin/python3.4-config"
|
||||||
|
chmod +x "${INSTALL_ROOT}/bin/python3.4-config"
|
||||||
|
|
||||||
|
TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
|
verify_python python3.4
|
||||||
|
OUT
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
[ -L "${INSTALL_ROOT}/bin/python" ]
|
||||||
|
[ -L "${INSTALL_ROOT}/bin/python-config" ]
|
||||||
|
[[ "$(resolve_link "${INSTALL_ROOT}/bin/python")" == "python3.4" ]]
|
||||||
|
[[ "$(resolve_link "${INSTALL_ROOT}/bin/python-config")" == "python3.4-config" ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "--enable-framework" {
|
||||||
|
mkdir -p "${INSTALL_ROOT}/Python.framework/Versions/Current/bin"
|
||||||
|
touch "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python3"
|
||||||
|
chmod +x "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python3"
|
||||||
|
touch "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python3.4"
|
||||||
|
chmod +x "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python3.4"
|
||||||
|
touch "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python3-config"
|
||||||
|
chmod +x "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python3-config"
|
||||||
|
touch "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python3.4-config"
|
||||||
|
chmod +x "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python3.4-config"
|
||||||
|
|
||||||
|
stub uname '-s : echo Darwin'
|
||||||
|
|
||||||
|
PYTHON_CONFIGURE_OPTS="--enable-framework" TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
|
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
||||||
|
verify_python python3.4
|
||||||
|
OUT
|
||||||
|
assert_success
|
||||||
|
assert_output <<EOS
|
||||||
|
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-framework=${TMP}/install)
|
||||||
|
EOS
|
||||||
|
|
||||||
|
[ -L "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python" ]
|
||||||
|
[ -L "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python-config" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "--enable-universalsdk" {
|
||||||
|
stub uname '-s : echo Darwin'
|
||||||
|
|
||||||
|
PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
|
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
||||||
|
OUT
|
||||||
|
assert_success
|
||||||
|
assert_output <<EOS
|
||||||
|
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-universalsdk=/ --with-universal-archs=intel)
|
||||||
|
EOS
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "default MACOSX_DEPLOYMENT_TARGET" {
|
||||||
|
stub uname '-s : echo Darwin'
|
||||||
|
stub sw_vers '-productVersion : echo 10.10'
|
||||||
|
|
||||||
|
TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
|
echo "\${MACOSX_DEPLOYMENT_TARGET}"
|
||||||
|
OUT
|
||||||
|
assert_success
|
||||||
|
assert_output "10.10"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "use custom MACOSX_DEPLOYMENT_TARGET if defined" {
|
||||||
|
stub uname '-s : echo Darwin'
|
||||||
|
|
||||||
|
MACOSX_DEPLOYMENT_TARGET="10.4" TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
|
echo "\${MACOSX_DEPLOYMENT_TARGET}"
|
||||||
|
OUT
|
||||||
|
assert_success
|
||||||
|
assert_output "10.4"
|
||||||
|
}
|
||||||
|
|||||||
@@ -71,11 +71,11 @@ load test_helper
|
|||||||
assert_line 0 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"'
|
assert_line 0 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"'
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "doesn't add shims to PATH more than once (fish)" {
|
@test "can add shims to PATH more than once (fish)" {
|
||||||
export PATH="${PYENV_ROOT}/shims:$PATH"
|
export PATH="${PYENV_ROOT}/shims:$PATH"
|
||||||
run pyenv-init - fish
|
run pyenv-init - fish
|
||||||
assert_success
|
assert_success
|
||||||
refute_line 'setenv PATH "'${PYENV_ROOT}'/shims" $PATH ;'
|
assert_line 0 "setenv PATH '${PYENV_ROOT}/shims' \$PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "outputs sh-compatible syntax" {
|
@test "outputs sh-compatible syntax" {
|
||||||
|
|||||||
@@ -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 20150524" ]
|
assert [ "${lines[0]}" == "pyenv 20150913" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "invalid command" {
|
@test "invalid command" {
|
||||||
|
|||||||
@@ -1,3 +1,14 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
|
@test "prefixes" {
|
||||||
|
mkdir -p "${PYENV_TEST_DIR}/bin"
|
||||||
|
touch "${PYENV_TEST_DIR}/bin/python"
|
||||||
|
chmod +x "${PYENV_TEST_DIR}/bin/python"
|
||||||
|
mkdir -p "${PYENV_ROOT}/versions/2.7.10"
|
||||||
|
PYENV_VERSION="system:2.7.10" run pyenv-prefix
|
||||||
|
assert_success "${PYENV_TEST_DIR}:${PYENV_ROOT}/versions/2.7.10"
|
||||||
|
PYENV_VERSION="2.7.10:system" run pyenv-prefix
|
||||||
|
assert_success "${PYENV_ROOT}/versions/2.7.10:${PYENV_TEST_DIR}"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user