1
0
mirror of https://github.com/pyenv/pyenv.git synced 2025-11-08 11:33:49 -05:00

Compare commits

...

9 Commits

Author SHA1 Message Date
Anton Petrov
f50b99265c v2.3.30 2023-10-16 21:37:24 +03:00
Anton Petrov
9c8f92cf4e v2.3.30 2023-10-16 21:36:46 +03:00
startergo
d25cd0d0f5 Fix linking against Homebrew's Tcl/Tk 8.6.13 in MacOS (#2820)
Headers have been moved to the 'tcl-tk' subdir
This was causing Tcl/Tk 8.5 from XCode SDK to be silently picked instead
2023-10-15 17:17:22 +03:00
Ivan Pozdeev
709534c21f CI: add 3.12 2023-10-15 15:03:49 +03:00
native-api
62e2e9c743 Merge pull request #2807 from dand-oss/pypy-3.7.13
Add PyPy 7.3.13
2023-10-14 10:11:28 +03:00
Ivan Pozdeev
509d3a8855 Use pip<21 syntax in ensurepip call for pypy2.7-7.3.13 and 2.7.18 2023-10-14 07:38:42 +03:00
Dan Dees
c6f0d31dc9 pypy 3.7.13 2023-10-14 07:38:41 +03:00
Edgar Ramírez Mondragón
b8b6846a21 Add CPython 3.13.0a1 (#2818) 2023-10-13 21:07:42 +03:00
native-api
dee8a9dbad Fix intermittent "broken pipe" in version sort test (#2817) 2023-10-12 22:09:48 +03:00
14 changed files with 329 additions and 5 deletions

View File

@@ -14,6 +14,7 @@ jobs:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
runs-on: macos-11
steps:
- uses: actions/checkout@v3

View File

@@ -14,6 +14,7 @@ jobs:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3

View File

@@ -1,5 +1,12 @@
# Version History
## Release v2.3.30
* Fix intermittent "broken pipe" in tests by @native-api in https://github.com/pyenv/pyenv/pull/2817
* Add CPython 3.13.0a1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2818
* Add PyPy 7.3.13 by @dand-oss in https://github.com/pyenv/pyenv/pull/2807
* Fix linking against Homebrew's Tcl/Tk 8.6.13 in MacOS by @startergo in https://github.com/pyenv/pyenv/pull/2820
## Release v2.3.29
* Add CPython 3.11.6 by @thecesrom in https://github.com/pyenv/pyenv/pull/2806

View File

@@ -12,7 +12,7 @@
set -e
[ -n "$PYENV_DEBUG" ] && set -x
version="2.3.29"
version="2.3.30"
git_revision=""
if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then

View File

@@ -1629,6 +1629,9 @@ use_xcode_sdk_zlib() {
local xc_sdk_path="$(xcrun --show-sdk-path 2>/dev/null || true)"
if [ -d "$xc_sdk_path" ]; then
echo "python-build: use zlib from xcode sdk"
# Even though SDK's compiler uses the SDK dirs implicitly,
# CPython's setup.py has to have nonstandard paths specified explicitly
# to search for zlib.h in them
export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${xc_sdk_path}/usr/include"
if is_mac -ge 1100; then
export LDFLAGS="${LDFLAGS:+$LDFLAGS }-L${xc_sdk_path}/usr/lib"
@@ -1645,7 +1648,15 @@ use_homebrew_tcltk() {
if [[ -z "$PYTHON_BUILD_TCLTK_USE_PKGCONFIG" ]]; then
local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')"
package_option python configure --with-tcltk-libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version"
package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include"
# In Homebrew Tcl/Tk 8.6.13, headers have been moved to the 'tcl-tk' subdir.
# We're not using tclConfig.sh here 'cuz it produces the version-specific path to <brew prefix>/Cellar
# and we'd rather have rpath set to <brew prefix>/opt/<...> to allow micro release upgrades without rebuilding
# XXX: do use tclConfig.sh and translate the paths if more path shenanigans appear in later releases
if [ -d "$tcltk_libdir/include/tcl-tk" ]; then
package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include/tcl-tk"
else
package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include"
fi
fi
export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
fi
@@ -2037,14 +2048,23 @@ build_package_get_pip() {
build_package_symlink_version_suffix
}
# Pip <21 (in 2.7 and derivatives like PyPy-2.7) doesn't support -I
build_package_ensurepip_lt21() {
build_package_ensurepip lt21
}
build_package_ensurepip() {
local mode="$1"
local ensurepip_opts
# Install as `--altinstall` if the Python is installed as `altinstall` (#255)
if [[ "$PYTHON_MAKE_INSTALL_TARGET" == *"altinstall"* ]]; then
ensurepip_opts="--altinstall"
fi
local python_opts="-I"
if [[ $mode == "lt21" ]]; then python_opts="-s"; fi
# FIXME: `--altinstall` with `get-pip.py`
"$PYTHON_BIN" -I -m ensurepip ${ensurepip_opts} 1>/dev/null 2>&1 || build_package_get_pip "$@" || return 1
"$PYTHON_BIN" $python_opts -m ensurepip ${ensurepip_opts} 1>/dev/null 2>&1 || build_package_get_pip "$@" || return 1
build_package_symlink_version_suffix
}

View File

@@ -2,7 +2,7 @@ export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="openssl@1.1 openssl@1.0 openssl"
install_package "openssl-1.1.1v" "https://www.openssl.org/source/openssl-1.1.1v.tar.gz" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-2.7.18" "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz#b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43" standard verify_py27 copy_python_gdb ensurepip
install_package "Python-2.7.18" "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz#b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43" standard verify_py27 copy_python_gdb ensurepip_lt21
else
install_package "Python-2.7.18" "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz#da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814" standard verify_py27 copy_python_gdb ensurepip
install_package "Python-2.7.18" "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz#da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814" standard verify_py27 copy_python_gdb ensurepip_lt21
fi

View File

@@ -0,0 +1,9 @@
prefer_openssl3
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
install_package "openssl-3.1.2" "https://www.openssl.org/source/openssl-3.1.2.tar.gz#a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35" mac_readline --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.13.0a1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a1.tar.xz#f0281bf22cc00414361c14fc9197183e7eb2eabb729656b69442224fbb63eecb" standard verify_py313 copy_python_gdb ensurepip
else
install_package "Python-3.13.0a1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a1.tgz#fb1674c6317651bc9c1dfeb6339cd706b84c95f8e614f395d2ffb0af19bbe885" standard verify_py313 copy_python_gdb ensurepip
fi

View File

@@ -0,0 +1,81 @@
VERSION='7.3.13'
PYVER='2.7'
# https://www.pypy.org/checksums.html
aarch64_hash=f1e20f833cc86a097c1f1318069fc17d01c3988678c1438fe27ed567fcb5cfd0
linux32_hash=b727d2e759a740f45bab1e333029d001c4384b52949bcbb4bd2ad7912eae8dad
linux64_hash=e41ceb5dc6c4d3a9311ed5f88edfeedbf3e8abbd1ed3c4f2e151a90a5cf4e1d7
osarm64_hash=5b86cf0750abc188a0355380d10c7bab1dec51b610cde23ce78f30a9ef296618
osx64_hash=50769df0091e8fa51c9e4356e0cb204e6f6aa54f502ec5a6e55aef03d0ac5675
s390x_hash=fbb2f3d92831c02b094f17e9609b95a6202d4bdcddae437e380ab14388d4556e
### end of manual settings - following lines same for every download
function err_no_binary {
local archmsg="${1}"
local ver="pypy${PYVER}-v${VERSION}-src"
local url="https://downloads.python.org/pypy/${ver}.tar.bz2"
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for ${archmsg}."
echo "try '${url}' to build from source."
echo
} >&2
exit 1
}
function pypy_pkg_data {
# pypy architecture tag
local ARCH="${1}"
# defaults
local cmd='install_package' # use bz2
local pkg="${ARCH}" # assume matches
local ext='tar.bz2'
local hash='' # undefined
# select the hash, fix pkg if not match ARCH
case "${ARCH}" in
'linux-aarch64' )
hash="${aarch64_hash}"
pkg='aarch64'
;;
'linux' )
hash="${linux32_hash}"
pkg='linux32'
;;
'linux64' )
hash="${linux64_hash}"
;;
'osarm64' )
hash="${osarm64_hash}"
pkg='macos_arm64'
;;
'osx64' )
if require_osx_version "10.13"; then
hash="${osx64_hash}"
pkg='macos_x86_64'
else
err_no_binary "${ARCH}, OS X < 10.13"
fi
;;
's390x' )
hash="${s390x_hash}"
;;
* )
err_no_binary "${ARCH}"
;;
esac
local basever="pypy${PYVER}-v${VERSION}"
local baseurl="https://downloads.python.org/pypy/${basever}"
# result - command, package dir, url+hash
echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}"
}
# determine command, package directory, url+hash
declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")"
# install
${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip_lt21'

View File

@@ -0,0 +1,14 @@
VERSION='7.3.13'
PYVER='2.7'
# https://www.pypy.org/checksums.html
hash=976984bc6ca5ec9d37ae4e219b020cbed2751d1a02267033f59ed700ba8cec40
### end of manual settings - following lines same for every download
ver="pypy${PYVER}-v${VERSION}-src"
url="https://downloads.python.org/pypy/${ver}.tar.bz2"
prefer_openssl11
install_package "openssl-1.1.1f" "https://www.openssl.org/source/openssl-1.1.1f.tar.gz#186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35" mac_openssl --if has_broken_mac_openssl
install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip_lt21'

View File

@@ -0,0 +1,81 @@
VERSION='7.3.13'
PYVER='3.10'
# https://www.pypy.org/checksums.html
aarch64_hash=ac476f01c9653358404f2e4b52f62307b2f64ccdb8c96dadcbfe355824d81a63
linux32_hash=bfba57eb1f859dd0ad0d6fe841bb12e1256f1f023c7fbca083b536cccbc1233b
linux64_hash=54936eeafd9350a5ea0375b036272a260871b9bca82e1b0bb3201deea9f5a442
osarm64_hash=efb3007b7aace0af6e3b30d381088a5bbc175973a6627b6b0d624a2ca2dc63ce
osx64_hash=2c6238b9ece7b94ffdfd1d9b50619edef4b169a5c78adcdb691fce6709cd6610
s390x_hash=3c813c7efa6a026b281313b299c186c585155fc164c7538e65d41efdabff87c9
### end of manual settings - following lines same for every download
function err_no_binary {
local archmsg="${1}"
local ver="pypy${PYVER}-v${VERSION}-src"
local url="https://downloads.python.org/pypy/${ver}.tar.bz2"
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for ${archmsg}."
echo "try '${url}' to build from source."
echo
} >&2
exit 1
}
function pypy_pkg_data {
# pypy architecture tag
local ARCH="${1}"
# defaults
local cmd='install_package' # use bz2
local pkg="${ARCH}" # assume matches
local ext='tar.bz2'
local hash='' # undefined
# select the hash, fix pkg if not match ARCH
case "${ARCH}" in
'linux-aarch64' )
hash="${aarch64_hash}"
pkg='aarch64'
;;
'linux' )
hash="${linux32_hash}"
pkg='linux32'
;;
'linux64' )
hash="${linux64_hash}"
;;
'osarm64' )
hash="${osarm64_hash}"
pkg='macos_arm64'
;;
'osx64' )
if require_osx_version "10.13"; then
hash="${osx64_hash}"
pkg='macos_x86_64'
else
err_no_binary "${ARCH}, OS X < 10.13"
fi
;;
's390x' )
hash="${s390x_hash}"
;;
* )
err_no_binary "${ARCH}"
;;
esac
local basever="pypy${PYVER}-v${VERSION}"
local baseurl="https://downloads.python.org/pypy/${basever}"
# result - command, package dir, url+hash
echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}"
}
# determine command, package directory, url+hash
declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")"
# install
${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -0,0 +1,14 @@
VERSION='7.3.13'
PYVER='3.10'
# https://www.pypy.org/checksums.html
hash=4ac1733c19d014d3193c804e7f40ffccbf6924bcaaee1b6089b82b9bf9353a6d
### end of manual settings - following lines same for every download
ver="pypy${PYVER}-v${VERSION}-src"
url="https://downloads.python.org/pypy/${ver}.tar.bz2"
prefer_openssl11
install_package "openssl-1.1.1f" "https://www.openssl.org/source/openssl-1.1.1f.tar.gz#186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35" mac_openssl --if has_broken_mac_openssl
install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -0,0 +1,81 @@
VERSION='7.3.13'
PYVER='3.9'
# https://www.pypy.org/checksums.html
aarch64_hash=317d7876c5825a086f854253648b967a432b993ce87695d2895d3ad6ed0d2716
linux32_hash=ac695238b4a3635ac6b482e74e04e2ea78b31acca0decd5de601dfd2f4ebf35a
linux64_hash=323b05a9f607e932cda1995cbe77a96e4ea35994631aa6d734c8035e8479b74e
osarm64_hash=333131d62c502aa5d5fb58a58cdf01de4bfb2c1db5a9bb4c04515258abe6bced
osx64_hash=fb1ff67340353e837498102fec2b0b45744bb189dced57ee2e00045785e69662
s390x_hash=213c88f652a99c4dc4e8e00b4b5b58f381c7f7e9ea1a9b65801fc0eb1e50df0a
### end of manual settings - following lines same for every download
function err_no_binary {
local archmsg="${1}"
local ver="pypy${PYVER}-v${VERSION}-src"
local url="https://downloads.python.org/pypy/${ver}.tar.bz2"
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for ${archmsg}."
echo "try '${url}' to build from source."
echo
} >&2
exit 1
}
function pypy_pkg_data {
# pypy architecture tag
local ARCH="${1}"
# defaults
local cmd='install_package' # use bz2
local pkg="${ARCH}" # assume matches
local ext='tar.bz2'
local hash='' # undefined
# select the hash, fix pkg if not match ARCH
case "${ARCH}" in
'linux-aarch64' )
hash="${aarch64_hash}"
pkg='aarch64'
;;
'linux' )
hash="${linux32_hash}"
pkg='linux32'
;;
'linux64' )
hash="${linux64_hash}"
;;
'osarm64' )
hash="${osarm64_hash}"
pkg='macos_arm64'
;;
'osx64' )
if require_osx_version "10.13"; then
hash="${osx64_hash}"
pkg='macos_x86_64'
else
err_no_binary "${ARCH}, OS X < 10.13"
fi
;;
's390x' )
hash="${s390x_hash}"
;;
* )
err_no_binary "${ARCH}"
;;
esac
local basever="pypy${PYVER}-v${VERSION}"
local baseurl="https://downloads.python.org/pypy/${basever}"
# result - command, package dir, url+hash
echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}"
}
# determine command, package directory, url+hash
declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")"
# install
${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -0,0 +1,14 @@
VERSION='7.3.13'
PYVER='3.9'
# https://www.pypy.org/checksums.html
hash=bc6147268105e7cb3bd57b401e6d97f66aa4ede269104b2712a7cdd9f02f68cd
### end of manual settings - following lines same for every download
ver="pypy${PYVER}-v${VERSION}-src"
url="https://downloads.python.org/pypy/${ver}.tar.bz2"
prefer_openssl11
install_package "openssl-1.1.1f" "https://www.openssl.org/source/openssl-1.1.1f.tar.gz#186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35" mac_openssl --if has_broken_mac_openssl
install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -201,6 +201,7 @@ OUT
create_version "1.218.0"
create_executable sort <<SH
#!$BASH
cat >/dev/null
if [ "\$1" == "--version-sort" ]; then
echo "${PYENV_ROOT}/versions/1.9.0"
echo "${PYENV_ROOT}/versions/1.53.0"