mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-10 12:33:48 -05:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af1a54482b | ||
|
|
64c70feb08 | ||
|
|
7b713a88c4 | ||
|
|
1874f95a0e | ||
|
|
1a882c6053 | ||
|
|
05dcd45741 | ||
|
|
a2dff4809b | ||
|
|
ad0d131032 | ||
|
|
7c17c741eb | ||
|
|
ba8b58f90d | ||
|
|
fe76b05445 | ||
|
|
c5d2639082 | ||
|
|
d4bd7bbe2b | ||
|
|
38ac747239 | ||
|
|
8f655d2ca6 | ||
|
|
d0b78fd5fe |
11
CHANGELOG.md
11
CHANGELOG.md
@@ -1,5 +1,16 @@
|
||||
# Version History
|
||||
|
||||
## Release v2.3.22
|
||||
|
||||
* Add CPython 3.12.0b3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2730
|
||||
* Add Cinder 3.10 and Cinder configure patches by @filips123 in https://github.com/pyenv/pyenv/pull/2739
|
||||
|
||||
## 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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
|
||||
version="2.3.20"
|
||||
version="2.3.22"
|
||||
git_revision=""
|
||||
|
||||
if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.1s" "https://www.openssl.org/source/openssl-1.1.1s.tar.gz#c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa" 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.12.0b2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b2.tar.xz#8dfc42dda6e4d0647cf8a6f7cd900704dea9fd866402a282829bd2e6e271b818" standard verify_py312 copy_python_gdb ensurepip
|
||||
install_package "Python-3.12.0b3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b3.tar.xz#9160c6065e9885b37c2e57865d0bb27fc7e54aaa9c186c761da30d2bddbcc9ee" standard verify_py312 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.12.0b2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b2.tgz#ad5f0d88824de3240928433efe427ce8aeb0f88928eb3f44e43647000cce599b" standard verify_py312 copy_python_gdb ensurepip
|
||||
install_package "Python-3.12.0b3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b3.tgz#ef50ddb9e55d7ac25f8fa2130e6cc52247556167c5be51081fe2c7c1a67476f4" standard verify_py312 copy_python_gdb ensurepip
|
||||
fi
|
||||
43
plugins/python-build/share/python-build/cinder-3.10-dev
Normal file
43
plugins/python-build/share/python-build/cinder-3.10-dev
Normal file
@@ -0,0 +1,43 @@
|
||||
if [ "$(expr substr "$(uname -s)" 1 5)" != "Linux" ]; then
|
||||
{
|
||||
echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": Cinder currently only supports Linux."
|
||||
echo
|
||||
return 1
|
||||
} >&2
|
||||
fi
|
||||
|
||||
if [[ $(${CC:-gcc} -dumpversion 2>/dev/null) != 10 ]] &&
|
||||
(command -v "gcc-10" >/dev/null) &&
|
||||
(command -v "g++-10" >/dev/null); then
|
||||
echo "python-build: setting the compiler to GCC 10"
|
||||
export CC="gcc-10"
|
||||
export CXX="g++-10"
|
||||
fi
|
||||
|
||||
if [[ $(awk -F. '{print $1}' <<< "$(${CC:-gcc} -dumpversion)") -lt 10 ]]; then
|
||||
{
|
||||
echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": Cinder requires at least GCC 10."
|
||||
echo
|
||||
return 1
|
||||
} >&2
|
||||
fi
|
||||
|
||||
require_distro Fedora 32 &> /dev/null ||
|
||||
{
|
||||
echo
|
||||
colorize 1 "WARNING"
|
||||
echo ": Cinder officially only supports Facebook's Docker"
|
||||
echo "images which are based on Fedora 32. It may fail to build"
|
||||
echo "on a system with a different GCC and/or Glibc version."
|
||||
echo
|
||||
} >&2
|
||||
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" 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
|
||||
install_git "Cinder-3.10-dev" "https://github.com/facebookincubator/cinder" "cinder/3.10" standard verify_py310 copy_python_gdb ensurepip
|
||||
@@ -1,28 +1,40 @@
|
||||
require_distro Fedora 32 &>/dev/null || \
|
||||
{ echo
|
||||
colorize 1 "WARNING"
|
||||
cat >&2 <<!
|
||||
: The Cinder compiler only officially supports
|
||||
Facebook's Docker images which are Fedora 32 - based.
|
||||
It may fail to build on a system
|
||||
with a different GCC and/or Glibc version.
|
||||
!
|
||||
echo
|
||||
}
|
||||
|
||||
[[ $(${CC:-gcc} -dumpversion 2>/dev/null) == 10 ]] || \
|
||||
{ command -v "gcc-10" >/dev/null && \
|
||||
export CC="gcc-10" && \
|
||||
echo "python-build: setting the compiler to \`gcc-10'"; } || \
|
||||
if [ "$(expr substr "$(uname -s)" 1 5)" != "Linux" ]; then
|
||||
{
|
||||
echo
|
||||
colorize 1 WARNING
|
||||
cat >&2 <<!
|
||||
: GCC 10 is not found on PATH.
|
||||
The build may fail.
|
||||
!
|
||||
colorize 1 "ERROR"
|
||||
echo ": Cinder currently only supports Linux."
|
||||
echo
|
||||
}
|
||||
return 1
|
||||
} >&2
|
||||
fi
|
||||
|
||||
if [[ $(${CC:-gcc} -dumpversion 2>/dev/null) != 10 ]] &&
|
||||
(command -v "gcc-10" >/dev/null) &&
|
||||
(command -v "g++-10" >/dev/null); then
|
||||
echo "python-build: setting the compiler to GCC 10"
|
||||
export CC="gcc-10"
|
||||
export CXX="g++-10"
|
||||
fi
|
||||
|
||||
if [[ $(awk -F. '{print $1}' <<< "$(${CC:-gcc} -dumpversion)") -lt 10 ]]; then
|
||||
{
|
||||
echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": Cinder requires at least GCC 10."
|
||||
echo
|
||||
return 1
|
||||
} >&2
|
||||
fi
|
||||
|
||||
require_distro Fedora 32 &> /dev/null ||
|
||||
{
|
||||
echo
|
||||
colorize 1 "WARNING"
|
||||
echo ": Cinder officially only supports Facebook's Docker"
|
||||
echo "images which are based on Fedora 32. It may fail to build"
|
||||
echo "on a system with a different GCC and/or Glibc version."
|
||||
echo
|
||||
} >&2
|
||||
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
|
||||
54
plugins/python-build/share/python-build/graalpy-23.0.0
Normal file
54
plugins/python-build/share/python-build/graalpy-23.0.0
Normal 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
|
||||
@@ -0,0 +1,30 @@
|
||||
diff --git a/configure b/configure
|
||||
index 5c74f00a..8bb51f40 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -7057,8 +7057,8 @@ $as_echo "$ac_cv_extra_warnings" >&6; }
|
||||
|
||||
if test $ac_cv_extra_warnings = yes
|
||||
then
|
||||
- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror"
|
||||
- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough"
|
||||
+ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
|
||||
+ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough"
|
||||
fi
|
||||
|
||||
# Python doesn't violate C99 aliasing rules, but older versions of
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c06b992d..6dee6632 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1622,8 +1622,8 @@ yes)
|
||||
|
||||
if test $ac_cv_extra_warnings = yes
|
||||
then
|
||||
- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror"
|
||||
- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough"
|
||||
+ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
|
||||
+ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough"
|
||||
fi
|
||||
|
||||
# Python doesn't violate C99 aliasing rules, but older versions of
|
||||
@@ -0,0 +1,30 @@
|
||||
diff --git a/configure b/configure
|
||||
index 0df332f7..df8143cf 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6952,8 +6952,8 @@ $as_echo "$ac_cv_extra_warnings" >&6; }
|
||||
|
||||
if test $ac_cv_extra_warnings = yes
|
||||
then
|
||||
- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror"
|
||||
- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough"
|
||||
+ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
|
||||
+ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough"
|
||||
fi
|
||||
|
||||
# Python doesn't violate C99 aliasing rules, but older versions of
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f6718e36..0a651e7d 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1579,8 +1579,8 @@ yes)
|
||||
|
||||
if test $ac_cv_extra_warnings = yes
|
||||
then
|
||||
- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror"
|
||||
- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough"
|
||||
+ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
|
||||
+ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough"
|
||||
fi
|
||||
|
||||
# Python doesn't violate C99 aliasing rules, but older versions of
|
||||
81
plugins/python-build/share/python-build/pypy2.7-7.3.12
Normal file
81
plugins/python-build/share/python-build/pypy2.7-7.3.12
Normal 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'
|
||||
14
plugins/python-build/share/python-build/pypy2.7-7.3.12-src
Normal file
14
plugins/python-build/share/python-build/pypy2.7-7.3.12-src
Normal 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'
|
||||
81
plugins/python-build/share/python-build/pypy3.10-7.3.12
Normal file
81
plugins/python-build/share/python-build/pypy3.10-7.3.12
Normal 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'
|
||||
14
plugins/python-build/share/python-build/pypy3.10-7.3.12-src
Normal file
14
plugins/python-build/share/python-build/pypy3.10-7.3.12-src
Normal 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'
|
||||
81
plugins/python-build/share/python-build/pypy3.9-7.3.12
Normal file
81
plugins/python-build/share/python-build/pypy3.9-7.3.12
Normal 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'
|
||||
14
plugins/python-build/share/python-build/pypy3.9-7.3.12-src
Normal file
14
plugins/python-build/share/python-build/pypy3.9-7.3.12-src
Normal 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'
|
||||
Reference in New Issue
Block a user