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

Compare commits

...

8 Commits

Author SHA1 Message Date
Anton Petrov
7c17c741eb 2.3.21 2023-06-20 13:52:59 +03:00
Anton Petrov
ba8b58f90d 2.3.21 2023-06-20 13:52:17 +03:00
native-api
fe76b05445 Fix occasional 'libexec/pyenv-latest: line 39: printf: write error: Broken pipe' (#2729) 2023-06-20 03:04:06 +03:00
Anton Petrov
c5d2639082 Merge pull request #2726 from edgarrmondragon/pypy-7.3.12
Add PyPy 7.3.12
2023-06-18 09:35:15 +03:00
Edgar Ramírez Mondragón
d4bd7bbe2b Add PyPy 7.3.12 2023-06-17 22:46:05 -06:00
Anton Petrov
38ac747239 Merge pull request #2724 from msimacek/master
Add graalpy-23.0.0
2023-06-14 09:41:42 +03:00
Michael Simacek
8f655d2ca6 Add graalpy-23.0.0 2023-06-13 17:13:00 +02:00
Ivan Pozdeev
d0b78fd5fe CONTRIBUTING.md: clearer phrasing 2023-06-12 15:34:45 +03:00
11 changed files with 349 additions and 4 deletions

View File

@@ -1,5 +1,11 @@
# Version History
## Release v2.3.21
* Add graalpy-23.0.0 by @msimacek in https://github.com/pyenv/pyenv/pull/2724
* Add PyPy 7.3.12 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2726
* Fix occasional 'libexec/pyenv-latest: line 39: printf: write error: Broken pipe' by @native-api in https://github.com/pyenv/pyenv/pull/2729
## Release v2.3.20
* Backport bpo-42351 to 3.5.10 by @native-api in https://github.com/pyenv/pyenv/pull/2717

View File

@@ -80,12 +80,12 @@ Deprecation policy
We do not provide official support for EOL releases and environments or otherwise provide any kind of extended support for old Python releases.
We do however accept fixes from interested parties that would allow running older, including EOL, releases in newer environments.
We do however accept fixes from interested parties that would allow running older, including EOL, releases in environments that they do not officially support.
In addition to the above requirements for release-specific fixes,
* Such a fix must not add maintenance burden (e.g. add new logic to `python-build` that has to be kept there indefinitely)
* Unless the added logic is useful for both EOL and non-EOL releases. In this case, it will be considered as being primarily an improvement for non-EOL releases.
* Support is provided on a "best effort" basis: we do not maintain these fixes but won't actively break them, either, and accept any corrections.
* Support is provided on a "best effort" basis: we do not actively maintain these fixes but won't actively break them, either, and will accept any corrections.
Since old releases never change, it's pretty safe to assume that the fixes will continue to work until a later version
of an environment introduces further incompatible changes.

View File

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

View File

@@ -36,7 +36,7 @@ IFS=$'\n'
DEFINITION_CANDIDATES=( $(python-build --definitions ) )
fi
if printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | grep -qxFe "$prefix"; then
if printf '%s\n' "${DEFINITION_CANDIDATES[@]}" 2>/dev/null | grep -qxFe "$prefix"; then
echo "$prefix"
exit $exitcode;
fi

View File

@@ -0,0 +1,54 @@
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
# of the Software, and to permit persons to whom the Software is furnished to do
# so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
VERSION='23.0.0'
BUILD=''
graalpy_arch="$(graalpy_architecture 2>/dev/null || true)"
case "$graalpy_arch" in
"linux-amd64" )
checksum="25e4fa7c1d45db6dcac5bfa4d1a0aa9ef5581623dc5903ce98d246c5d394639c"
;;
"linux-aarch64" )
checksum="e2a00b2b6485282b4a04aa382e30d696e00d20eb2fe1736debbe2d9df2a8737a"
;;
"macos-amd64" )
checksum="1578902976e6aaf45b9758931f0bddbb29c5c9bdca62c67591d6e153340c2a4f"
;;
"macos-aarch64" )
checksum="cc40e1d47610c5f4a825a1a7c3ffe8b163c71b5d042d16aebd1a65451d4309a5"
;;
* )
{ echo
colorize 1 "ERROR"
echo ": No binary distribution of GraalPy is available for $(uname -sm)."
echo
} >&2
exit 1
;;
esac
if [ -n "${BUILD}" ]; then
urlprefix="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-${BUILD}"
else
urlprefix="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}"
fi
install_package "graalpy-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip

View File

@@ -0,0 +1,81 @@
VERSION='7.3.12'
PYVER='2.7'
# https://www.pypy.org/checksums.html
aarch64_hash=e04dcb6286a7b4724ec3f0e50d3cc1ba8583301dd1658c06d7f37599e4201c59
linux32_hash=abf3ae477bd0e526ac6dcefe0bfa845e1535aa053342c0d641219bfcde4b9b56
linux64_hash=1a61a2574b79466f606010f2999a2b995bd96cd085f91a78ebdd3d5c2c40e81d
osarm64_hash=6b747aa076ae8597e49603c5dec4ca5935a1a0a132d7404a559be96a260d9bf7
osx64_hash=6e89ffdd15537ce4ffce3145b65ee57c2e9c952892bd95b934012d2f009f503b
s390x_hash=80c0154d8b0949f9dc6a227c322abbc9590c8ae4c9f11c13bf4022aa38b82064
### 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.12'
PYVER='2.7'
# https://www.pypy.org/checksums.html
hash=dd61d88da274c2ce2cec77667d4a3df9a652bcc50e26f90991d4dd0af66bccf4
### 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.12'
PYVER='3.10'
# https://www.pypy.org/checksums.html
aarch64_hash=26208b5a134d9860a08f74cce60960005758e82dc5f0e3566a48ed863a1f16a1
linux32_hash=811667825ae58ada4b7c3d8bc1b5055b9f9d6a377e51aedfbe0727966603f60e
linux64_hash=6c577993160b6f5ee8cab73cd1a807affcefafe2f7441c87bd926c10505e8731
osarm64_hash=45671b1e9437f95ccd790af10dbeb57733cca1ed9661463b727d3c4f5caa7ba0
osx64_hash=dbc15d8570560d5f79366883c24bc42231a92855ac19a0f28cb0adeb11242666
s390x_hash=043c13a585479428b463ab69575a088db74aadc16798d6e677d97f563585fee3
### 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.12'
PYVER='3.10'
# https://www.pypy.org/checksums.html
hash=86e4e4eacc36046c6182f43018796537fe33a60e1d2a2cc6b8e7f91a5dcb3e42
### 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.12'
PYVER='3.9'
# https://www.pypy.org/checksums.html
aarch64_hash=e9327fb9edaf2ad91935d5b8563ec5ff24193bddb175c1acaaf772c025af1824
linux32_hash=aa04370d38f451683ccc817d76c2b3e0f471dbb879e0bd618d9affbdc9cd37a4
linux64_hash=84c89b966fab2b58f451a482ee30ca7fec3350435bd0b9614615c61dc6da2390
osarm64_hash=0e8a1a3468b9790c734ac698f5b00cc03fc16899ccc6ce876465fac0b83980e3
osx64_hash=64f008ffa070c407e5ef46c8256b2e014de7196ea5d858385861254e7959f4eb
s390x_hash=20d84658a6899bdd2ca35b00ead33a2f56cff2c40dce1af630466d27952f6d4f
### 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.12'
PYVER='3.9'
# https://www.pypy.org/checksums.html
hash=e7a2046c7e6c25fc386abbb5132e92a7cc2491e3935699a946cb5dcbb342c2aa
### 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'